Part Number: AM5728
Other Parts Discussed in Thread: BQ40Z60,
I'm seeing different behavior when loading the same DSP firmware image (with the exception of trivial address differences in the resource tables) on DSP1 vs. DSP2.
DSP1
Starting DSP1 results in a single L3 custom error, each and every time:
[ 298.448466] WARNING: CPU: 0 PID: 0 at linux-4.4.32+gitAUTOINC+adde2ca9f8-gadde2ca9f8/drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x258/0x368()
[ 298.465839] 44000000.ocp:L3 Custom Error: MASTER DSP1_MDMA TARGET L4_PER1_P3 (Read): Data Access in User mode during Functional access
[ 298.477976] Modules linked in: virtio_rpmsg_bus cmemk(O) omap_remoteproc remoteproc virtio_ring virtio xhci_plat_hcd xhci_hcd usbcore usb_f_ecm g_ether usb_f_rndis libcomposite u_ether dwc3 extcon_palmas udc_core uio_pdrv_genirq uio phy_omap_usb2 dwc3_omap bridge stp llc xt_tcpudp ipv6 iptable_filter ip_tables x_tables hw_info fpga_config bq40z60_battery mpu9250(C) extcon_usb_gpio extcon rtc_isl1208
[ 298.516573] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G C O 4.4.32-gadde2ca9f8 #1
[ 298.524783] Hardware name: Generic DRA74X (Flattened Device Tree)
[ 298.530902] Backtrace:
[ 298.533378] [<c0013068>] (dump_backtrace) from [<c0013264>] (show_stack+0x18/0x1c)
[ 298.540978] r6:20080193 r5:c0acbb68 r4:00000000 r3:00000000
[ 298.546703] [<c001324c>] (show_stack) from [<c02dea68>] (dump_stack+0x9c/0xb0)
[ 298.553964] [<c02de9cc>] (dump_stack) from [<c00347f4>] (warn_slowpath_common+0x8c/0xbc)
[ 298.562089] r6:c030c984 r5:00000009 r4:c0aadd40 r3:c0aac000
[ 298.567811] [<c0034768>] (warn_slowpath_common) from [<c003485c>] (warn_slowpath_fmt+0x38/0x40)
[ 298.576544] r8:c07fc150 r7:00000002 r6:e0082164 r5:c07fbd2c r4:c07fbe48
[ 298.583319] [<c0034828>] (warn_slowpath_fmt) from [<c030c984>] (l3_interrupt_handler+0x258/0x368)
[ 298.592226] r3:de1fd000 r2:c07fbe48
[ 298.595831] r4:80080003
[ 298.598387] [<c030c72c>] (l3_interrupt_handler) from [<c0079188>] (handle_irq_event_percpu+0x90/0x148)
[ 298.607731] r10:c0af5514 r9:de1f7540 r8:00000017 r7:00000000 r6:00000000 r5:de1f75a0
[ 298.615635] r4:de1fd500
[ 298.618190] [<c00790f8>] (handle_irq_event_percpu) from [<c0079280>] (handle_irq_event+0x40/0x64)
[ 298.627098] r10:c0aac000 r9:c0652a24 r8:de008000 r7:00000001 r6:c0ab3534 r5:de1f75a0
[ 298.635002] r4:de1f7540
[ 298.637558] [<c0079240>] (handle_irq_event) from [<c007c550>] (handle_fasteoi_irq+0xc0/0x194)
[ 298.646118] r6:c0ab3534 r5:de1f75a0 r4:de1f7540 r3:00000000
[ 298.651839] [<c007c490>] (handle_fasteoi_irq) from [<c00787c4>] (generic_handle_irq+0x2c/0x3c)
[ 298.660484] r7:00000001 r6:00000000 r5:00000000 r4:c0aa84ac
[ 298.666204] [<c0078798>] (generic_handle_irq) from [<c0078a9c>] (__handle_domain_irq+0x64/0xbc)
[ 298.674945] [<c0078a38>] (__handle_domain_irq) from [<c0009470>] (gic_handle_irq+0x40/0x7c)
[ 298.683329] r8:fa213000 r7:fa212000 r6:c0aadef0 r5:fa21200c r4:c0aae97c r3:c0aadef0
[ 298.691152] [<c0009430>] (gic_handle_irq) from [<c064c700>] (__irq_svc+0x40/0x74)
[ 298.698667] Exception stack(0xc0aadef0 to 0xc0aadf38)
[ 298.703743] dee0: 00000001 00000000 fe600000 00000000
[ 298.711955] df00: c0aae56c 00000000 00000000 c0aadf60 c0aae5b8 c0652a24 c0aac000 c0aadf4c
[ 298.720170] df20: c0aadf2c c0aadf40 c0027940 c0010568 60080013 ffffffff
[ 298.726810] r8:c0aae5b8 r7:c0aadf24 r6:ffffffff r5:60080013 r4:c0010568 r3:c0027940
[ 298.734635] [<c0010540>] (arch_cpu_idle) from [<c006ed7c>] (default_idle_call+0x28/0x34)
[ 298.742765] [<c006ed54>] (default_idle_call) from [<c006efd8>] (cpu_startup_entry+0x1fc/0x260)
[ 298.751423] [<c006eddc>] (cpu_startup_entry) from [<c064728c>] (rest_init+0x90/0x94)
[ 298.759196] r7:00000000
[ 298.761755] [<c06471fc>] (rest_init) from [<c0891d70>] (start_kernel+0x418/0x424)
[ 298.769268] r4:c0af8050 r3:c0aac000
[ 298.772877] [<c0891958>] (start_kernel) from [<80008090>] (0x80008090)
[ 298.779432] ---[ end trace 05ffeb39f58d2c69 ]---
DSP2:
Starting DSP2 results in endless L3 exception spam - ultimately our board needs to be manually power-cycled to recover.
[ 237.443979] WARNING: CPU: 0 PID: 0 at linux-4.4.32+gitAUTOINC+adde2ca9f8-gadde2ca9f8/drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x258/0x368()
[ 237.461351] 44000000.ocp:L3 Custom Error: MASTER DSP2_DMA TARGET L4_PER3_P3 (Idle): Data Access in User mode during Functional access
[ 237.473400] Modules linked in: rpmsg_proto virtio_rpmsg_bus cmemk(O) omap_remoteproc remoteproc virtio_ring virtio xhci_plat_hcd xhci_hcd usbcore usb_f_ecm g_ether usb_f_rndis libcomposite u_ether dwc3 udc_core uio_pdrv_genirq uio extcon_palmas phy_omap_usb2 dwc3_omap bridge stp llc xt_tcpudp ipv6 iptable_filter ip_tables x_tables hw_info fpga_config bq40z60_battery mpu9250(C) extcon_usb_gpio extcon rtc_isl1208
[ 237.513064] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G WC O 4.4.32-gadde2ca9f8 #1
[ 237.521279] Hardware name: Generic DRA74X (Flattened Device Tree)
[ 237.527398] Backtrace:
[ 237.529875] [<c0013068>] (dump_backtrace) from [<c0013264>] (show_stack+0x18/0x1c)
[ 237.537477] r6:20070193 r5:c0acbb68 r4:00000000 r3:00000000
[ 237.543203] [<c001324c>] (show_stack) from [<c02dea68>] (dump_stack+0x9c/0xb0)
[ 237.550463] [<c02de9cc>] (dump_stack) from [<c00347f4>] (warn_slowpath_common+0x8c/0xbc)
[ 237.558586] r6:c030c984 r5:00000009 r4:c0aadd40 r3:c0aac000
[ 237.564311] [<c0034768>] (warn_slowpath_common) from [<c003485c>] (warn_slowpath_fmt+0x38/0x40)
[ 237.573044] r8:c07fc18c r7:00000000 r6:e0080e64 r5:c07fbd2c r4:c07fbe48
[ 237.579816] [<c0034828>] (warn_slowpath_fmt) from [<c030c984>] (l3_interrupt_handler+0x258/0x368)
[ 237.588724] r3:de1fd000 r2:c07fbe48
[ 237.592330] r4:80080003
[ 237.594887] [<c030c72c>] (l3_interrupt_handler) from [<c0079188>] (handle_irq_event_percpu+0x90/0x148)
[ 237.604232] r10:c0af5514 r9:de1f7540 r8:00000017 r7:00000000 r6:00000000 r5:de1f75a0
[ 237.612137] r4:de1fd500
[ 237.614696] [<c00790f8>] (handle_irq_event_percpu) from [<c0079280>] (handle_irq_event+0x40/0x64)
[ 237.623606] r10:c0aac000 r9:c0652a24 r8:de008000 r7:00000001 r6:c0ab3534 r5:de1f75a0
[ 237.631513] r4:de1f7540
[ 237.634072] [<c0079240>] (handle_irq_event) from [<c007c550>] (handle_fasteoi_irq+0xc0/0x194)
[ 237.642630] r6:c0ab3534 r5:de1f75a0 r4:de1f7540 r3:00000000
[ 237.648356] [<c007c490>] (handle_fasteoi_irq) from [<c00787c4>] (generic_handle_irq+0x2c/0x3c)
[ 237.657001] r7:00000001 r6:00000000 r5:00000000 r4:c0aa84ac
[ 237.662724] [<c0078798>] (generic_handle_irq) from [<c0078a9c>] (__handle_domain_irq+0x64/0xbc)
[ 237.671465] [<c0078a38>] (__handle_domain_irq) from [<c0009470>] (gic_handle_irq+0x40/0x7c)
[ 237.679849] r8:fa213000 r7:fa212000 r6:c0aadef0 r5:fa21200c r4:c0aae97c r3:c0aadef0
[ 237.687678] [<c0009430>] (gic_handle_irq) from [<c064c700>] (__irq_svc+0x40/0x74)
[ 237.695195] Exception stack(0xc0aadef0 to 0xc0aadf38)
[ 237.700271] dee0: 00000001 00000000 fe600000 00000000
[ 237.708487] df00: c0aae56c 00000000 00000000 c0aadf60 c0aae5b8 c0652a24 c0aac000 c0aadf4c
[ 237.716703] df20: c0aadf2c c0aadf40 c0027940 c0010568 60070013 ffffffff
[ 237.723346] r8:c0aae5b8 r7:c0aadf24 r6:ffffffff r5:60070013 r4:c0010568 r3:c0027940
[ 237.731178] [<c0010540>] (arch_cpu_idle) from [<c006ed7c>] (default_idle_call+0x28/0x34)
[ 237.739310] [<c006ed54>] (default_idle_call) from [<c006efd8>] (cpu_startup_entry+0x1fc/0x260)
[ 237.747968] [<c006eddc>] (cpu_startup_entry) from [<c064728c>] (rest_init+0x90/0x94)
[ 237.755741] r7:00000000
[ 237.758300] [<c06471fc>] (rest_init) from [<c0891d70>] (start_kernel+0x418/0x424)
[ 237.765812] r4:c0af8050 r3:c0aac000
[ 237.769424] [<c0891958>] (start_kernel) from [<80008090>] (0x80008090)
Notes:
- While DSP1 starting appears to only cause a single L3 custom error, DSP2 starting results in endless errors spamming the ARM.
- DSP1
- DSP1's L3 custom error master/initiator seems to always be MDMA
- DSP1's L3 custom error target is generally L4_PER1_P3 or L4_PER3_P3
- DSP2
- DSP2's L3 custom error master/initiator seems to always be DMA
- DSP2's L3 custom error target varies (L4_PER#_P#, DMM_P#, etc)
Why am I seeing such different behavior between DSP1 and DSP2 with the same firmware image?
Our firmware image isn't utilizing DMA for anything at this point; why am I seeing the master/initiator show up as MDMA/DMA?
Any help as to where to start looking would be very much appreciated.
Thanks
Processor SDK 03.02.00.05