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-WDT:不能从 Linux's 用户区清除 LINUX-RT-SDK

Guru**** 2782625 points

Other Parts Discussed in Thread: AM62L

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1619404/am62l-linux-rt-sdk-wdt-cannot-be-cleared-from-linux-s-userland

器件型号:AM62L-AM62L- LINUX-RT-SDK
主题中讨论的其他器件: AM62L

尊敬的支持:

我们在 AM62Lx 平台上遇到看门狗计时器问题、与以下论坛主题中描述的类似:  

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/1604070/am620-q1-am62xx-watchdog-resets-despite-keepalive-ioctl-write-echo/6181130?tisearch=e2e-sitesearch&keymatch=rti_wdt.c#

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1338070/am625-how-to-control-the-watchdog

问题

我根据以下内容启用了 WDT。
https://software-dl.ti.com/processor-sdk-linux-rt/esd/AM62LX/11_02_08_02/exports/docs/linux/Foundational_Components、Kernel_Drivers Kernel/Kernel/Watchdog.html

我使用以下内容作为参考运行 WDT 示例 C 代码。
但是、它将在大约 60 秒后复位。

image.png
问题

在 AM62L 平台中、似乎已在上述主题中解决、但 AM62L 平台的问题是否未解决?

操作环境如下所示
 SDK:AM62L-SDK LINUX-RT-SDK
 版本:11.02.08.02
 Board:定制板

此致、
最终目的

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

    抱歉、上面有一个拼写错误、


    问题

    AM62xx 平台中、似乎已在上述线程中解决、但 AM62L 平台的问题是否尚未解决?

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

    尊敬的:

    此修补程序是否修复了该行为?
    AM62L:看门狗无法正常工作

    我正在与开发人员进行核对、确认此补丁是否有意未纳入 SDK 11.2、或者是否遗漏了。

    此致、

    Nick

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

    您好、Nick、

    感谢您的支持。

    当我检查内核驱动程序时、SDK 11.2 似乎已经应用了补丁。

    https://github.com/TexasInstruments/ti-linux-kernel/commit/e7da049e7202df63a88af996af8288590ff50d68

    此致、
    最终目的

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

    您好、Nick、

    我可能已找到原因。

    在我的定制电路板上、LFOSC0 上未安装外部晶体。

    并检查 CPU 寄存器设置、如下所示:

    MAIN_CTRL_MMR_CFG2_WWD0_CLKSEL (0x0911D000) 为 0x00000001。  
    因此、已选择 DEVICE_CLKOUT_32K。

      

    WKUP_CTRL_MMR_CFG2_CLK_32K_RC_CLKSEL (0x43020100) 为 0x00000003。
    因此、选择了 LFOSC0_CLKOUT。   但是、我的定制电路板上未安装 LFOSC0。

    问题

    如何  在 Linux 器件树中将 WKUP_CTRL_MMR_CFG2_CLK_32K_RC_CLKSEL 寄存器更改为 0x00000002?

     使用 devmem2 更改了 WKUP_CTRL_MMR_CFG2_CLK_32K_RC_CLKSEL、它运行时不会出现问题。

    此致、

    最终目的

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

    尊敬的:

    查找该贴片以支持 AM62L 看门狗的有效方法。

    供参考:RC 时钟可能不是一个非常稳定的时钟源  

    我记得我们硬件团队的某个人告诉我、内部 RC 时钟的频率可能非常不同。 我现在正在与那个人再次核对。 但如果正确、我会建议不要为看门狗计数器使用内部 RC 时钟、因为假设系统时间由单独的振荡器决定、它可能会相对于系统时间发生漂移。

    了解如何更改时钟源  

    这是 AM62L 器件树文件中的魔术代码、它为 main_rti0 和 main_rti1 设置时钟源:

    k3-am62l-main.dtsi
    
            main_rti0: watchdog@e000000 {
                    compatible = "ti,am62l-rti-wdt";
                    reg = <0x00 0x0e000000 0x00 0x100>;
                    clocks = <&scmi_clk 277>;
                    power-domains = <&scmi_pds 60>;
                    assigned-clocks = <&scmi_clk 277>;
                    assigned-clock-parents = <&scmi_clk 274>;
            };
    
            main_rti1: watchdog@e010000 {
                    compatible = "ti,am62l-rti-wdt";
                    reg = <0x00 0x0e010000 0x00 0x100>;
                    clocks = <&scmi_clk 283>;
                    power-domains = <&scmi_pds 61>;
                    assigned-clocks = <&scmi_clk 283>;
                    assigned-clock-parents = <&scmi_clk 280>;
            };

    我通常会在 TISCI 文档中查找时钟 ID、并根据需要切换分配的时钟父时钟和分配的时钟。 但是、从 SDK 11.2 开始、TISCI 文档中似乎并未发布时钟 ID:
    https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/index.html#am62lx

    这是我希望页面显示的样子:
    https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/am62x/clocks.html 

    我正在与一位团队成员跟进、以了解我可以在哪里为您获取这些信息。 如果我没有得到星期五的响应、请 ping 该线程。

    此致、

    Nick

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

    您好、Nick、

    感谢您提供的信息。

    在 AM62 平台上、我可以按如下方式更改时钟源。

    main_rti0: watchdog@e000000 {
    	compatible = "ti,j7-rti-wdt";
    	reg = <0x00 0x0e000000 0x00 0x100>;
    	clocks = <&k3_clks 125 0>;
    	power-domains = <&k3_pds 125 TI_SCI_PD_EXCLUSIVE>;
    	assigned-clocks = <&k3_clks 125 0>;
    	assigned-clock-parents = <&k3_clks 125 2>;
    };

    我预计在 AM62L 平台上、还可以通过器件树更改时钟源。

    我期待收到您的答复。

    此致、
    最终目的

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

    尊敬的:

    RC 时钟 讨论(续)  

    根据我与硬件工程师的讨论:

    Nick: 您告诉我处理器内的 RC 时钟源的频率变化可能高达+/- 50%、对吗? 您是否知道这只是随机频率摆幅、或者 PVT 变化对频率的影响更大?

    硬件工程师: 主要是 PVT。  实际上、对于大多数硅来说、50%可能被夸大了

    因此、PVT 导致的 RC 时钟频率变化没有我担心的大、但影响未知。 内部 RC 时钟可能适合开发和调试、但我仍然不会将 RC 时钟用于我自己的设计、以避免出现意外的边缘情况(例如,当产品过冷且 RC 时钟频率与 Linux 系统时间相差超过 2%时,产品开始因看门狗而复位)。

    设置 WDT 时钟源

    啊,这是问题。 AM62L 使用 SCMI 协议而不是 TISCI 协议。 看起来时钟 ID 记录在 TF-A 工程中:
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62LX/latest/exports/docs/linux/Foundational_Components_ATF.html

    中导出
    https://github.com/TexasInstruments/arm-trusted-firmware/blob/ti-master/docs/plat/ti-am62l.rst 

    +--------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------+-------------+
    | PARENT | AM62LX_DEV_RTI0                            | AM62LX_DEV_RTI0_RTI_CLK_PARENT_GLUELOGIC_HFOSC0_CLK                                                                   | RTI0                       | 273         |
    +--------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------+-------------+
    | PARENT | AM62LX_DEV_RTI0                            | AM62LX_DEV_RTI0_RTI_CLK_PARENT_CLK_32K_RC_SEL_OUT0                                                                    | RTI0                       | 274         |
    +--------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------+-------------+
    | PARENT | AM62LX_DEV_RTI0                            | AM62LX_DEV_RTI0_RTI_CLK_PARENT_GLUELOGIC_RCOSC_CLKOUT                                                                 | RTI0                       | 275         |
    +--------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------+-------------+
    | PARENT | AM62LX_DEV_RTI0                            | AM62LX_DEV_RTI0_RTI_CLK_PARENT_GLUELOGIC_RCOSC_CLK_1P0V_97P65K3                                                       | RTI0                       | 276         |
    +--------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------+-------------+
    | MUX    | AM62LX_DEV_RTI0                            | AM62LX_DEV_RTI0_RTI_CLK                                                                                               | RTI0                       | 277         |
    +--------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------+-------------+
    | PARENT | AM62LX_DEV_RTI0                            | AM62LX_DEV_RTI0_VBUSP_CLK                                                                                             | RTI0                       | 278         |
    +--------+--------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------+-------------+

    此致、

    Nick