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.

[参考译文] AM625:am625 看门狗启用

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1583417/am625-am625-watchdog-enable

器件型号: AM625

大家好:

  我们希望启用看门狗、以便在电路板挂起时在 Linux 中设置电路板复位。

  您能告诉我们如何在 Linux 中启用它吗?

  谢谢你。

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

    您好、Tom、
    您是否会附加完整的日志、以显示您如何使用 CTRL_MMR_CFG0_RST_SRC 测试 RTI_WDT?
    此致、
    - Hong

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

    尊敬的 Hong:

      我设置 timeout-sec =<10>、并在 RTI_WDT.c 中添加调试日志

      时钟源为 2:

        当我运行 TEST_WDT 时、 驱动程序不会运行 RTI_WDT_ping 函数来馈送看门狗、并且我的电路板会重新启动。

        我 cat 文件/sys/class/watchdog/watchdog0/timeleft、 它从 10 减少到 8、我的主板重新启动。

        我还会读取 DWDCNTR reg、的值。该值会降至约 0x40000、然后我的主板会重新启动。

        时钟源为 4:

         当我运行 TEST_WDT 时、 驱动程序 会运行 RTI_WDT_ping 函数以提供数据、并且我的电路板不会重新启动。

          我 cat 文件/sys/class/watchdog/watchdog0/timeleft、 该值 在驱动程序馈送 dog 后设置为 10、并 在循环中减小到 4。

          DWDCNTR reg 的值降至约 0x20000、然后在驱动程序馈送狗时将设置为大约 0x4FFFF。

       在 TRM 中、如果  DWDCNTR 寄存器递减至 0 或 WDKEY 寄存器写入无效值、则电路板将由看门狗重新启动。

       为什么 DWDCNTR 的值 不是 0、但主板会重新启动? 有没有其他方法可以通过看门狗来重新启动电路板?

       

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

    您好、Tom、

    我在 TI AM62x-SK 上连接了一个简单的 RTI_WDT 测试日志。

    1/。 启动看门狗守护程序@第 56 行
    “sudo systemctl enable -- now watchdog“
    看门狗守护程序将定期“宠物“(服务)看门狗硬件。 如果系统无响应且守护程序无法为看门狗提供服务、RTI_WDT 硬件将触发系统复位。

    2/。 故意强制执行 Linux 内核错误(系统崩溃)@第 92 行
    “echo c >/proc/sysrq-trigger
    它会强制发生崩溃以使系统完全无响应、=> RTI_WDT TIMEOUT => SoC 复位

    此致、
    - Hong

    e2e.ti.com/.../am62_5F00_11.1.5.3_5F00_rti_5F00_wdt_5F00_test.log

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

    您好 Hong:

     我的 SDK 为  10.0 μ s 内核版本与您的、不同。  没有 /etc/watchdog.conf 和 systemctl。

     watchdogd desso 没有设置 watchdog active 和 feed dog ,所以我需要 使用 watchdog-simple.c 进行测试。

    Root@am62xx-EVM:/# devmem2 0x43018178
    /dev/mem 已打开。
    地址 0xffffbd28a000 映射的存储器。
    读取地址 0x43018178 (0xffbd28a178):0x00000000

    Root@am62xx-EVM:/# devmem2 0x04518178
    /dev/mem 已打开。
    映射到地址 0xffa0c89000 的存储器。
    读取地址 0x04518178 (0xffa0c89178):0x00000000

    root@am62xx-EVM:/# ls /dev/watchdog *
    /dev/watchdog /dev/watchdog0 /dev/watchdog1 /dev/watchdog2 /dev/watchdog3
    root@am62xx-EVM:/# cat /sys/class/watchdog/watchdog0/state
    无效
    root@am62xx-EVM:/# cat /sys/class/watchdog/watchdog0/timeout
    10.
    root@am62xx-EVM:/#/tmp/test_wdg

    U-Boot SPL 2024.04 (2 月 26 日 2026 - 16:45:21 +0800)
    SYSFW ABI:4.0(固件版本 0x000a '10.1.8--v10.01.08 (Fiery Fox)')
    SPL 初始栈使用量:13392 字节

    运行该应用程序时、电路板会重新启动。  

    => MD.l 0x43018170 3.
    43018170:000200ff 00000000 c0000000…
    => MD.l 0x04518170 3.
    04518170: 00400fff 00000001 c0000000 ..@……
    =>

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

    您好、Tom、

    是的、systemd/systemctl 和看门狗守护程序包含在从 Yocto 构建的 Linux SDK“默认“文件系统中。

    RTI_WDT 按预期工作、如我上次答复中的日志所示、而且看门狗守护程序是一个方便的实用程序
    -正常 RTI_WDT 操作:启动和 PET RTI_WDT
    - RTI_WDT 超时测试:通过故意触发 Linux 内核错误来强制 RTI_WDT 超时触发复位

    此致、
    - Hong

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

    尊敬的 Hong:

      因此、我需要使用 Yocto 来构建 systemd/systemctl 以测试看门狗?

       watchdog-simple.c 不能用于测试?

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

    您好、Tom、

    我们已经使用 Linux SDK 软件包验证了以下 RTI_WDT 功能:
    启动 RTI_WDT、SERVICE (PET) RTI_WDT 和 RTI_WDT 超时(如果未在窗口内提供服务)。
    1/。 内核 RTI_WDT 驱动程序
    2/。 看门狗守护程序

    其中、看门狗守护程序是用户空间实用程序、用户需要根据用户选择的 Linux 软件包/文件系统进行选择。

    此致、
    - Hong

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

    尊敬的 Hong:

      我 觉得它偏离了我的需要。 我想知道我们是否可以在 SDK 10.0 上的 DTS 中将时钟父母设置为 4

      RTI_WDT 服务在启动时处于非活动状态。当我运行 TEST_WDT 应用程序时、它处于活动状态。

      对于时钟父级 4、它会 ping 且不会重新启动。 如果不执行 ping 操作、则主板会重新启动。

      对于时钟父级 2、即使 ping、它也会重新启动。

    - assigned-clock-parter =<&k3_CLKS 125 2>
    + assigned-clock-parter =<&k3_CLKS 125 4>

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

    我建议不要进行修改 。
    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62-main.dtsi#n956

    根据我们其他客户在内部和外部进行的测试、RTI_WDT 会按预期在 AM62x Linux SDK 中工作。
    您可能需要对设置进行交叉检查。

    此致、
    - Hong

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

    尊敬的 Hong:

      从 先前显示的时钟信息林俊孟

      时钟 ID 2 为 DEV_RTI0_RTI_CLK_PARALT_CLK_32K_RC_SEL_OUT0

      时钟 ID 4 为 DEV_RTI0_RTI_CLK_PARALT_MAIN_WWDTCLKN_SEL_OUT0_DIV_CLKOUT

      看起来时钟 id 4 用于主看门狗。 是这样吗?

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

    我当时使用 Linux SDK 11.1.5.3 封装进行测试。
    您测试的是哪个 Linux SDK 版本?
    此致、
    - Hong

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

    尊敬的 Hong:

      SDK 版本 10.01.10.04

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

    我将在 TI AM62-SK 板上附加使用 Linux SDK 10.1.10.4 的工作日志。
    如日志中所示、
    - clk_id=2 默认为在 dtsi 中配置的。
    - =>
    -我用更改为 clk_id=4
    - =>

    RTI_WDT 也符合预期、仅使用 clk_id=4。
    我的早期回复中已注明、对 clk_id=2 的 RTI_WDT 进行了验证。

    此致、
    - Hong

    e2e.ti.com/.../am62_5F00_10.1.10.4_5F00_rti0_5F00_clk_5F00_id_3D00_4.log

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

    尊敬的 Hong:

      感谢您的支持。

      如日志所示、设置 clk_id =4 是有效的。 我们是否还可以将其设置为 4 以使用 RTI_WDT?

      您能否构建 samples/watchdog/watchdog-simple.c 以测试 clk_id=2 和 clk_id=4? 谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如日志所示、您设置 clk_id = 4、它是有效的。 我们是否还可以将其设置为 4 以使用 RTI_WDT?

    我在 TI AM62-SK 上使用 clk_id=4 和 Linux SDK 10.1.10.4(与您的 SDK 相同)共享了 RTI_WDT 测试日志。

    您能否构建 samples/watchdog/watchdog-simple.c 以测试 clk_id=2 和 clk_id=4? [/报价]

    我之前使用具有 systemd/systemctl 的看门狗守护程序(包含在 Linux SDK“默认“文件系统中、基于 Yocto 构建)对 RTI_WDT 进行了测试、其中包含 clk_id=2。

    由 用户根据选择的 Linux 软件包/文件系统、选择并测试用户空间实用程序、以确定如何运行看门狗守护程序。  这超出了 TI 支持范围。

    此致、
    - Hong

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

    尊敬的 Hong:

    我建议不要修改 .

    您不 建议我们修改 dtsi。

    RTI_WDT 也符合预期、并且 clk_id=4。

    但如果 clk_id = 4、RTI_WDT 会正常工作。

    我们可以将其修改为 4、对吧?

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

    您好:
    感谢您的查询。 有关专家因** TI 印度**假期而离职。
    请预计响应会延迟。 感谢您的耐心和理解。

    此致、
    TI E2E 支持团队
    ——
    *这是一个自动通知。*

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

    请注意:在 HS-SE 模式下、rti0 由在 M4 上运行的 TIFS 提供服务。 因此、必须将 u-boot 和 Linux 配置为启用、探测和服务 rti1 而不是 rti0。
    此致、Lars

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

    您好:
    感谢您的查询。 有关专家因** TI 印度**假期而离职。
    请预计响应会延迟。 感谢您的耐心和理解。

    此致、
    TI E2E 支持团队
    ——
    *这是一个自动通知。*

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

    您好、Tom、
    clk_id=2 或 clk_id=4 用于我在 AM62x-SK 上的 RTI_WDT 上进行的测试。

    尊敬的 Lars:
    感谢 chming in。
    TIFS 在安全 SMS 下使用专用的 RTI_WDT。

    我在 HS-SE 上使用 AM62x Linux SDK 11.2.8.2 测试了 RTI_WDT、发现确实存在问题。
    RTI_WDT 在 HS-SE 上工作(连接日志)、并在 u-boot 中具有 WA。

    此致、
    - Hong

    e2e.ti.com/.../am62_5F00_11.2.8.2_5F00_rti_5F00_wdt_5F00_SE.log

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

    尊敬的 Hong:

      您附加的日志我无权查看。

       谢谢、我们可以使用 clk_id 4、因为它在我的电路板上工作。

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

    您好、Tom、
    是的、clk_id=4 用于我在 AM62x-SK 上的 RTI_WDT 上进行的测试。
    此致、
    - Hong

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

    尊敬的 Hong:

      RTI_WDT 复位的类型是什么?  软件复位或硬件断电和上电;

      Lars 说、对于 HS-SE 模式、对于 soc、我们应该使用 rti1、而不是 rti0。

      是否需要针对 HS-SE 模式 RTI WDT 修改任何其他设置?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
     RTI_WDT 导致的重置类型是什么?  软件复位或硬件电源关闭和打开、

    “RTI_WDT 倒计时超时=> ESM ERRORn => SoC WarmRESET“。

    [引述 userid=“658153" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1583417/am625-am625-watchdog-enable/6293890

    Lars 说、对于 HS-SE 模式、对于 soc、我们应该使用 rti1、而不是 rti0。

      是否需要针对 HS-SE 模式 RTI WDT 修改任何其他设置?

    [/报价]

    如中所述 在 AM62x TRM 中、RTI0 与 A53SS0_CORE_0 关联。

    我将连接 WA u-boot 补丁以支持 HS-SE 上的 RTI0。

    此致、
    - Hong

    e2e.ti.com/.../am62_5F00_11.2.8.2_5F00_rti_5F00_wdt_5F00_SE.patch

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Hong Hong:
     感谢您提供补丁。
     此补丁是否也应用于 HS-TCA FS 有何不同呢?
    在 RTI_WDT.c 中、它显示硬件仅支持开放窗口为 50%或更小。
    我想确认关于 RTI 看门狗的几点:
      RTI 看门狗是否仅支持 50%的最大开放窗口、或者是否有办法将其配置为 100%?
      在、的设置中、超时配置为 1 秒、默认窗口为 50%、我们每 200ms 微秒馈送一次看门狗、我们没有观察到任何问题。您能否确认在有效窗口之外馈送 RTI 看门狗是否存在任何潜在问题(例如,它是否会导致系统复位或其他故障情况)?

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

    该补丁是 HS-SE 上 RTI_WDT 问题的权变措施、而 HS-WDT 不需要 FS。

    请参阅打开窗口中的内核驱动程序说明。
    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/watchdog/rti_wdt.c#n95

    此致、
    - Hong

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

    尊敬的 Hong:

      RTI-WATCHDOG 补丁是否可以应用于 hs-FS 器件?我们想在 hs-fs 和 hs-se 器件上应用补丁。

      您可以读取从 96 行到 100 行的代码 、107 行显示 50%是最大窗口大小。

      但在 TRM 中、寄存器可以设置为 100%窗口大小。

      哪个值是大窗口大小?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTI-watchdog 补丁是否应用于 hs-fs 器件?我们希望在 hs-fs 和 hs-se 器件上应用该补丁。

    WA 补丁只在 HS-SE 上需要、但您可以选择将其应用于 FS。

    [引述 userid=“658153" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1583417/am625-am625-watchdog-enable/6297615

    您可以读取从 96 行到 100 行的代码 、107 行显示 50%是最大窗口大小。

      但在 TRM 中、寄存器可以设置为 100%窗口大小。

      哪个值是大窗口大小?

    [/报价]

    RTI_WDT 在 Linux 内核中配置为窗口化 WDT (WWDT)。 与常规 WDT 不同、WWDT 必须在开放窗口内填充(不能太早且不得太晚)。 如内核驱动程序代码中所述、RTI_WDT 打开窗口配置为 50%或更低、这就是 Linux SDK 的测试方式。

    WWDT 提供了更高的可靠性、因为它可以检测处理器以错误速度运行的故障、或者代码卡在导致看门狗过于频繁的快速意外循环中的故障。

    此致、
    - Hong

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

    尊敬的 Hong:

      谢谢、但我们想确认、我们是否可以在 Linux SDK 中将窗口设置为 100%? 或者只能设置 50%或更低?

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

    您好、Tom、
    AM62x RTI_WDT 在 Linux SDK 中进行了测试、WWDT 开放窗口大小为 50%、如内核驱动程序代码中所述。
    此致、
    - Hong