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.

[参考译文] AM62A7:硬件看门狗/RTI0 配置和验证 (Linux)

Guru**** 2489685 points
Other Parts Discussed in Thread: AM62A7

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1532368/am62a7-hardware-watchdog-rti0-configuration-and-verification-linux

器件型号:AM62A7


工具/软件:

您好:

我正在尝试在基于 Linux 的 AM62A7 系统中配置 RTI0 硬件看门狗中断/计时器。 我已经按照 这里详细介绍的步骤进行了 操作、包括所有设备树更改和源补丁。 进行探测并创建/dev/watchdog0 器件时、驱动程序似乎已正确加载。 在测试中、我将看门狗超时设置为 5 秒。 要启动看门狗、我使用 了 watchdog 命令、为/dev/watchdog0 设置了 ping 间隔 10 秒、以便强制设置看门狗超时。 我能够跟踪驱动器初始化和看门狗启动、似乎正在将正确的值写入寄存器。 但是、不存在看门狗一直跳闸的迹象、并且看门狗实用程序会继续以指定的 10 秒间隔执行 ping 操作。 这里可能出现什么问题、如何验证看门狗外设的行为是否正常?

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

    您好、

    您的系统是否使用 systemd? 如果是、systemd 将自动打开/dev/watchdog0 并将其用于自身。

    尝试使用/dev/watchdog1、因为它不会被使用。

    此致、

    Bas Vermeulen

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

    尊敬的 Bas:

    感谢您的答复。 我们的系统不使用 systemd。 所有守护程序和服务都是从我们自己的 init 脚本手动调用的。 我使用看门狗实用程序来访问看门狗资源/dev/watchdog0 没有问题 、因此我认为任何其他进程都不会尝试获取该资源。  lsof  表明、使用 watchdog0 资源的唯一进程是    我手动启动的 watchdog0 实用程序的实例。 通过调试 RTI_WDT 驱动程序源、可以看到正在运行用于启用 NMI 并启动看门狗的代码。 但是、不会重新启动。 有没有其他办法来确定可能发生的情况?

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

    您好、S. One、

    您能否在您的设置中共享以下值的寄存器?

    您能否分享您在 Linux A53 内核中使用的 RTI 预加载寄存器?

    此致、

    Anil.

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

    这是将 ENABLE 密钥写入 RTIDWDCTRL 寄存器后直接读取的寄存器转储。 我很快就会返回其他请求的寄存器。

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

    MCU_CTRL_MMR0_RST_CTRL

    WKUP_CTRL_MMR0_RST_CTRL

    似乎设置了两个突出显示的位

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

    您好:

    仔细检查问题

    我不确定我是否理解您的问题。 是否要验证看门狗能够在超时之前宠物不在的情况下复位电路板?

    这就像将 1 回显到/dev/watchdog.下的看门狗实例之一一样简单 启动看门狗的操作。 但是、不会对看门狗进行任何服务检测。

    默认情况下、使用 60 秒超时。 因此电路板应在 60 秒后复位。

    有关我所做的看门狗测试的更多信息、请查看以下主题:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1484145/processor-sdk-am62x-watchdog-issues-on-am62x-custom-board-based-on-am62x-sk-board/5799693#5799693

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1311045/am623-wdt_rti-control-via-systemd/5166054#5166054

    确保正在为看门狗代码打补丁

    请注意、内核 6.1/SDK 9.x 不支持 AM62Ax 看门狗 则在两个 SDK 10.0 中 10.1. 、看门狗可以工作、但您需要 根据 Linux SDK 文档中的“ 10.0 SDK“一节添加额外的修补程序。
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/10_01_00/exports/docs/linux/Foundational_Components、Kernel_Drivers Kernel/Kernel/Watchdog.html 

    从 SDK 11.0 开始、我希望看门狗在 AM62Ax 上开箱即用。

    此致、

    Nick

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

    您好 Nick / S.one、

    根据 MCU_CTRL_MMR 寄存器的当前内容、设置了第 17 位。 但是、为了实现正确的 SoC 复位、该位预计会被清除 (0)。

    因此、即使看门狗到期、SoC 也可能不会按预期进行复位。 我建议将第 17 位修改为 0 、并观察复位行为是否相应地发生变化。

    请告诉我结果。

    此致、

    Anil

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

    您好、Nick、

    是的、您的理解是正确的。 我只是想验证看门狗是否能够在发生超时时时复位电路板。 当将 1 回显到我实例化的看门狗器件 (/dev/watchdog0) 时、watchdog_ops 启动函数运行、看门狗外设寄存器设置为 10 秒超时、我已从器件树配置该超时。 超时时间过后、不会发生任何情况。 我忽略了提到我运行 的是 SDK 8.6.0.45 和内核版本 5.10.168、因为我们系统所需的一个软件包存在限制。 由于 RTI_WDT 驱动程序可用于启用和插入内核模块、我可能错误地认为此 SDK 版本支持看门狗/RTI 器件。 是否需要其他补丁才能使看门狗支持适用于此 SDK?

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

    您好 Anil、感谢您的建议。 我尝试了这个,不幸的是,没有区别的行为。 您还有其他建议吗? 正如我在另一个注释中提到的、我最初忘记透露我运行的 是 SDK 8.6.0.45 和内核版本 5.10.168、因为我们系统所需的软件包之一存在限制。

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

    您好:

    嗯、是的、这会导致问题。 在 SDK 10.0 之前的任何 Linux SDK 上、我们不支持 AM62Ax 上的看门狗。

    此致、

    Nick

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

    啊、我明白了、谢谢你的确认。 SDK 8 版本的 RTI_WDT 驱动程序是否只是看门狗驱动程序的非工作的初步实现? 是否有一组补丁可应用于 SDK 8 源代码以使看门狗功能正常工作、或者是否过于依赖其他内核子系统的后续版本、而这些版本也必须升级才能使其正常工作? 如果没有这样的补丁捆绑在某个位置、那么您能告诉我允许启用看门狗重置的提交吗?

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

    您好:

    其他处理器也使用 RTI_WDT

    RTI_WDT 驱动器供 K3 处理器系列(包括 AM65x、AM64x、AM62x、名为 J7*的汽车器件等)中的多个处理器使用。 因此、SDK 8.x 中的 RTI_WDT 旨在供这些其他处理器使用、而不是由 AM62Ax 使用。

    是否可以向后移植? 我需要做什么?

    TI 无法支持将代码反向移植到早期内核版本的请求。 有时反向移植代码相当简单,但有时驱动程序依赖于其他驱动程序、内核本身的特定功能等 并找出所有这些依赖关系可以是... 复杂一些。

    如果您想评估向后移植、需要查看在 SDK 8.6 和 SDK 11.0(AM62Ax 看门狗开箱即用而不应用任何代码补丁的第一个 SDK 版本)之间应用于看门狗内核驱动程序本身的所有内核补丁。 您还需要应用相应的补丁来将看门狗实例添加到 Linux 器件树文件中。

    请记住、看门狗到期后的复位路径会通过 ESM 模块、该模块在引导期间设置。 因此、您还需要浏览 U-Boot 代码以了解那里发生了哪些变化。

     我是否会亲自建议移植到 SDK 8.6?

    SDK 8.6 至今已有 2 年以上。 此后添加了许多新功能和错误修复(尤其是因为 SDK 8.6 是 AM62Ax 的第一个公开 SDK 版本)。

    如果您希望 TI 提供帮助时遇到其他问题、请记住、SDK 8.6 已经足够旧、我们将开始在 e2e 论坛上逐步停止对相关设计问题的全面支持(我们为 Linux SDK 提供几年的全面设计支持、但经过一段时间后、我们需要将重点转移到更新的代码。 我们仍然会与您讨论一些问题、但我们可能无法使用 SDK 8.6 在硬件上运行测试。 等)。

    做对您的设计、开发周期、截止日期等有意义的事情 但如果您的团队有带宽、我认为最好改用更新的 SDK。

    还有事吗?  

    如果要坚持使用 Release_Specific_Migration_Guide 8.6、请确保 使用从 SDK 10.0 开始发布的更新后的 PLL 编程序列: https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/10_01_00/exports/docs/devices/AM62AX/linux/PLL.html

    此外、如果您未在 DM R5F 上使用 VPAC/ISP 固件、请告知我。 我们可能需要在那里进行额外的讨论。

    此致、

    Nick

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

    您好、Nick、

    感谢您的详细回答。 虽然我们打算在将来的某个时候升级、但遗憾的是、我们暂时不得不使用当前版本的 Linux 内核。 您能否确认下图显示了 RTI/看门狗寄存器的有效配置? 我只想开始缩小堆栈中问题所在的位置(驱动程序配置错误,ESM 设置等)。 然后、我可以说明在我们的 SDK 版本和当前版本之间对特定模块进行了哪些更改。  

    此外、通过 ti-linux-kernel 存储库、我无法找到对“ti、j721e-esm“兼容标签的任何引用、尽管根据 此页面、必须在内核器件树中实例化 MAIN_ESM 节点。 我能够在 driver/misc/k3_esm.c 的 U-Boot 源中轻松找到相应的驱动程序 相应的驱动程序位于内核源中的何处、或者如果没有、为什么需要此节点/如何处理此节点?

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

    Nick Saulnier 您好、Nick、我只是想跟进这个问题。 您能否确认您看到了我之前的消息? 谢谢你。