SPI error on jetson nano module

Hi all,

We have SPI issue on jetson nano module, we updated SDK version Jetpack 4.2 to Jetpack 4.3

We have a process that continues to read and write through SPI

After the update, the error log will pop up a few hours after booting

We tried the resolved methods in the hyperlink, but still got the same error log

[32483.087871] Unable to handle kernel read from unreadable memory at virtual address 00000000
[32483.096229] Mem abort info:
[32483.099014] ESR = 0x96000005
[32483.102060] Exception class = DABT (current EL), IL = 32 bits
[32483.107965] SET = 0, FnV = 0
[32483.111010] EA = 0, S1PTW = 0
[32483.114140] Data abort info:
[32483.117011] ISV = 0, ISS = 0x00000005
[32483.120835] CM = 0, WnR = 0
[32483.123795] user pgtable: 4k pages, 39-bit VAs, pgd = ffffffc0eaa4e000
[32483.130306] [0000000000000000] *pgd=0000000173e44003, *pud=0000000173e44003, *pmd=0000000000000000
[32483.139270] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[32483.144829] Modules linked in: bnep fuse rtl8xxxu mac80211 cfg80211 spidev zram overlay nvgpu bluedroid_pm ip_tables x_tables
[32483.156215] CPU: 0 PID: 1345 Comm: irq/66-7000d400 Not tainted 4.9.140-tegra #2
[32483.163507] Hardware name: NVIDIA Jetson Nano Developer Kit (DT)
[32483.169500] task: ffffffc0f8393800 task.stack: ffffffc0f7fe4000
[32483.175411] PC is at tegra_spi_start_cpu_based_transfer+0x1c8/0x220
[32483.181664] LR is at tegra_spi_start_cpu_based_transfer+0x24/0x220
[32483.187830] pc : [] lr : [] pstate: 204000c5
[32483.195208] sp : ffffffc0f7fe7d10
[32483.198512] x29: ffffffc0f7fe7d10 x28: 0000000000000000
[32483.203826] x27: 0000000000000000 x26: 0000000000000000
[32483.209136] x25: ffffff800a0685e7 x24: ffffff8008124000
[32483.214447] x23: ffffff80081246a8 x22: 0000000000000040
[32483.219759] x21: ffffffc0eaa8bce8 x20: ffffffc0f7cee5e8
[32483.225070] x19: ffffffc0eaa8bce8 x18: 0000000000000000
[32483.230383] x17: 0000000000000000 x16: 0000000000000000
[32483.235695] x15: 0000000000000033 x14: 0000000000000000
[32483.241007] x13: 000000000000001d x12: 071c71c71c71c71c
[32483.246319] x11: 0000000000000400 x10: 0000000000000000
[32483.251631] x9 : 0000000000000000 x8 : 0000000000000000
[32483.256942] x7 : 0000000000000001 x6 : 0000000000000000
[32483.262253] x5 : 0000000000000000 x4 : 0000000000000001
[32483.267564] x3 : 0000000000000000 x2 : 0000000000000001
[32483.272876] x1 : 0000000000000000 x0 : 0000000000000000
[32483.278187]
[32483.279673] Process irq/66-7000d400 (pid: 1345, stack limit = 0xffffffc0f7fe4000)
[32483.287138] Call trace:
[32483.289580] [] tegra_spi_start_cpu_based_transfer+0x1c8/0x220
[32483.296873] [] handle_cpu_based_xfer+0x78/0x240
[32483.302953] [] tegra_spi_isr_thread+0x3c/0x48
[32483.308861] [] irq_thread_fn+0x30/0x80
[32483.314159] [] irq_thread+0x11c/0x1a8
[32483.319373] [] kthread+0xec/0xf0
[32483.324153] [] ret_from_fork+0x10/0x40
[32483.329453] —[ end trace fbba1a967749a62a ]—
[32483.340895] note: irq/66-7000d400[1345] exited with preempt_count 1
[32483.347614] Unable to handle kernel paging request at virtual address ffffffffffffffd8
[32483.355591] Mem abort info:
[32483.358441] ESR = 0x96000005
[32483.361559] Exception class = DABT (current EL), IL = 32 bits
[32483.367532] SET = 0, FnV = 0
[32483.370681] EA = 0, S1PTW = 0
[32483.373876] Data abort info:
[32483.376751] ISV = 0, ISS = 0x00000005
[32483.380619] CM = 0, WnR = 0
[32483.383602] swapper pgtable: 4k pages, 39-bit VAs, pgd = ffffff800a1a7000
[32483.390388] [ffffffffffffffd8] *pgd=0000000000000000, *pud=0000000000000000
[32483.397406] Internal error: Oops: 96000005 [#2] PREEMPT SMP
[32483.402966] Modules linked in: bnep fuse rtl8xxxu mac80211 cfg80211 spidev zram overlay nvgpu bluedroid_pm ip_tables x_tables
[32483.414354] CPU: 1 PID: 1345 Comm: irq/66-7000d400 Tainted: G D 4.9.140-tegra #2
[32483.422858] Hardware name: NVIDIA Jetson Nano Developer Kit (DT)
[32483.428851] task: ffffffc0f8393800 task.stack: ffffffc0f7fe4000
[32483.434759] PC is at kthread_data+0x24/0x30
[32483.438933] LR is at irq_thread_dtor+0x2c/0xd8
[32483.443364] pc : [] lr : [] pstate: 60400045
[32483.450742] sp : ffffffc0f7fe7960
[32483.454046] x29: ffffffc0f7fe7960 x28: ffffffc0f8393800
[32483.459359] x27: 0000000000000000 x26: 0000000000000000
[32483.464671] x25: ffffff800a0685e7 x24: ffffff8009e35000
[32483.469983] x23: 00000000000001c0 x22: ffffff800a112090
[32483.475295] x21: 0000000000000000 x20: ffffffc0f8393800
[32483.480606] x19: ffffffc0f8393800 x18: 0000000000000010
[32483.485917] x17: 0000000000000000 x16: ffffffc0f7fe7e10
[32483.491229] x15: ffffffffffffffff x14: ffffff808a116a82
[32483.496542] x13: ffffff800a116a90 x12: 000000000000000f
[32483.501854] x11: 0000000005f5e0ff x10: 00000000000003b0
[32483.507165] x9 : 00000000ffffffd0 x8 : ffffff80083d47b0
[32483.512475] x7 : ffffff8009e84358 x6 : ffffff80083d3ba0
[32483.517786] x5 : 0000000000000000 x4 : ffffffc0f8394034
[32483.523098] x3 : ffffffc0f7fe7e10 x2 : 0000000000000000
[32483.528410] x1 : ffffff80081247c8 x0 : 0000000000000000
[32483.533720]
[32483.535205] Process irq/66-7000d400 (pid: 1345, stack limit = 0xffffffc0f7fe4000)
[32483.542669] Call trace:
[32483.545110] [] kthread_data+0x24/0x30
[32483.550325] [] task_work_run+0xbc/0xd8
[32483.555625] [] do_exit+0x2c4/0xa08
[32483.560579] [] bug_handler.part.2+0x0/0x88
[32483.566226] [] __do_kernel_fault.isra.1+0x144/0x218
[32483.572652] [] do_page_fault+0x60/0x518
[32483.578037] [] do_translation_fault+0x6c/0x80
[32483.583944] [] do_mem_abort+0x54/0xb0
[32483.589156] [] el1_da+0x24/0xb4
[32483.593849] [] handle_cpu_based_xfer+0x78/0x240
[32483.599927] [] tegra_spi_isr_thread+0x3c/0x48
[32483.605834] [] irq_thread_fn+0x30/0x80
[32483.611132] [] irq_thread+0x11c/0x1a8
[32483.616344] [] kthread+0xec/0xf0
[32483.621123] [] ret_from_fork+0x10/0x40
[32483.626424] —[ end trace fbba1a967749a62b ]—
[32483.638329] Fixing recursive fault but reboot is needed!
[32493.341133] spi-tegra114 7000d400.spi: spi transfer timeout
[32493.346760] spi-tegra114 7000d400.spi: SPI_ERR: CMD_0: 0x73e01007, FIFO_STS: 0x00c00004
[32493.354773] spi-tegra114 7000d400.spi: SPI_ERR: DMA_CTL: 0x00000000, TRANS_STS: 0x40ff0001
[32493.363101] spi_master spi0: failed to transfer one message from queue
[32503.580836] spi-tegra114 7000d400.spi: spi transfer timeout
[32503.586459] spi-tegra114 7000d400.spi: SPI_ERR: CMD_0: 0x73e00807, FIFO_STS: 0x00400005
[32503.594475] spi-tegra114 7000d400.spi: SPI_ERR: DMA_CTL: 0x00000000, TRANS_STS: 0x40ff0001
[32503.602792] spi_master spi0: failed to transfer one message from queue
[32513.820570] spi-tegra114 7000d400.spi: spi transfer timeout

dmesg_20210222.txt (71.3 KB)

Could you check the J4.5?

Have the same problem in JP4.5.1

kern_SDK451.log (269.9 KB)

How to reproduce the issue? Can repo it by loopback?

We cannot reproduce the problem on Jetson Nano Developer Kit

We found that the problem is not the JetPack version, we are still looking for the root cause