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.

[参考译文] AM62L:在 u-boot 和内核中为 AM62L 启用看门狗

Guru**** 2895520 points

Other Parts Discussed in Thread: AM62L

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1629760/am62l-enable-watchdog-in-u-boot-and-kernel-for-am62l

器件型号: AM62L

您好、

我们将 在定制板中使用 Yocto 中的 11_02_08_02 SDK 版本。 我已修改 u-boot 以启用看门狗、

DTS 更改:

+&main_rti0 {
+       status = "okay";
+       compatible = "ti,j7-rti-wdt","ti,am62l-rti-wdt";
+};

默认配置:

+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
+CONFIG_CMD_WDT=y
+CONFIG_WDT=y
+CONFIG_WDT_K3_RTI=y

u-boot 提示我收到以下错误:

=> wdt list
watchdog@e000000 (rti_wdt)
=> wdt dev watchdog@e000000
=> wdt start 5000
Starting watchdog timer failed (-16)

即使在 Linux 中、电路板也无法在我们不馈送看门狗时重新启动、

echo 1 > /dev/watchdog
[ 4046.682776] watchdog: watchdog0: nowayout prevents watchdog being stopped!
[ 4046.689735] watchdog: watchdog0: watchdog did not stop!

如果缺少任何步骤、请告诉我。

谢谢、

达尔米克
 

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

    您好、

    启动看门狗计时器失败(–16)

    从 WDT 启动中看到的–16 错误对应于-EBUSY。 这是预期行为、原因如下:在 AM62L 上、DM 固件(在 R5F 内核上运行的设备管理固件)会在 U-Boot 获得控制权之前启动 main_rti0 看门狗实例。 到 U-Boot 运行并发出 WDT 启动时、看门狗硬件已在运行。 RTI 看门狗是一种硬件锁定看门狗—一旦启动、就无法停止或重新启动。 U-Boot 驱动程序会检测到此情况并返回-EBUSY。

    关于启用看门狗和 Linux 用户空间控制的类似主题已在该主题 中讨论过:AM625:如何在 am625 中启用硬件看门狗并将超时设置为 30 秒?

    此致、
    Harshith

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

    嗨、Harshith、

    我的主要目标是创建一个带有看门狗的恢复机制、允许设备在内核出现紧急情况或无法启动时自行重新启动。

    为了实现这一点并阻止内核发生故障、我必须对 u-boot 进行哪些修改?

    谢谢、

    达尔米克  

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

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

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

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

    您好:

    是否对此进行了任何更新?

    谢谢、

    达尔米克

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

    您好、

    对此处延迟的回复表示歉意。

    我建议尝试在内核 RTI 看门狗驱动程序中进行以下更改、复位标志用于确定看门狗到期是否会触发系统复位:

    static struct rti_wdt_data j7_wdt = {
    	.reset = false,
    };
    
    static struct rti_wdt_data am62l_wdt = {
    	.reset = true,
    };
    
    static const struct of_device_id rti_wdt_of_match[] = {
    	{ .compatible = "ti,j7-rti-wdt", .data = &j7_wdt },
    	{ .compatible = "ti,am62l-rti-wdt", .data = &am62l_wdt },
    	{},
    };


    驱动程序匹配第一个胜出的兼容字符串、因此它选择 RESET = false 的 J7_WDT、这就是电路板在看门狗到期时不会复位的原因。

     对于调试、我还建议执行以下操作、以便更好地了解最终发生的情况:

    1. 使用 wdctl 检查看门狗信息
      wdctl /dev/watchdog
    2. 读取 RTI 看门狗状态寄存器以检查看门狗是否按预期到期
      devmem2 0x0e000010
    3. 您还可以参考此处的看门狗设置指南以了解其他配置步骤 — https://software-dl.ti.com/processor-sdk-linux/esd/AM62LX/11_02_08_02/exports/docs/linux/Foundational_Components /内核 Kernel_Drivers /Kernel/Watch/Watchdog.html

    请尝试这些方法、如果有用、请告知我们。

    此致、
    Harshith

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

    嗨、Harshith、

    感谢您分享详细信息、我  在内核 dts 中添加了 timeout-sec =<60>;它工作正常。

    但我想在 u-boot 中启动看门狗、然后内核将控制它、以防止启动时内核出现严重问题和卡住问题。

    您能为我提供这方面的最佳方法吗?

    谢谢、

    达尔米克

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

    是否对此进行了任何更新?

    谢谢、

    达尔米克

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

    您好、

    对延迟的回复表示歉意。 我与开发人员聊天、确认 U-Boot 中没有看门狗支持。 我已通知团队、他们希望在将来添加此功能。

    此致、
    Harshith