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.

[参考译文] AM3357:AM3357

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1195516/am3357-am3357

器件型号:AM3357

您好、TI!  

我们从 SDK AM335x-EVM-LINUX-SDK-src-08.02.00.24运行最新的内核5.10在定制电路板上、我们正在运行深度睡眠循环测试、RTC 唤醒设置为30秒、我们看到在经过几次迭代后未能进入深度睡眠、 一旦我们看到这个暂停失败错误、系统仍在响应并运行、但当我们尝试在下次系统 挂起时将其置于睡眠状态、恢复的唯一方法是执行电源重新启动。

用于进入睡眠状态的命令是 rtcwake

处理器信息:

```μ A

处理器:0
型号名称: ARMv7处理器 rev 2 (v7l)
博戈梅普斯: 715.89
功能:半拇指 fastmult vfp edsp sumbee neon vfpv3 TLS vfpd32
CPU 实现者:0x41
CPU 架构:7.
CPU 型号:0x3.
CPU 部件: 0xc08.
CPU 修订版本: 2.

```μ A

当系统无法进入深度睡眠时、我们会在日志中看到以下故障:

2月02日00:38:28 vg3x-0-4-0-调试内核:pm:SUSPEND 入口(深)
Feb 02 00:38:28 vg3x-0-4-0-debug kernel: filesystems sync: 0.001秒
Feb 02 00:38:28 vg3x-0-4-0-debug kernel:冻结用户空间进程... (经过0.006秒)完成。
Feb 02 00:38:28 vg3x-0-4-0-debug kernel: oom killer disabled.
Feb 02 00:38:28 vg3x-0-4-0-debug kernel:冻结剩余的免费任务... (0.001秒)完成。
Feb 02 00:38:28 vg3x-0-4-0-debug kernel: pm33xx pm33xx: pm : kernel suspend failure
02月02日00:38:28 vg3x-0-4-0-调试内核:网络 CAN0:C_CAN_HW_RAMINIT_WAIT_SYSCON:超时
02 02 02 00:38:28 vg3x-0-4-0-debug 内核:c_can_platform 481cc000.can CAN0:设置 bsr=1c02 BRPE=0000
02月02日00:38:28 vg3x-0-4-0-调试内核:网络 CAN1:C_CAN_HW_RAMINIT_WAIT_SYSCON:超时
02 02 02 00:38:28 vg3x-0-4-0-debug 内核:c_can_platform 481d0000.can CAN1:设置 bsr=1c02 BRPE=0000
Feb 02 00:38:28 vg3x-0-4-0-debug kernel: oom killer enabled.
Feb 02 00:38:28 vg3x-0-4-0-debug kernel:正在重新启动任务... 停止更新。

相应的 dmesg 输出如下所示:

e2e.ti.com/.../vg3x_2D00_0_2D00_3_2D00_3_2D00_debug_5F00_mem_5F00_ftrace.txt

我们甚至试图捕获附加到该线程的 ftrace、dmesg 日志、并将 init_call_debug 传递给内核、我们在预挂起、延迟挂起期间无法发现驱动程序的任何问题。

非常感谢您对如何进一步调试或收集更多信息以查明问题的任何想法 。 我

我的观察:

从 dmesg 输出中看起来、我们可以观察到的唯一错误线是 pm33xx pm33xx:pm:内核挂起失败,  故障似乎来自一个非常低的水平、即 CM3试图控制的阶段。 我们希望了解如何进一步调试这一点、以便通过找到解决方案来找出根本原因。

此外、

我们尚未在评估套件上尝试它、因为问题是、我们仅从 Ti SDK  AM335x-EVM-LINUX-SDK-src-08.02.00.24、TI 的前一个内核4.19运行最新的内核5.10时、我们在电路板上没有出现此问题。

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

    dmesg 输出如下:

    e2e.ti.com/.../vg3x_2D00_0_2D00_3_2D00_3_2D00_debug_5F00_mem_5F00_dmesg.txt

    定制内核 defconfig 如下所示:

    e2e.ti.com/.../linux_5F00_debug_5F00_defconfig.txt

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

    尊敬的 Aravind:

    让我首先尝试看看我是否可以在 AM335x EVM 上重现问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Feb 02 00:38:28 vg3x-0-4-0-debug kernel: pm33xx pm33xx: pm : kernel suspend failure
    02月02日00:38:28 vg3x-0-4-0-调试内核:网络 CAN0:C_CAN_HW_RAMINIT_WAIT_SYSCON:超时
    02 02 02 00:38:28 vg3x-0-4-0-debug 内核:c_can_platform 481cc000.can CAN0:设置 bsr=1c02 BRPE=0000
    02月02日00:38:28 vg3x-0-4-0-调试内核:网络 CAN1:C_CAN_HW_RAMINIT_WAIT_SYSCON:超时
    02 02 02 00:38:28 vg3x-0-4-0-debug 内核:c_can_platform 481d0000.can CAN1:设置 bsr=1c02 BRPE=0000

    BTY、系统进入挂起状态时是否可以运行应用程序? 如果是、您是否已尝试不运行该程序来查看问题是否仍然出现?

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

    您好、Liu、  

       是的、我们确实尝试卸载 481d0000.can 和 481cc000.can 并停止使用 CAN 控制器的任何应用程序、但我们仍然看到了问题、在这种情况下、日志中缺少以下行

    02月02日00:38:28 vg3x-0-4-0-调试内核:网络 CAN0:C_CAN_HW_RAMINIT_WAIT_SYSCON:超时
    02 02 02 00:38:28 vg3x-0-4-0-debug 内核:c_can_platform 481cc000.can CAN0:设置 bsr=1c02 BRPE=0000
    02月02日00:38:28 vg3x-0-4-0-调试内核:网络 CAN1:C_CAN_HW_RAMINIT_WAIT_SYSCON:超时
    02 02 02 00:38:28 vg3x-0-4-0-debug 内核:c_can_platform 481d0000.can CAN1:设置 bsr=1c02 BRPE=0000

    但日志中仍有这一行:

    Feb 02 00:38:28 vg3x-0-4-0-debug kernel: pm33xx pm33xx: pm : kernel suspend failure

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

    尊敬的 Aravind:

    您能否尝试使用以下内核补丁来禁用设备树中的 CAN sysc 模块?

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    diff --git a/arch/arm/boot/dts/am33xx-l4.dtsi b/arch/arm/boot/dts/am33xx-l4.dtsi
    index f560cf8d435c..1716879b388c 100644
    --- a/arch/arm/boot/dts/am33xx-l4.dtsi
    +++ b/arch/arm/boot/dts/am33xx-l4.dtsi
    @@ -1935,6 +1935,7 @@
    #address-cells = <1>;
    #size-cells = <1>;
    ranges = <0x0 0xcc000 0x2000>;
    + status = "disabled";
    dcan0: can@0 {
    compatible = "ti,am3352-d_can";
    @@ -1958,6 +1959,7 @@
    #address-cells = <1>;
    #size-cells = <1>;
    ranges = <0x0 0xd0000 0x2000>;
    + status = "disabled";
    dcan1: can@0 {
    compatible = "ti,am3352-d_can";
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好、Liu、

         我已经试用过补丁并多次进行测试、  但在所有情况下仍会观察到暂停故障、但没有与相关的错误  在日志中观察到 C_CAN_HW_RAMINIT_WAIT_SYSCON、  由于我们在提供的补丁中禁用了 CAN、因此下面是日志:

    2月14日14:22:26 vg3x-0-4-0-debug kernel: pm : SUSPEND entry (Deep)
    2月14日14:22:26 vg3x-0-4-0-debug kernel: filesystems sync: 0.000秒
    Feb 14 14:22:26 vg3x-0-4-0-debug kernel:冻结用户空间进程... (已过0.003秒)完成。
    Feb 14 14:22:26 vg3x-0-4-0-debug kernel: oom killer disabled.
    2月14日14:22:26 vg3x-0-4-0-debug kernel:冻结剩余的免费任务... (0.001秒)完成。
    Feb 14 14:22:26 vg3x-0-4-0-debug kernel: pm33xx pm33xx: pm: kernel suspend failure
    Feb 14 14:22:26 vg3x-0-4-0-debug kernel: oom killer enabled.
    Feb 14 14:22:26 vg3x-0-4-0-debug kernel:正在重新启动任务... 停止更新。
    2月14日14:22:26 vg3x-0-4-0-debug kernel: pm: SUSPEND EXIT
    2月14日14:22:26 vg3x-0-4-0-debug LBB 睡眠.sh[24792]:rtcwake:短写:参数无效

     在此重申以下几点:

    挂起失败仅在多次迭代进入睡眠测试后发生、每次迭代时只调用 rtcwake 命令、但当下次我们尝试进入睡眠模式时、系统会挂起。 如果需要任何进一步的补丁或步骤来收集更多的调试信息、我们将不胜感激。

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

     只是检查一下、如果您有什么关于如何收集更多调试信息来识别此处问题的建议吗?