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:引导停止和崩溃

Guru**** 2796425 points

Other Parts Discussed in Thread: SK-AM62, SK-AM62-LP, SK-AM62B-P1

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1354528/am625-boot-stall-and-crashes

器件型号:AM625
主题中讨论的其他器件: SK-AM62-LPSK-AM62B-P1、SK-AM62

您好!

这是几个月前发布的之前主题帖和讨论的后续内容:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1268222/am625-boot-stall-and-rcu-preempt-stall

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1309832/am625-crash-internal-error-synchronous-external-abort-in-mcan-driver-at-low-temperatures-20-degrees-celsius/4978691 

软件/硬件配置:

- TI SDK  09.02.01.09

-定制硬件(各种配置的存储器大小和存储器供应商,不同的 SOC 变体: AM6254、AM6231、AM6252)

-内核来源: https://git.toradex.com/cgit/linux-toradex.git/log/?h=toradex_ti-linux-6.1.y 

- U-Boot 源代码: https://git.toradex.com/cgit/u-boot-toradex.git/log/?h=toradex_ti-u-boot-2023.04 

- DDR 由我们内部验证, 并由存储器供应商在其办公场所进行验证。 我们有不同尺寸和供应商的存储器型号、它们都受到相同问题的影响

-我们有0.75V 和0.85V VDD_CORE 的变体,没有因为这种行为的差异

在对我们的软件/硬件进行测试期间、我们面临一些不同方式的启动停止问题。 它们都在 -20摄氏度以下发生。

1.系统因以下错误而停止。

[   86.779029] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[   86.785173] rcu: 	Tasks blocked on level-0 rcu_node (CPUs 0-0): P186/1:b..l
[   86.792151] 	(detected by 0, t=18276 jiffies, g=6889, q=115 ncpus=1)
[   86.798506] task:systemd-udevd   state:R  running task     stack:0     pid:186   ppid:173    flags:0x00000a04
[   86.808424] Call trace:
[   86.810870]  __switch_to+0xd4/0x130
[   86.814374]  __schedule+0x230/0x664
[   86.817863]  preempt_schedule_irq+0x44/0xd0
[   86.822047]  el1_interrupt+0x4c/0x70
[   86.825626]  el1h_64_irq_handler+0x18/0x2c
[   86.829725]  el1h_64_irq+0x64/0x68
[   86.833130]  set_root+0x64/0xfc
[   86.836275]  nd_jump_root+0xb8/0xf0
[   86.839764]  path_init+0x2d0/0x380
[   86.843167]  path_parentat+0x20/0xb0
[   86.846743]  __filename_parentat+0xa4/0x1c0
[   86.850927]  do_unlinkat+0x68/0x270
[   86.854416]  __arm64_sys_unlinkat+0x40/0x84
[   86.858600]  invoke_syscall+0x48/0x114
[   86.862352]  el0_svc_common.constprop.0+0xd4/0xfc
[   86.867057]  do_el0_svc+0x20/0x30
[   86.870372]  el0_svc+0x28/0xa0
[   86.873428]  el0t_64_sync_handler+0xbc/0x140
[   86.877701]  el0t_64_sync+0x18c/0x190
[   86.881364] rcu: rcu_preempt kthread timer wakeup didn't happen for 18273 jiffies! g6889 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402
[   86.892749] rcu: 	Possible timer handling issue on cpu=0 timer-softirq=2071
[   86.899705] rcu: rcu_preempt kthread starved for 18274 jiffies! g6889 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x402 ->cpu=0
[   86.910136] rcu: 	Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior.
[   86.919260] rcu: RCU grace-period kthread stack dump:
[   86.924305] task:rcu_preempt     state:I stack:0     pid:14    ppid:2      flags:0x00000008
[   86.932656] Call trace:
[   86.935099]  __switch_to+0xd4/0x130
[   86.938587]  __schedule+0x230/0x664
[   86.942074]  schedule+0x5c/0xcc
[   86.945216]  schedule_timeout+0x84/0xfc
[   86.949055]  rcu_gp_fqs_loop+0x12c/0x46c
[   86.952983]  rcu_gp_kthread+0x128/0x164
[   86.956820]  kthread+0x10c/0x110
[   86.960051]  ret_from_fork+0x10/0x20
[   86.963627] rcu: Stack dump where RCU GP kthread last ran:
[   86.969111] CPU: 0 PID: 181 Comm: systemd-udevd Not tainted 6.1.80+git.0d9f1748ac17 #1
[   86.977026] Hardware name: Toradex Verdin AM62 WB on Verdin Development Board (DT)
[   86.984591] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   86.991550] pc : iomap_read_reg+0x10/0x30 [m_can_platform]
[   86.997049] lr : m_can_get_berr_counter+0x3c/0x10c [m_can]
[   87.002548] sp : ffff8000099735f0
[   87.005858] x29: ffff8000099735f0 x28: 0000000000000240 x27: ffff800000cca1a0
[   87.012998] x26: ffff000003f9e000 x25: ffff000003f9e240 x24: 0000000000000000
[   87.020137] x23: 0000000000000000 x22: ffff0000002ae410 x21: ffff0000035f8000
[   87.027276] x20: ffff0000035f8980 x19: ffff80000997362c x18: 0000000000000000
[   87.034414] x17: ffff800014add000 x16: ffff800008000000 x15: 0000000000000000
[   87.041552] x14: 000000000000022f x13: 0000000000000001 x12: 0000000000000001
[   87.048691] x11: 0000000000000000 x10: 00000000000009b0 x9 : ffff8000099731e0
[   87.055829] x8 : ffff00001da1b180 x7 : 0000010000108100 x6 : ffff0000002ae590
[   87.062968] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000
[   87.070106] x2 : ffff800000ca4000 x1 : 0000000000000040 x0 : 000000000071ff00
[   87.077244] Call trace:
[   87.079687]  iomap_read_reg+0x10/0x30 [m_can_platform]
[   87.084832]  can_fill_info+0x108/0x524 [can_dev]
[   87.089477]  rtnl_fill_ifinfo+0x844/0x11b0
[   87.093578]  rtnl_getlink+0x23c/0x424
[   87.097239]  rtnetlink_rcv_msg+0x130/0x3a0
[   87.101334]  netlink_rcv_skb+0x60/0x130
[   87.105174]  rtnetlink_rcv+0x18/0x2c
[   87.108755]  netlink_unicast+0x2f0/0x360
[   87.112677]  netlink_sendmsg+0x1b0/0x420
[   87.116600]  __sys_sendto+0x138/0x174
[   87.120265]  __arm64_sys_sendto+0x28/0x3c
[   87.124275]  invoke_syscall+0x48/0x114
[   87.128024]  el0_svc_common.constprop.0+0xd4/0xfc
[   87.132729]  do_el0_svc+0x20/0x30
[   87.136044]  el0_svc+0x28/0xa0
[   87.139100]  el0t_64_sync_handler+0xbc/0x140
[   87.143372]  el0t_64_sync+0x18c/0x190

完整日志:

e2e.ti.com/.../24_2D00_04_2D00_17_5F00_22_2D00_12_2D00_36_2D00_Fail.txt

2.没有任何消息的引导停止。

 不过、根据我可以告诉您的、没有有关正在发生什么的提示、请参阅所附的日志

e2e.ti.com/.../24_2D00_04_2D00_17_5F00_18_2D00_29_2D00_29_2D00_Fail.txt

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

    弗朗茨、您好

    谢谢、如果禁用运行时暂停功能不会显示数据、这是一个非常好的数据点。
    让我与开发团队进一步讨论  

    感谢您提供这些数据点。 非常感谢  

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

    弗朗茨、您好!

    我们正在准备有关在 PASS 和 FAIL 情况下转储 SYSFW 调试跟踪的说明。 您的电路板是否具有 WKUP_UART 或 JTAG 访问权限? 调试跟踪可以从某个接口转储。

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

    您好、Bin、

    感谢您准备这些说明。 是的、我们确实能够在这两种情况下对其进行调试。

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

    弗朗茨、您好!

    很好、使用 WKUP_UART 会更容易获得 SYSFW 调试跟踪。

    请将以下 U-Boot 补丁应用于 SDK9.2、然后重新编译 U-Boot。

    diff --git a/board/ti/am62x/board-cfg.yaml b/board/ti/am62x/board-cfg.yaml
    index a26ef55bd45b..d9bfbdbb480e 100644
    --- a/board/ti/am62x/board-cfg.yaml
    +++ b/board/ti/am62x/board-cfg.yaml
    @@ -32,5 +32,5 @@ board-cfg:
             subhdr:
                 magic: 0x020C
                 size: 8
    -        trace_dst_enables : 0x00
    -        trace_src_enables : 0x00
    +        trace_dst_enables : 0x0d
    +        trace_src_enables : 0x3f

    现在、如果您从 PC 使用与控制台 UART - 115200n8相同的 UART 设置连接到 WKUP_UART、则会在 u-boot/kernel 运行时期间看到十六进制字符串转储列表、这是 SYSFW 调试跟踪。

    请捕获两次迹线、一个用于正常/通过引导、另一个用于 CAN 故障情况(没有50ms 延迟)。

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

    您好、Bin、

    这里有迹线。
    正常周期:
    e2e.ti.com/.../LogPass.txt

    故障周期:
    e2e.ti.com/.../LogFail.txt

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

    弗朗茨、您好!

    感谢您捕获日志。 他们很有帮助。

    我在 CAN 故障情况下看到一些事务失败。 我们会对其进行研究、并让您随时关注最新动态。

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

    您好、Bin、

    您对此有任何更新吗?

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

    弗朗茨、您好!

    根据调试跟踪中提供的信息、我们正在致力于重现问题、重点关注 MCAN/PSC 如何对 PD 模块进行转换、但在过去几天中、由于假期长周末、进展缓慢、并且今天上午达拉斯地区出现了严重的雷暴、而且我们的办公室至少在今天关闭、这会导致额外的延迟。 感谢您的耐心。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们正在研究如何重现此问题、重点关注 MCAN/PSC 在 PD 模块上的转换情况

    只是一个抬头,即使这是从一开始就写的。 这是非系统性的、发生在-20摄氏度以下的温度下。 希望它有助于让您专注于调试。

    此外、如果任何调试固件有助于工作、我们还可以运行它、而我们有一个可靠的重生成器、只需告诉我们应测试什么即可。

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

    对于如何解决此问题、您有什么估计? 我们可以做些什么来帮助在这方面取得进展?

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

    您好、Francesco

    感谢您发送编修。 我们可能会接受这种需求、但到目前为止、我们在初步尝试在-40°C 时通过热流(在 EVM 上)实现更简单的裸机测试失败未导致任何故障  

    有待跟进的潜在领域很少

    1)我们可能会给您另一个固件映像,以进一步帮助诊断问题,这可能会在下周中期  

    2)您是否有任何能力显示 EVM 上的重现性, Bin 可能会尝试复制您的测试,但他有一些其他升级在队列前,所以排除这是一个电路板问题的任何东西都有帮助。  

    3) 3)对于故障百分比等、显示故障需要多少次迭代。 我们已经运行了100次迭代,没有看到失败(有裸金属样式),但认为你必须运行一夜? 您能解释一下吗?

    此致

    Mukul  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    2)您是否有能力在 EVM 上显示可重现性?Bin 是否可以尝试复制您的测试?但是他在队列中还有一些其他升级问题、所以排除这种问题的任何因素都对您有所帮助。  [报价]

    我们可以尝试将 TI AM62 SK 放入温度室(-25°C)。 但是、鉴于此电路板不是针对这样的 温度范围而设计 的、我们可能无法获得可靠的结果(例如、它可能因其他原因而崩溃)。 同时、我们只有少数电路板、可能只有一个采用 LPDDR4且最接近硬件的电路板、因此覆盖范围将非常有限、我们看到一些电路板并未出现故障。 通常情况下、我们并行运行7个电路板几小时、从而对结果有一定程度的把握。  

    如果您对这些限制条件感到满意、我认为我们可以规划它(我需要在内部查看的实际细节、但是、我本人或我的团队不会处理此问题)。 我们可能需要一些 帮助来确保启用所需的调试日志以及启用 CAN 接口。

    ·施尼德:你能就这一点和其他问题发表评论吗? 您比我更熟悉实际的测试主题。

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

    你好、Mukul

    [报价 userid="5798" url="~/support/processors-group/processors/f/processors-forum/1354528/am625-boot-stall-and-crashes/5246004 #5246004"]3)对于故障百分比等、出现故障需要多少次迭代。 我们已经运行了100次迭代,没有看到失败(有裸金属样式),但认为你必须运行一夜? 您能解释一下吗?

    是的,大部分的测试运行了一夜,持续了约18小时。
    失败率。 在本例中、如果没有任何更改(增加延迟等)、在-40°C 环境温度下并行运行七个电路板时、其中两到三个电路板将在50%或更多时间内出现问题。 一个或两个电路板可能不会出现问题、而其他电路板可能会不时出现问题。
    因此、在我们的案例中、如果电路板受到影响、100次迭代就绰绰有余。
    它是在您这边多个 EVM 上进行测试、还是仅在一个 EVM 上进行测试?

    此外、如果传感器也在我们的案例中处于同一区域(-25°C 到-30°C)、还需要了解传感器在您的设置中报告的 SOC 温度。

    至于在我们末端的 AM62 SK 上测试它、我将检查我们是否有 SK-AM62-LP 可以使用 LPDDR4板进行测试。 在最坏的情况下、我们需要订购一个(或多个)。

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

    是的、该板不能在低温下工作。 我们使用 SOC 上的热流定位低温测试-所以可能不能使用温室,但如果你能给它一个射击.  

    如果你损坏 SK 板,将找出如何得到你没有问题的另一个:).  

    要生成更多调试日志、需要开发人员的帮助(此人目前不在办公室)、所以我希望下周我们能在一定时间为其提供帮助。 如果在有和没有此调试日志的情况下进行测试运行过于繁重、那么让我们等待开发人员启用这些日志。

    感谢您的耐心等待、我们将与您通力合作

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

    尊敬的 Mukul:

    是否有调试固件的任何更新?

    与此同时、我试图在我们的人工气候室中重现 SK-AM62B-P1的问题。 我没有成功。 我将订购 SK-AM62-LP、以尝试在与我们的硬件更为相似的 EVM 上重现此问题。

    此致

    弗朗茨

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

    尊敬的 Mukul:

    我们何时可以获得新的调试固件有什么更新?
    如果有助于解决此问题、我们还可以向您发送我们的一些硬件。

    今天、我尝试在 LP EVM 上重现此问题、但尚未成功。 测试仍在我们的气候室中进行。

    在此期间、我们还可以做些什么来取得进展吗?

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



    有更新吗?

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

    弗朗茨,你好

    很抱歉在回复过程中出现了极大的延迟、我在出差、无法进行更新。  

    遗憾的是、我没有为您提供调试固件的时间表、主要开发人员本周和下周都在外面、我将看看是否还有其他人可以生成这个时间表。  

    令人关注的是、TI EVM 无法重现该情况、我们在1-2个 EVM 上进行了多次尝试以充分发挥我们的能力(使用热流代替温控室、甚至使用裸机测试来进行更充分的控制、并尽可能减少其他因素的干预)后获得了相同的阅读结果

    您在每块电路板上都看到过这个、但我们在 EVM 上没有看到这个、因此我们需要您的帮助来确定这两块电路板之间有何不同。 我们甚至仅尝试了 init/deinit CAN (PSC 等)、因此不依赖于 CAN 接口上的器件、但无法再现它。  

    您输入2个电路板上可能不同的内容、使您的电路板更易受影响、这些信息将会很有帮助。  

    我将在调试固件版本中随时向您发布、以帮助您进一步诊断此问题(再次对后续操作过程中的极端延迟表示遗憾)  

    此致

    Mukul  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    令人关注的是、TI EVM 无法重现此问题

    我同意这一点。

    另一方面、我们有明确的证据表明、DM 固件中正在发生这种情况、我们只会运行您的精确二进制文件。  

    在 SK 板上、我们可能很幸运、由于某种原因、软件运行速度较慢、从而允许电源域正确唤醒(我们已经知道通过几毫秒的休眠可解决该问题)。

    或者、出现不同行为的原因可能是 SOC 的不同时钟相关?

    您可以看看我们在这方面与 SK 板相比有哪些不同之处?

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

    尊敬的 Mukul:

    感谢您再次来到我的网站。

    您关于2块电路板上可能不同之处的意见将会很有帮助、这些意见会使您的电路板更加敏感。  [报价]

    与我们的高级硬件工程师交谈后、我们在这个问题上还未考虑到的一个差异是、我们电路板上的电源电路更多地基于 BeaglePlay、而不是 TI EVM。 如果问题能在那里重现、那将是很有趣的。

    [报价 userid="546986" url="~/support/processors-group/processors/f/processors-forum/1354528/am625-boot-stall-and-crashes/5290796 #5290796"]

    或者、出现不同行为的原因可能是 SOC 的不同时钟相关?

    您可以看看我们在这方面与 SK 板相比有哪些不同之处?

    [报价]

    我在两个板上测量了25 MHz。

    [报价 userid="5798" url="~/support/processors-group/processors/f/processors-forum/1354528/am625-boot-stall-and-crashes/5290678 #5290678"]

    遗憾的是、我没有为您提供调试固件的时间表、主要开发人员本周和下周都在外面、我将看看是否还有其他人可以生成这个时间表。  

    [报价]

    在获得新的调试固件之前、我将尝试在 BeaglePlay 上重现问题。

    谢谢

    弗朗茨

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

    弗朗茨,你好

    感谢您的耐心等待。 我可能还需要一周时间才能获得调试固件、这位专家本周已不在办公室。  

    因此与 TI EVM 相比、您的电路板上连接的 CAN 总线与 TI EVM 上没有什么明显的差异(或者它们并不在图片中、因为测试中 CAN 上没有发生任何活动)?   

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

    尊敬的 Mukul:

    感谢调试固件更新。

    [报价 userid="5798" url="~/support/processors-group/processors/f/processors-forum/1354528/am625-boot-stall-and-crashes/5306056 #5306056"]因此在您的电路板上连接的 CAN 总线与 TI EVM 上连接的 CAN 总线与(或者它们未在图片中、因为在测试中 CAN 上没有发生活动)没有什么大区别?   [报价]

    在我们的测试中、CAN 总线上没有任何活动。 接口仅被初始化。

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

    弗朗茨、您好!

    请集成下面附加的调试固件并像以前一样从 WAKEUP UART 收集调试跟踪。

    e2e.ti.com/.../3225.ipc_5F00_echo_5F00_testb_5F00_mcu1_5F00_0_5F00_release_5F00_strip.xer5f

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

    弗朗茨

    开发人员可以在这个周末的时候开始工作、在开始计时组之前、我不知道这一点、Bin 已经共享了调试固件-如果您有机会可以快速上手的话、我将不胜感激。  

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

    您好!

    感谢提供的调试固件。

    我`将提供的文件复制到 v í` ti-linux-firmware/ti-dm/am62xx/ 中并替换那里的现有文件、然后重新编译 u-boot? 如果我错了、请更正我、否则我已经收集了一个失败和通过情况的 SYSFW 跟踪:

    e2e.ti.com/.../dbgTIFail.txt

    e2e.ti.com/.../dbgTIPass.txt

    如果您有兴趣、可查看失败和通过周期的 dmesg:

    e2e.ti.com/.../dmesgFail.txt

    e2e.ti.com/.../dmesgPass.txt

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

    弗朗茨、您好!

    [报价 userid="592330" url="~/support/processors-group/processors/f/processors-forum/1354528/am625-boot-stall-and-crashes/5309435 #5309435"]假设所提供的文件应该复制到`ti-linux-firmware/ti-dm/am62xx/`并替换那里的现有文件、然后重新编译 u-boot? [报价]

    是的、正确。

    我已经收集了一个失败和通过案例的 SYSFW 跟踪:

    谢谢。 我将回顾这些建议并与我们的开发团队进行讨论。

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

    弗朗茨、您好!

    您能否再次捕获故障跟踪、但在终端程序中启用了消息时间戳(精确度为毫秒级)? 我们想查看在唤醒 UART 控制台中打印超时消息的相对时间。 如果使用 minicom、则按两次"Ctrl-A、N"以毫秒格式打开消息时间戳。

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

    您好、Bin、

    按顺序:

    e2e.ti.com/.../dbgFailTime.txt

    作为参考的 pass:

    e2e.ti.com/.../dbgTime.txt

    要添加的内容:

    该调试固件通常是否会向 DM 添加任何延迟? 遇到这个问题并不像往常那么容易、如果您记得开始进行的实验、这些实验在 CAN 驱动程序中添加了延迟、那么现在我可以收集具有发生率的日志、就像我可以添加20ms 延迟(~2%)一样。

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

    弗朗茨、您好!

    感谢您的观看。

    此调试固件一般是否会给 DM 增加任何延迟?

    该调试固件会在超时循环检查前后再添加两次打印。 它会由于打印到 UART 而增加一些延迟、但我不认为延迟会超过20ms。 总之、我已将日志传递给开发团队、正在等待下一步。

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

    弗朗茨、您好!

    请在 U-Boot 构建过程中使用下面随附的 DM 固件二进制文件、并收集 wkup UART 调试跟踪信息。 该版本删除了超时检查以在低温下获得准确的转换时间。

    e2e.ti.com/.../3007.ipc_5F00_echo_5F00_testb_5F00_mcu1_5F00_0_5F00_release_5F00_strip.xer5f

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

    弗朗茨、您好!

    由于 DM 固件删除了超时、它假设总是等到转换完成、然后成功返回到内核、因此我怀疑您在 Linux 中不会看到使用此 DM 固件的 MCAN 故障。 但 WAKEUP UART 日志会显示故障情况、此情况在状态转换过程中需要较长时间。

    现在、由于您无法在 Linux 中检查故障以在发生故障时停止测试、因此我想您必须在通常在先前测试中看到故障的时间内运行测试、然后我们将搜索 wkup UART 日志。

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

    您好、Bin、

    我隔夜运行了测试、可以为您提供日志:
    e2e.ti.com/.../TI_5F00_DM_5F00_FW_5F00_run3.txt

    我可以在其中看到"0x75002001"字符串、我认为其表示转换失败、另外还有
    在 Linux 中,我可以看到一些问题,但它附带了一些不同的消息,而不是通常与"盒子"相关。 以下是一些示例:

    e2e.ti.com/.../24_2D00_07_2D00_26_5F00_00_2D00_13_2D00_51_2D00_Fail.txt
    e2e.ti.com/.../24_2D00_07_2D00_25_5F00_20_2D00_10_2D00_55_2D00_Fail.txt

    我忘记设置时间戳了、希望没有时间戳仍然足够好、否则我可以重新进行测试。

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

    弗朗茨、您好!

    感谢您运行测试。 我仍在和我们的开发团队讨论测试结果、但我认为内核 Mbox 超时消息是由于内核中定义的超时值很短、因为现在该 DM 固件删除了超时调节。

    您能否应用以下内核补丁将内核 Mbox 超时从10秒更改为50秒、以查看内核 Mbox 消息是否消失、MCAN 故障问题在您的压力测试中是否未发生?

    diff --git a/drivers/firmware/ti_sci.c b/drivers/firmware/ti_sci.c
    index ae1ef599df71..c7a3be484d37 100644           
    --- a/drivers/firmware/ti_sci.c                                         
    +++ b/drivers/firmware/ti_sci.c                                         
    @@ -3725,7 +3725,7 @@ static const struct ti_sci_desc ti_sci_pmmc_k2g_desc = {
     static const struct ti_sci_desc ti_sci_pmmc_am654_desc = {
            .default_host_id = 12,
            /* Conservative duration */                                     
    -       .max_rx_timeout_ms = 10000,                                     
    +       .max_rx_timeout_ms = 50000,
            /* Limited by MBOX_TX_QUEUE_LEN. K2G can handle upto 128 messages! */
            .max_msgs = 20,    
            .max_msg_size = 60,

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

    您好、Bin、

    我应用了更改、但 Mbox 和 MCAN 故障仍然存在。

    e2e.ti.com/.../24_2D00_07_2D00_29_5F00_19_2D00_44_2D00_20_2D00_Fail.txt

    此处是唤醒 UART 日志(现在再次显示时间戳)。

    e2e.ti.com/.../canNewFwMBox.txt

    谢谢

    弗朗茨

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

    您好、Bin、

    您是否有机会与您的开发团队讨论最新结果?
    您是否需要进行其他更改的任何其他测试来获取更多数据以继续处理此问题?

    谢谢

    弗朗茨

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

    弗朗茨、您好!

    Bin 现在已不在办公室、可以尽快提供更新。

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

    弗朗茨、您好

    我们构建了一个在 CCS 中运行的更简单的测试用例,更多的裸机,在一个 M4上运行,我们在温度室/的 EVM 上运行了很长的迭代  

    测试基本上是这样的  

    将在 PSC_DISABLE 和 PS_ENABLE 状态之间无限期切换 LPSC_MAIN_MCANSS_0
    -将计算转换次数(禁用->启用)、并每隔64K 转换转换转换次数打印一次
    -任何错误都会停止循环并产生错误消息

    此测试也不会在 EVM 上失败(类似于您和我们先前通过 Linux 测试观察到的情况)

    您是否愿意在测试环境中的电路板上尝试这样做、以继续查看故障是否以某种方式取决于电路板  

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

    弗朗茨先生、

    我叫 Andrew、我来这里是为了帮您 安装附加的裸机测试用例、并使其在 CCS 中运行。  要开始使用、请通过以下链接下载最新版本的 CCS (12.71或12.8): https://www.ti.com/tool/download/CCSTUDIO。我们建议使用按需(网络)安装程序、以便仅下载和设置所需的组件。  为所有安装提示选择默认设置、直到进入"Select Components Page";在该页面上、仅选择"Sitara Am3x、AM4x、AM5x 和 AM6x MPU"选项。


    使用所有其他页面默认值继续安装过程(如果在防火墙/VPN 内安装、系统提示您输入 https 代理信息)。  完成后、在启动 CCS 之前重新启动计算机。  在这里、请按照以下步骤操作:

    1.安装 CCS 后、在文件浏览器中导航到以下目录:
    -C:\ti\ccs1271\ccs\ccs_base\emulation\gel\AM62x

    2.编辑" AM62x.GEL "文件(使用任意文本编辑器):
      -注释出72-74行并保存文件
        // Set_PSC_PSC_SSC() All_On;
        //GEL_TextOut ("\n");
        //GEL_TextOut ("***** 使用 R5或 A53 gel 配置 DDR\n");

    3.启动 CCS 并创建新的 AM62x 目标配置(本指南中名为 AM62x_MCAN.ccxml):< File->New->Target Configuration File >

      -连接: 德州仪器(TI) XDS110 USB 调试探针

      -板或设备: AM62

      - "Advanced" tab from bottom menu, listed between "Basic" & "Source">

      - "SMS_CM4_0_TIFS_0" from core listings>

      初始化脚本:指向在第2步中修改的文件,在目录#1中

      -保存此目标配置

    4. 连接 device/EVM 并启动目标配置

      - 目标配置>

      -<右键单击 AM62x_MCAN.ccxml ->启动所选配置>

    5. 连接至:德州仪器(TI) XDS110 USB 调试 Probe_0/ SMS_CM4_0_TIFS_0

      初始化脚本将自动运行并设置所有 PLL 至 OFC1设置

    6.将连接的程序加载到核心:" AM62X_MCAN_PSC_Test_TIFS.out "

      -如果内核在加载后立即开始运行,请暂停内核并重新加载

    7. 单击此 TIFS 内核上的"运行"、程序将开始 LPSC 转换、并开始打印事务编号:

      -如果出现错误,程序将停止转换并显示错误打印。

    请查看随附的 " AM62X_MCAN_PSC_Test_TIFS.out "文件以及"README.txt "中这些说明的副本。 如果您在执行这些安装步骤或测试程序时遇到任何困难、请随时与我们联系。

    此致、

    Andrew

    e2e.ti.com/.../AM62X_5F00_MCAN_5F00_PSC_5F00_Test_5F00_TIFS.oute2e.ti.com/.../6355.README.txt

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

    Andrew、您好!

    感谢您的大力支持。

    我在我们人工气候室中显示 Linux 48h+问题的同一个模块上运行了测试。
    因此、有足够的时间让误差在正常情况下出现。

    我在控制台输出上看不到任何错误、可能是由于无法访问调试访问点而停止测试的错误、但我认为这主要是主机/调试探针的通信错误、而不是模块上的 MCAN 转换中的错误。

    对结果有什么看法?

    SMS_CM4_0_TIFS_0: GEL Output: RAT has been configured
    SMS_CM4_0_TIFS_0: GEL Output: Configuring ATCM for the DM R5F
    SMS_CM4_0_TIFS_0: GEL Output: ATCM Configured.
    SMS_CM4_0_TIFS_0: GEL Output: DM R5F Halt bit set.
    SMS_CM4_0_TIFS_0: GEL Output: Configuring DM R5F bootvector
    SMS_CM4_0_TIFS_0: GEL Output: DM R5F Bootvector configured.
    SMS_CM4_0_TIFS_0: GEL Output: Programming all PLLs.
    SMS_CM4_0_TIFS_0: GEL Output: Programming Main PLL 0 (Main PLL)
    SMS_CM4_0_TIFS_0: GEL Output: Setting PLL in integer mode
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for PLL Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for Calibration Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Cal locked
    SMS_CM4_0_TIFS_0: GEL Output: Main PLL 0 (Main PLL) Set.
    SMS_CM4_0_TIFS_0: GEL Output: Programming Main PLL 1 (Peripheral 0 PLL)
    SMS_CM4_0_TIFS_0: GEL Output: Setting PLL in fractional mode
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for PLL Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Main PLL 1 (Peripheral 0 PLL) Set.
    SMS_CM4_0_TIFS_0: GEL Output: Programming Main PLL 2 (Peripheral 1 PLL)
    SMS_CM4_0_TIFS_0: GEL Output: Setting PLL in integer mode
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for PLL Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for Calibration Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Cal locked
    SMS_CM4_0_TIFS_0: GEL Output: Main PLL 2 (Peripheral 1 PLL) Set.
    SMS_CM4_0_TIFS_0: GEL Output: Programming Main PLL 8 (ARM0 PLL)
    SMS_CM4_0_TIFS_0: GEL Output: Setting PLL in integer mode
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for PLL Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for Calibration Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Cal locked
    SMS_CM4_0_TIFS_0: GEL Output: Main PLL 8 (ARM0 PLL) Set.
    SMS_CM4_0_TIFS_0: GEL Output: Programming Main PLL 12 (DDR PLL)
    SMS_CM4_0_TIFS_0: GEL Output: Setting PLL in integer mode
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for PLL Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for Calibration Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Cal locked
    SMS_CM4_0_TIFS_0: GEL Output: Main PLL 12 (DDR PLL) Set.
    SMS_CM4_0_TIFS_0: GEL Output: Programming Main PLL 15 (SMS PLL)
    SMS_CM4_0_TIFS_0: GEL Output: Setting PLL in integer mode
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for PLL Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for Calibration Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Cal locked
    SMS_CM4_0_TIFS_0: GEL Output: Main PLL 15 (SMS PLL) Set.
    SMS_CM4_0_TIFS_0: GEL Output: Programming Main PLL 16 (DSS0 PLL)
    SMS_CM4_0_TIFS_0: GEL Output: Setting PLL in fractional mode
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for PLL Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Main PLL 16 (DSS0 PLL) Set.
    SMS_CM4_0_TIFS_0: GEL Output: Programming Main PLL 17 (DSS1 PLL)
    SMS_CM4_0_TIFS_0: GEL Output: Setting PLL in fractional mode
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for PLL Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Main PLL 17 (DSS1 PLL) Set.
    SMS_CM4_0_TIFS_0: GEL Output: Programming MCU PLL 0 (MCU PLL)
    SMS_CM4_0_TIFS_0: GEL Output: Setting PLL in integer mode
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for PLL Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Waiting for Calibration Lock...
    SMS_CM4_0_TIFS_0: GEL Output: Cal locked
    SMS_CM4_0_TIFS_0: GEL Output: MCU PLL 0 (MCU PLL) Set.
    SMS_CM4_0_TIFS_0: GEL Output: All PLLs programmed.
    [SMS_CM4_0_TIFS_0] AVV_TEST_START:AM62X_MCAN_PSC_Test_TIFS
    PD_NAME PD State: ON
    LPSC_NAME MD State: DISABLE
    65536
    131072
    ...........
    442499072
    SMS_CM4_0_TIFS_0: Error: (Error -1170 @ 0x0) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 12.8.0.00189) 

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

    弗朗茨、您好!

    抱歉、之前已经说明过、我忘记了-对于 SoC 时钟源、您的电路板是使用外部晶体还是 HCMOS 振荡器(作为 SK-AM62 EVM)?

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

    您好、Bin Liu。

    我们使用外部晶体 作为  SoC 的时钟源  

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

    您好、Oleksiy:

    我们的硬件专家希望检查该问题是否与晶体正弦波上的噪声有关。 是否可以从电路板上移除晶体并放置信号发生器作为时钟源、以查看 CAN 问题是否仍然发生?

    AM62x 数据表第7.11.4.1.1节(MCU_OSC0内部振荡器时钟源)介绍了使用晶体的设计、而第7.11.4.1.1节(MCU_OSC0 LVCMOS 数字时钟源)介绍了使用数字信号作为时钟源的设计。

    (我们的硬件专家还提到了电源上的噪声、但是我想我们可以先检查晶振、如果晶振设计不是问题出在电源上、那么就看看电源。)

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

    您好、Bin、

    "我是你的,我是你的。"

    我们的硬件专家想要检查该问题是否与晶体正弦波上的噪声有关。 是否可以从电路板上移除晶体并放置信号发生器作为时钟源、以查看是否仍会出现 CAN 问题?

    我们应用了该建议、但没有看到任何改进、也没有让情况变得更糟、因此根本没有影响。

    (我们的硬件专家还提到了电源噪声问题、但我认为我们可以先检查晶振、如果不是晶体设计的原因、则先检查电源。)

    我认为检查电源不会为我们提供任何更有价值的信息。 如前所述、如果将 CAN 驱动程序列入黑名单、我们根本就没有问题。 我假设如果电源出现一些干扰、即使具体的驱动程序没有列入黑名单、也会出现低温问题。

    我们可以在收集的调试跟踪中看到此问题与转换超时有何关系?
    由于对 M4内核执行的裸机测试仅启用/禁用 MCAN 未显示任何问题、因此问题表明处于超时状态?

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

    您好、Bin、

    您这边有任何关于这个主题的更新或进一步的想法吗?

    或者对我在上一个评论中提出的要点有何回答?

    同时、我们还使用6.6.6.6.y 内核对其进行了测试。 使用的 SYSFW 版本是'10.0.8--v10.00.08 (Fiery Fox)'。

    问题仍然存在。

    谢谢!

    弗朗茨