Other Parts Discussed in Thread: AM62L
器件型号: AM62L
您好:
我们在自定义 som/Devboard 上看到 AM62L32 当可以在启动时初始化时出现内核错误。
内核:
U-Boot:
TF-A 就是添加了 DDR4 配置的 TI 货叉。
(MT40A1G16TB-062E 2GB DDR4 或 AS4C512M16D4A-62BIN 1GB DDR4)
我们将 MAIN_MCAN0 和 MAIN_MCAN1 与 TCAN1042 收发器配合使用。
由于以下 TI TF-A 提交、我们 在 systemd 正在初始化 CAN 时引导时偶尔会看到内核出现错误 (100 到 500 引导中~1)。 然后、系统卡住、必须进行下电上电。
[ 9.711664] Internal error: synchronous external abort: 0000000096000010 [#1] PREEMPT SMP
[ 9.719870] Modules linked in: ti_am335x_adc(+) kfifo_buf crct10dif_ce phy_can_transceiver tps65219_pwrbutton rtc_rv3028 tmp102 rtc_ti_k3(+) k3_j72xx_bandgap leds_pca9532 dthev2 md5 crypto_engine m_can_platform m_can ti_am335x_tscadc can_dev lm75 at24 cfg80211 rfkill cryptodev(O) fuse ipv6
[ 9.745576] CPU: 1 UID: 0 PID: 173 Comm: (udev-worker) Tainted: G M O 6.12.49-g5c3b6790-g5c3b67907416 #1
[ 9.756275] Tainted: [M]=MACHINE_CHECK, [O]=OOT_MODULE
[ 9.761401] Hardware name: phyFLEX-AM62L Libra Rapid Development Kit (DT)
[ 9.768172] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 9.775119] pc : iomap_read_reg+0x8/0x20 [m_can_platform]
[ 9.780526] lr : m_can_get_berr_counter+0x3c/0xe4 [m_can]
[ 9.785927] sp : ffff80008272b2b0
[ 9.789229] x29: ffff80008272b2b0 x28: 0000000000000224 x27: ffff8000797f3058
[ 9.796360] x26: 0000000000000000 x25: ffff00000549f800 x24: 0000000000000000
[ 9.803487] x23: ffff00000549fa24 x22: ffff00000386dc10 x21: ffff0000089c0000
[ 9.810614] x20: ffff0000089c0980 x19: ffff80008272b2ec x18: ffffffffffffffff
[ 9.817741] x17: 0000000000000000 x16: 0000000000000000 x15: 2f74656e2f6e6163
[ 9.824868] x14: 0000000000000000 x13: 0000000100000200 x12: 0000000100000080
[ 9.831994] x11: 0000000000000040 x10: ffff000003b32138 x9 : ffff000003b32130
[ 9.839121] x8 : ffff00000404bdd0 x7 : 0000000000000000 x6 : 0000000000000080
[ 9.846247] x5 : ffff000003b4aef8 x4 : 0000000000000000 x3 : 0000000000000001
[ 9.853374] x2 : ffff80007981210c x1 : 0000000000000040 x0 : ffff80008211d040
[ 9.860501] Call trace:
[ 9.862939] iomap_read_reg+0x8/0x20 [m_can_platform]
[ 9.867989] can_fill_info+0x108/0x52c [can_dev]
[ 9.872620] rtnl_fill_ifinfo.isra.0+0xac8/0x121c
[ 9.877330] rtmsg_ifinfo_build_skb+0xc4/0x140
[ 9.881767] rtnetlink_event+0xb0/0xd8
[ 9.885509] raw_notifier_call_chain+0x54/0x74
[ 9.889946] call_netdevice_notifiers_info+0x58/0xa4
[ 9.894907] dev_change_name+0x17c/0x348
[ 9.898824] do_setlink+0xc18/0xec8
[ 9.902307] rtnl_setlink+0x120/0x1d8
[ 9.905962] rtnetlink_rcv_msg+0x128/0x390
[ 9.910051] netlink_rcv_skb+0x60/0x130
[ 9.913882] rtnetlink_rcv+0x18/0x24
[ 9.917453] netlink_unicast+0x324/0x3a8
[ 9.921367] netlink_sendmsg+0x17c/0x3cc
[ 9.925282] __sys_sendto+0x110/0x178
[ 9.928940] __arm64_sys_sendto+0x28/0x38
[ 9.932946] invoke_syscall+0x48/0x10c
[ 9.936690] el0_svc_common.constprop.0+0xc0/0xe0
[ 9.941385] do_el0_svc+0x1c/0x28
[ 9.944693] el0_svc+0x28/0x98
[ 9.947746] el0t_64_sync_handler+0x120/0x12c
[ 9.952093] el0t_64_sync+0x190/0x194
[ 9.955754] Code: 52800000 d65f03c0 f942fc00 8b21c000 (b9400000)
[ 9.961835] ---[ end trace 0000000000000000 ]---
另一个版本如下所示:
[ 9.948162] SError Interrupt on CPU1, code 0x00000000bf000000 -- SError
[ 9.948193] CPU: 1 UID: 996 PID: 207 Comm: systemd-network Tainted: G O 6.12.35-gb9b94b26-01037-gb9b94b267b88 #1
[ 9.948204] Tainted: [O]=OOT_MODULE
[ 9.948207] Hardware name: PHYTEC Libra AM62L RDK FPSC (DT)
[ 9.948212] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 9.948219] pc : iomap_write_fifo+0x0/0x38 [m_can_platform]
[ 9.948243] lr : m_can_init_ram+0x78/0xb8 [m_can]
[ 9.948261] sp : ffff8000827bb480
[ 9.948264] x29: ffff8000827bb490 x28: ffff0000049f0000 x27: 0000000000000003
[ 9.948281] x26: ffff8000797e6ec8 x25: ffff0000056402d0 x24: 0000000000000001
[ 9.948291] x23: ffff0000081f0344 x22: 0000000000040080 x21: 0000000000004400
[ 9.948301] x20: ffff0000081f0980 x19: 0000000000000008 x18: ffffffffffffffff
[ 9.948311] x17: 0000000000000000 x16: 0000000000000000 x15: ffff8000827bb270
[ 9.948320] x14: ffff8001027bb3fd x13: 007473696c5f7974 x12: 696e696666615f65
[ 9.948333] x11: 0000000000000040 x10: ffff800080ed6210 x9 : 0000000000000000
[ 9.948342] x8 : ffff000003c88d80 x7 : 0000000000000000 x6 : ffff800081566290
[ 9.948352] x5 : ffff000003c88c88 x4 : ffff80007981a0bc x3 : 0000000000000001
[ 9.948361] x2 : ffff8000827bb484 x1 : 0000000000000008 x0 : ffff0000081f0980
[ 9.948373] Kernel panic - not syncing: Asynchronous SError Interrupt
[ 9.948378] CPU: 1 UID: 996 PID: 207 Comm: systemd-network Tainted: G O 6.12.35-gb9b94b26-01037-gb9b94b267b88 #1
[ 9.948387] Tainted: [O]=OOT_MODULE
[ 9.948390] Hardware name: PHYTEC Libra AM62L RDK FPSC (DT)
[ 9.948394] Call trace:
[ 9.948398] dump_backtrace+0x90/0xe8
[ 9.948417] show_stack+0x18/0x24
[ 9.948426] dump_stack_lvl+0x34/0x8c
[ 9.948438] dump_stack+0x18/0x24
[ 9.948446] panic+0x390/0x3a4
[ 9.948457] nmi_panic+0x40/0x8c
[ 9.948465] arm64_serror_panic+0x64/0x70
[ 9.948475] do_serror+0x3c/0x70
[ 9.948484] el1h_64_error_handler+0x30/0x48
[ 9.948495] el1h_64_error+0x64/0x68
[ 9.948502] iomap_write_fifo+0x0/0x38 [m_can_platform]
[ 9.948512] m_can_start+0x24/0x580 [m_can]
[ 9.948521] m_can_open+0x6c/0x264 [m_can]
[ 9.948531] __dev_open+0x120/0x1dc
[ 9.948542] __dev_change_flags+0x194/0x20c
[ 9.948551] dev_change_flags+0x24/0x6c
[ 9.948559] do_setlink+0x27c/0xec8
[ 9.948569] rtnl_setlink+0x120/0x1d8
[ 9.948577] rtnetlink_rcv_msg+0x128/0x390
[ 9.948585] netlink_rcv_skb+0x60/0x130
[ 9.948597] rtnetlink_rcv+0x18/0x24
[ 9.948605] netlink_unicast+0x318/0x380
[ 9.948612] netlink_sendmsg+0x17c/0x3c8
[ 9.948620] __sys_sendto+0x110/0x178
[ 9.948630] __arm64_sys_sendto+0x28/0x38
[ 9.948642] invoke_syscall+0x48/0x10c
[ 9.948652] el0_svc_common.constprop.0+0xc0/0xe0
[ 9.948660] do_el0_svc+0x1c/0x28
[ 9.948668] el0_svc+0x28/0x98
[ 9.948676] el0t_64_sync_handler+0x120/0x12c
[ 9.948687] el0t_64_sync+0x190/0x194
[ 9.948695] SMP: stopping secondary CPUs
[ 9.948711] Kernel Offset: disabled
[ 9.948714] CPU features: 0x00,00000080,00200000,4200420b
[ 9.948720] Memory Limit: none
[ 10.229502] ---[ end Kernel panic - not syncing: Asynchronous SError Interrupt ]---
除了偶尔出现的启动错误、我们没有任何问题、并且 CAN (FD) 也没有任何功能问题。 系统也通过了从–40°C 到+85°C 环境温度的所有测试。
然而、在 TI-TFA 中、我们在每次启动时都会看到这些恐慌:
现在、系统仍然引导至 Linux Promt、但与网络相关的一切都已损坏。
尽管受影响的 SoC 是 AM62x、它在单独的内核上具有 DM、但这两个 e2e-threads 中的问题看起来与我们的问题类似。
但是、我们没有看到与温度之间的相关性。 我将检查向时钟处理添加延迟是否也会影响我们的问题。
此致
Dominik