This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM62P:U-Boot (R5) SPL 中的看门狗支持

Guru**** 2409930 points
Other Parts Discussed in Thread: AM62P

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1461108/am62p-watchdog-support-in-u-boot-r5-spl

器件型号:AM62P

工具与软件:

您好、TI 专家:

我们需要 在 U-Boot 中启用看门狗 SPL 、特别是在 R5 .  但是、 AM62P (和其他 AM62x 衍生产品)似乎不支持该功能。 这种支持 仅在 A53上的 U-Boot 中可用。 我发现此论坛主题似乎确认:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1315701/am6422-enable-the-mcu-rti_wdt-in-r5-spl

该主题在最后说:"我不知道对 RTI_WDT @SPL/u-boot 级别的保护支持。" 我 还自己进行了测试。 显然、器件/驱动器类 UCLASS_WDT 只有在通过 A53正常运行的 U-Boot 中才会可用、即使我不确定在构建 R5或 A53的 U-Boot SPL 时、看门狗支持是如何从器件树中剥离的和/或代码的。

明显的问题:

  • 为什么 U-Boot SPL 中不支持看门狗?
  • 要实现此类支持、我需要做些什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我假设您只需要确保 SPL/uboot 不会锁定。 如果您有不同的用例:

    您计划运行 U-Boot SPL 多长时间?

    您需要设置什么类型的超时?

    您是否期望 SPL 实际会影响看门狗? 或者您是否只是启动看门狗、并计划在启动流程的稍后阶段开始设置看门狗?

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    或者您是否只是启动了看门狗、并打算在启动流程的稍后阶段开始设置看门狗?

    这就是想法。

    我们正在基于 AM62P 和 U-Boot SPL 偶尔(但很少)锁定、设计新的硬件平台。 这很可能是由于硬件问题、该问题将在某个时候得到解决、但我当时正在考虑启用 看门狗以从此类故障中恢复。

    为什么我要 问这些问题、这很重要吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我想知道如何从设备树中删除看门狗(器件)支持。 Bootph-all (或缺乏它)做了这个诀窍。 您应该知道这一点。

    不过、还有另一个问题:
    电源和时钟管理本质上是这样  硬编码 开始上升。
    请参阅   U-Boot 源代码中的 arch/arm/mach-k3/am62px/dev-data.c 和 arch/arm/mach-k3/am62px/clk-data.c。

    即:
      需要在 R5或 A53 U-Boot SPL 中添加想要使用的任何 SoC 外设(在支持的"开箱即用"基础上)。

    但是、源代码中实际上没有文档、并且  AM62P 的 TRM 中的文档 也不完全清楚。 例如:

    • "电源域名称"与其 相应的器件 ID 之间没有映射。
    • 我不知道如何添加对 PSC  WKUP_PSC0的支持

    此处显示了时钟树的说明文件。 但是、我没有找到有关电源管理的相应文档。

    如有任何帮助、将不胜感激。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Christian:

    我不熟悉 dev-data.c 和 clk-data.c 文件的内容、因此我不确定代码在这些文件中的功能。

    通常、电源域和 LPSC 都是相对于 TRM 分配的。 您可以参阅 AM62P TRM 表6-6。 LPSC 功能: https://www.ti.com/lit/pdf/spruj83

    或者、DM 固件在 MCU+ SDK 源代码中以完全相同的方式定义 PD 和 LDSC: /drivers/device_manager/rm_pm_hal/rm_pm_hal_src/pm soc / am62px/devices.c

    对于时钟、同样我不熟悉这些文件。 如果文件定义了与外设级别相关的时钟(例如、假设 OSPI 需要为166MHz)、则其很可能会遵循上述链接的 TISCI 协议。 相反、如果文件定义了与 PLL 和 HSDIV 相关的时钟、则可以再次参考 TRM 的第6.4.5 PLL 节。

    时钟树工具可用于使整个时钟架构可视化: https://dev.ti.com/sysconfig/#/config/?args=--product%20%2Fmnt%2Ftirex-content%2Fsitara_ctt_1_1_2%2F.metadata%2Fproduct.json%20--device%20AM62Px

    此致、

    Anshu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anshu:

    在今天与 Christian 进行沟通时、他承认他们仍然需要对 MCU+ SDK 进行进一步的审查、但我或他都不确定这是否能让您更清楚地了解上述(文档)问题。  正如先前的帖子所指出的那样、TRM 中的信息不完整、也不容易理解。

    是否有可能对这一问题进行进一步的审查、并对基督教的上述最新帖子作出具体评论?

    谢谢!

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好!

    对这里的延迟答复深表歉意。 我终于能够开始旋转回到论坛。 我正在赶上很多线程、因此如果我在几个工作日内没有响应、不要害怕 ping 通线程。

    在将更多时间用于此主题之前、我应该注意哪些更新?

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick、没有更新。

    THX:
    Chris。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好!

    表6-6. Anshu 指出的 LPSC 功能 很有用。

    看门狗计时器称为 RTI (请参阅后面一章的外设>计时器模块> RTI-Window 看门狗计时器(WWDT)。

    因此、如果您使用 WKUP_RTI0、则它将已通电、因为它使用 LPSC_MAIN_DM、与 WKUP_R5FSS0相同。 这是看门狗计时器、通常与 DM R5F 内核相关联。 即运行一半 SPL 的 R5F 内核:
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62PX/10_00_07_04/exports/docs/linux/Foundational_Components U-Boot/UG-General-Info.html#boot-flow 

    同样、您可以看到与每个 A53内核关联的 RTI 与 A53内核位于相同的 LPSC 上。

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉 Nick 和 Anshu 出现延迟。

    我之前指出的代码的问题是、使用的 几个字面量似乎不会 在任何位置被记录。 至少是指电源域的类型。 例如(从arch/arm/mach-k3/am62px/dev-data.c):

    static struct ti_pd soc_pd_list[] = {
        [0] = PSC_PD(0, &soc_psc_list[0], NULL),
        [1] = PSC_PD(3, &soc_psc_list[0], &soc_pd_list[0]),
        [2] = PSC_PD(4, &soc_psc_list[0], &soc_pd_list[1]),
        [3] = PSC_PD(13, &soc_psc_list[0], &soc_pd_list[0]),
    };

    我指的是作为PSC_PD宏的第一个参数的字面量。 该代码使用大量其他字面量、 我可以 在这里或那里找到相关文档。 但是,上面的那些仍然是一个谜。

    然而:
    此代码来自 TI SDK AM62Px 09.02.01.09。 很显然、这已经通过 SDK 10.x 发生了变化 电源和时钟管理现在似乎是由设备树驱动的。 此外、 Anshu 指出的 MCU+ SDK 中的代码似乎有更好的文档记录、并且更有意义。

    因此、我认为这个问题已得到解决。 THX。