器件型号: AM625
大家好:
我们希望启用看门狗、以便在电路板挂起时在 Linux 中设置电路板复位。
您能告诉我们如何在 Linux 中启用它吗?
谢谢你。
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
大家好:
我们希望启用看门狗、以便在电路板挂起时在 Linux 中设置电路板复位。
您能告诉我们如何在 Linux 中启用它吗?
谢谢你。
尊敬的 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
您好、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
我将在 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
如日志所示、您设置 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
您好、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
RTI_WDT 导致的重置类型是什么? 软件复位或硬件电源关闭和打开、
“RTI_WDT 倒计时超时=> ESM ERRORn => SoC WarmRESET“。
[引述 userid=“658153" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1583417/am625-am625-watchdog-enable/6293890Lars 说、对于 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
该补丁是 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
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