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:R5 SPL 中的看门狗

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1513409/am625-watchdog-in-r5-spl

器件型号:AM625

工具/软件:

大家好、如何在 R5 SPL 中激活看门狗?

这是看门狗 R5 SPL 的测试用例、这就是"无法从所有器件引导"的原因。 这是创建故障条件的最简单方法。

根据参考手册 wkup_rti0假设复位 R5、但激活它会导致错误消息且无复位...

U-Boot SPL 2025.04 (2025年5月13日- 20:37:13 -0400)
SYSFW ABI:4.0 (固件版本0x000b'11.0.7--v11.00.07 (Fancy Rat)')
将 DT 中的 A53 CPU 频率更改为1250000000Hz (T 级
SPL 初始栈使用量:13400字节
TI_power_domain_of_xlate:无效的 dev-id:132
SPL:无法从所有引导设备引导
###错误###请重置主板###

尝试激活 MAIN_rti0作为检查、会导致不同的错误、但仍然没有复位:

U-Boot SPL 2025.04 (2025年5月13日- 20:37:13 -0400)
SYSFW ABI:4.0 (固件版本0x000b'11.0.7--v11.00.07 (Fancy Rat)')
将 DT 中的 A53 CPU 频率更改为1250000000Hz (T 级
SPL 初始栈使用量:13400字节
TI_power_domain_of_xlate:无效的 dev-id:125
SPL:无法从所有引导设备引导
###错误###请重置主板###

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

    您好!

    您只能对当前上电的内核使用 RTI 看门狗。 因为在 R5F SPL 期间 A53 core0尚未运行、所以我预计激活 main_rti0的尝试会失败。

    报告的 dev-id 值对于  AM62X_DEV_WKUP_RTI0和 AM62X_DEV_RTI0看起来是正确的 (请参阅 https://software-dl.ti.com/tisci/esd/09_02_07/5_soc_doc/am62x/devices.html )。

    该主题是否有用? AM62Px 将有不同的细节、但总体概念应该相同:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1461108/am62p-watchdog-support-in-u-boot-r5-spl

    此致、

    Nick

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

    您好、Nick、

    是的、我阅读了该主题。 遗憾的是、 dev-data.c 有许多未记录的参数、我不知道如何处理。 您能否解释一下这些结构的作用、数字的含义和来源? 分配列表的规则是什么、它们代表什么。

    static struct ti_psc soc_psc_list[] = {
        [0] = PSC(0, 0x04000000),
        [1] = PSC(1, 0x00400000),
    };
    
    static struct ti_pd soc_pd_list[] = {
        [0] = PSC_PD(0, &soc_psc_list[1], NULL),
        [1] = PSC_PD(2, &soc_psc_list[1], &soc_pd_list[0]),
        [2] = PSC_PD(3, &soc_psc_list[1], &soc_pd_list[0]),
        [3] = PSC_PD(4, &soc_psc_list[1], &soc_pd_list[2]),
        [4] = PSC_PD(5, &soc_psc_list[1], &soc_pd_list[2]),
    };
    
    static struct ti_lpsc soc_lpsc_list[] = {
        [0] = PSC_LPSC(0, &soc_psc_list[1], &soc_pd_list[0], NULL),
        [1] = PSC_LPSC(9, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[11]),
        [2] = PSC_LPSC(10, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[1]),
        [3] = PSC_LPSC(11, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[2]),
        [4] = PSC_LPSC(12, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[8]),
        [5] = PSC_LPSC(13, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[9]),
        [6] = PSC_LPSC(20, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[11]),
        [7] = PSC_LPSC(21, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[11]),
        [8] = PSC_LPSC(23, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[11]),
        [9] = PSC_LPSC(24, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[11]),
        [10] = PSC_LPSC(28, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[11]),
        [11] = PSC_LPSC(34, &soc_psc_list[1], &soc_pd_list[0], &soc_lpsc_list[11]),
        [12] = PSC_LPSC(41, &soc_psc_list[1], &soc_pd_list[1], &soc_lpsc_list[11]),
        [13] = PSC_LPSC(42, &soc_psc_list[1], &soc_pd_list[2], &soc_lpsc_list[11]),
        [14] = PSC_LPSC(45, &soc_psc_list[1], &soc_pd_list[3], &soc_lpsc_list[13]),
        [15] = PSC_LPSC(46, &soc_psc_list[1], &soc_pd_list[4], &soc_lpsc_list[13]),
    };
    
    static struct ti_dev soc_dev_list[] = {
        PSC_DEV(16, &soc_lpsc_list[0]),
        PSC_DEV(77, &soc_lpsc_list[0]),
        PSC_DEV(61, &soc_lpsc_list[0]),
        PSC_DEV(95, &soc_lpsc_list[0]),
        PSC_DEV(107, &soc_lpsc_list[0]),
        PSC_DEV(170, &soc_lpsc_list[1]),
        PSC_DEV(177, &soc_lpsc_list[2]),
        PSC_DEV(55, &soc_lpsc_list[3]),
        PSC_DEV(178, &soc_lpsc_list[4]),
        PSC_DEV(179, &soc_lpsc_list[5]),
        PSC_DEV(57, &soc_lpsc_list[6]),
        PSC_DEV(58, &soc_lpsc_list[7]),
        PSC_DEV(161, &soc_lpsc_list[8]),
        PSC_DEV(162, &soc_lpsc_list[9]),
        PSC_DEV(75, &soc_lpsc_list[10]),
        PSC_DEV(36, &soc_lpsc_list[11]),
        PSC_DEV(102, &soc_lpsc_list[11]),
        PSC_DEV(146, &soc_lpsc_list[11]),
        PSC_DEV(13, &soc_lpsc_list[12]),
        PSC_DEV(166, &soc_lpsc_list[13]),
        PSC_DEV(135, &soc_lpsc_list[14]),
        PSC_DEV(136, &soc_lpsc_list[15]),
    };