Part Number: AM6548
We are facing a critical issue when attempting to start legacy PRU firmware (.out files) on our AM65x custom board using the remoteproc mechanism. We are currently using the .out files built for a Linux 5.x kernel version. When attempting to load these .out files onto the PRU, we encounter an 'Oops' related error, and we are unsure if this version difference is contributing to the issue.
The Linux kernel successfully locates and attempts to start the firmware (e.g., am65x-txpru0_0-fw), but immediately triggers an Internal Error (Oops) with an Alignment Fault (FSC=0x21).
This problem appears immediately after the kernel reports: Booting fw image am65x-txpru0_0-fw, size 136064
We are currently using PRU .out firmware files originally built for a Linux 5.x kernel. We are unsure if this version difference is related to the resulting error. If this is the case, what steps should we take to resolve it
Error Log
==================== stop PRU FW ====================
[ 50.363811] remoteproc remoteproc16: stopped remote processor b234000.pru
[ 50.381052] remoteproc remoteproc17: stopped remote processor b204000.rtu
==================== start PRU FW ====================
[ 50.398180] remoteproc remoteproc1: powering up b00a000.txpru
[ 50.406708] remoteproc remoteproc1: Booting fw image am65x-txpru0_0-fw, size 136064
[ 50.406769] Unable to handle kernel paging request at virtual address ffff8000090f999c
[ 50.422418] Mem abort info:
[ 50.425217] ESR = 0x0000000096000061
[ 50.428965] EC = 0x25: DABT (current EL), IL = 32 bits
[ 50.434284] SET = 0, FnV = 0
[ 50.437337] EA = 0, S1PTW = 0
[ 50.440485] FSC = 0x21: alignment fault
[ 50.444497] Data abort info:
[ 50.447384] ISV = 0, ISS = 0x00000061
[ 50.451218] CM = 0, WnR = 1
[ 50.454192] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000082ba8000
[ 50.460892] [ffff8000090f999c] pgd=10000000bffff003, p4d=10000000bffff003, pud=10000000bfffe003, pmd=100000008000c003, pte=006800000b001713
[ 50.473432] Internal error: Oops: 0000000096000061 [#1] PREEMPT_RT SMP
[ 50.473441] Modules linked in: usb_f_acm u_serial g_serial libcomposite overlay xhci_plat_hcd ti_am335x_adc kfifo_buf irq_pruss_intc dwc3 spidev icssg_prueth crct10dif_ce pru_rproc hsr icss_iep ti_k3_r5_remoteproc virtio_rpmsg_bus rpmsg_ns omap_hwspinlock k3_bandgap m_can_platform m_can can_dev rti_wdt ti_am335x_tscadc pruss sa2ul phy_omap_usb2 dwc3_keystone at24 spi_omap2_mcspi cryptodev(O) fuse drm drm_panel_orientation_quirks ipv6
[ 50.473563] CPU: 0 PID: 704 Comm: sh Tainted: G O 6.1.119-rt45-ti-rt-gb0f9de804a16 #1
[ 50.473573] Hardware name: Texas Instruments AM654 Base Board (DT)
[ 50.473578] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 50.473589] pc : 0xffff80000892f450
[ 50.473593] lr : 0xffff8000089636b0
[ 50.473596] sp : ffff00000acfbc30
[ 50.473599] x29: ffff00000acfbc30 x28: ffff00000b061800 x27: 0000000000000000
[ 50.473613] x26: 0000000000000000 x25: 0000000000000000 x24: ffff000005ff1b80
[ 50.473625] x23: 0000000000000000 x22: ffff000005ff1b80 x21: ffff00000825d838
[ 50.473637] x20: ffff8000090f9998 x19: ffff00000825d800 x18: ffffffffffffffff
[ 50.473649] x17: 0000000000000003 x16: 00009e1a863276b0 x15: ffff800008e9f579
[ 50.473662] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
[ 50.473673] x11: ffff800008b350d0 x10: ffffffffff515c65 x9 : 0000000000000010
[ 50.473685] x8 : 0101010101010101 x7 : 0000000000000000 x6 : 0000000000000001
[ 50.473696] x5 : ffff8000090f99ac x4 : ffff000005ff1a94 x3 : ffff000001275a80
[ 50.473708] x2 : 0000000000000014 x1 : ffff000005ff1a80 x0 : ffff8000090f9998
[ 50.473721] Call trace:
[ 50.473725] 0xffff80000892f450
[ 50.473729] 0xffff800008788030
[ 50.473733] 0xffff80000878a250
[ 50.473736] 0xffff80000852eee4
[ 50.473739] 0xffff8000081fcd90
[ 50.473743] 0xffff8000081fc140
[ 50.473746] 0xffff80000816fce8
[ 50.473750] 0xffff80000816fed4
[ 50.473753] 0xffff80000816ff68
[ 50.473756] 0xffff80000801ddec
[ 50.473760] 0xffff80000801deec
[ 50.473764] 0xffff800008965ef0
[ 50.473767] 0xffff8000089674c4
[ 50.473770] 0xffff800008011488
[ 50.473779] Code: 540000c3 a9401c26 a97f348c a9001c06 (a93f34ac)
[ 50.674593] ---[ end trace 0000000000000000 ]---
[ 50.688296] remoteproc remoteproc2: powering up b00c000.txpru
[ 50.706907] remoteproc remoteproc2: Booting fw image am65x-txpru0_1-fw, size 145848
[ 50.714629] Unable to handle kernel paging request at virtual address ffff8000090fda5c
[ 50.722549] Mem abort info:
[ 50.725352] ESR = 0x0000000096000061
[ 50.729100] EC = 0x25: DABT (current EL), IL = 32 bits
[ 50.734417] SET = 0, FnV = 0
[ 50.737470] EA = 0, S1PTW = 0
[ 50.740618] FSC = 0x21: alignment fault
[ 50.744640] Data abort info:
[ 50.747519] ISV = 0, ISS = 0x00000061
[ 50.751359] CM = 0, WnR = 1
[ 50.754327] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000082ba8000
[ 50.761032] [ffff8000090fda5c] pgd=10000000bffff003, p4d=10000000bffff003, pud=10000000bfffe003, pmd=100000008000c003, pte=006800000b003713
[ 50.773565] Internal error: Oops: 0000000096000061 [#2] PREEMPT_RT SMP
[ 50.773573] Modules linked in: usb_f_acm u_serial g_serial libcomposite overlay xhci_plat_hcd ti_am335x_adc kfifo_buf irq_pruss_intc dwc3 spidev icssg_prueth crct10dif_ce pru_rproc hsr icss_iep ti_k3_r5_remoteproc virtio_rpmsg_bus rpmsg_ns omap_hwspinlock k3_bandgap m_can_platform m_can can_dev rti_wdt ti_am335x_tscadc pruss sa2ul phy_omap_usb2 dwc3_keystone at24 spi_omap2_mcspi cryptodev(O) fuse drm drm_panel_orientation_quirks ipv6
[ 50.773693] CPU: 0 PID: 706 Comm: sh Tainted: G D O 6.1.119-rt45-ti-rt-gb0f9de804a16 #1
[ 50.773703] Hardware name: Texas Instruments AM654 Base Board (DT)
[ 50.773709] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 50.773719] pc : 0xffff80000892f450
[ 50.773722] lr : 0xffff8000089636b0
[ 50.773726] sp : ffff00000b42fc30
[ 50.773729] x29: ffff00000b42fc30 x28: ffff0000080a6000 x27: 0000000000000000
[ 50.773742] x26: 0000000000000000 x25: 0000000000000000 x24: ffff000009ac2600
[ 50.773754] x23: 0000000000000000 x22: ffff000009ac2600 x21: ffff000001677838
[ 50.773766] x20: ffff8000090fda58 x19: ffff000001677800 x18: ffffffffffffffff
[ 50.773779] x17: 0000000000000007 x16: 0000164b88e131cc x15: 00593429fabf70c2
[ 50.773791] x14: ffff800008989b18 x13: 0000000000000000 x12: 0000000000000000
[ 50.773803] x11: 0000000000002000 x10: ffffffffff4f062f x9 : 0000000000000000
[ 50.773814] x8 : 0000000000002000 x7 : 0000000000000000 x6 : 0000000000000001
[ 50.773826] x5 : ffff8000090fda6c x4 : ffff000009ac2514 x3 : ffff000001275a80
[ 50.773838] x2 : 0000000000000014 x1 : ffff000009ac2500 x0 : ffff8000090fda58
[ 50.773851] Call trace:
[ 50.773855] 0xffff80000892f450
[ 50.773859] 0xffff800008788030
[ 50.773862] 0xffff80000878a250
[ 50.773866] 0xffff80000852eee4
[ 50.773869] 0xffff8000081fcd90
[ 50.773872] 0xffff8000081fc140
[ 50.773876] 0xffff80000816fce8
[ 50.773879] 0xffff80000816fed4
[ 50.773882] 0xffff80000816ff68
[ 50.773886] 0xffff80000801ddec
[ 50.773890] 0xffff80000801deec
[ 50.773893] 0xffff800008965ef0
[ 50.773896] 0xffff8000089674c4
[ 50.773900] 0xffff800008011488
[ 50.773909] Code: 540000c3 a9401c26 a97f348c a9001c06 (a93f34ac)
[ 50.974724] ---[ end trace 0000000000000000 ]---
[ 50.988275] remoteproc remoteproc7: powering up b004000.rtu
[ 51.006477] remoteproc remoteproc7: Booting fw image am65x-rtu0_0-fw, size 138820
[ 51.014020] Unable to handle kernel paging request at virtual address ffff8000090f91dc
[ 51.021940] Mem abort info:
[ 51.024743] ESR = 0x0000000096000061
[ 51.028491] EC = 0x25: DABT (current EL), IL = 32 bits
[ 51.033809] SET = 0, FnV = 0
[ 51.036862] EA = 0, S1PTW = 0
[ 51.040010] FSC = 0x21: alignment fault
[ 51.044025] Data abort info:
[ 51.046913] ISV = 0, ISS = 0x00000061
[ 51.050746] CM = 0, WnR = 1
[ 51.053721] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000082ba8000
[ 51.060425] [ffff8000090f91dc] pgd=10000000bffff003, p4d=10000000bffff003, pud=10000000bfffe003, pmd=100000008000c003, pte=006800000b001713
[ 51.072964] Internal error: Oops: 0000000096000061 [#3] PREEMPT_RT SMP
[ 51.072973] Modules linked in: usb_f_acm u_serial g_serial libcomposite overlay xhci_plat_hcd ti_am335x_adc kfifo_buf irq_pruss_intc dwc3 spidev icssg_prueth crct10dif_ce pru_rproc hsr icss_iep ti_k3_r5_remoteproc virtio_rpmsg_bus rpmsg_ns omap_hwspinlock k3_bandgap m_can_platform m_can can_dev rti_wdt ti_am335x_tscadc pruss sa2ul phy_omap_usb2 dwc3_keystone at24 spi_omap2_mcspi cryptodev(O) fuse drm drm_panel_orientation_quirks ipv6
[ 51.073090] CPU: 0 PID: 708 Comm: sh Tainted: G D O 6.1.119-rt45-ti-rt-gb0f9de804a16 #1
[ 51.073101] Hardware name: Texas Instruments AM654 Base Board (DT)
[ 51.073107] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 51.073117] pc : 0xffff80000892f450
[ 51.073121] lr : 0xffff8000089636b0
[ 51.073124] sp : ffff00000677fc30
[ 51.073127] x29: ffff00000677fc30 x28: ffff0000080a6000 x27: 0000000000000000
[ 51.073140] x26: 0000000000000000 x25: 0000000000000000 x24: ffff000009ac2700
[ 51.073152] x23: 0000000000000000 x22: ffff000009ac2700 x21: ffff00000825c038
[ 51.073165] x20: ffff8000090f91d8 x19: ffff00000825c000 x18: ffffffffffffffff
[ 51.073177] x17: 0000000000000007 x16: 0000138d7a8c4c16 x15: 004e47bdfc5608ea
[ 51.073189] x14: ffff800008989b18 x13: 0000000000000000 x12: 0000000000000000
[ 51.073201] x11: 000000000000023e x10: ffffffffff4cd1b6 x9 : 0000000000000008
[ 51.073213] x8 : 0101010101010101 x7 : 0000000000000000 x6 : 0000000000000001
[ 51.073224] x5 : ffff8000090f91ec x4 : ffff000009ac2114 x3 : ffff000001275a80
[ 51.073236] x2 : 0000000000000014 x1 : ffff000009ac2100 x0 : ffff8000090f91d8
[ 51.073250] Call trace:
[ 51.073254] 0xffff80000892f450
[ 51.073257] 0xffff800008788030
[ 51.073261] 0xffff80000878a250
[ 51.073264] 0xffff80000852eee4
[ 51.073268] 0xffff8000081fcd90
[ 51.073271] 0xffff8000081fc140
[ 51.073274] 0xffff80000816fce8
[ 51.073277] 0xffff80000816fed4
[ 51.073281] 0xffff80000816ff68
[ 51.073285] 0xffff80000801ddec
[ 51.073288] 0xffff80000801deec
[ 51.073291] 0xffff800008965ef0
[ 51.073295] 0xffff8000089674c4
[ 51.073298] 0xffff800008011488
[ 51.073307] Code: 540000c3 a9401c26 a97f348c a9001c06 (a93f34ac)
[ 51.274118] ---[ end trace 0000000000000000 ]---
[ 51.287902] remoteproc remoteproc9: powering up b006000.rtu
[ 51.306157] remoteproc remoteproc9: Booting fw image am65x-rtu0_1-fw, size 145720
[ 51.313733] Unable to handle kernel paging request at virtual address ffff8000090fd25c
[ 51.321659] Mem abort info:
[ 51.324463] ESR = 0x0000000096000061
[ 51.328211] EC = 0x25: DABT (current EL), IL = 32 bits
[ 51.333528] SET = 0, FnV = 0
[ 51.336583] EA = 0, S1PTW = 0
[ 51.339724] FSC = 0x21: alignment fault
[ 51.343738] Data abort info:
[ 51.346616] ISV = 0, ISS = 0x00000061
[ 51.350457] CM = 0, WnR = 1
[ 51.353431] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000082ba8000
[ 51.360136] [ffff8000090fd25c] pgd=10000000bffff003, p4d=10000000bffff003, pud=10000000bfffe003, pmd=100000008000c003, pte=006800000b003713
[ 51.372694] Internal error: Oops: 0000000096000061 [#4] PREEMPT_RT SMP
[ 51.372702] Modules linked in: usb_f_acm u_serial g_serial libcomposite overlay xhci_plat_hcd ti_am335x_adc kfifo_buf irq_pruss_intc dwc3 spidev icssg_prueth crct10dif_ce pru_rproc hsr icss_iep ti_k3_r5_remoteproc virtio_rpmsg_bus rpmsg_ns omap_hwspinlock k3_bandgap m_can_platform m_can can_dev rti_wdt ti_am335x_tscadc pruss sa2ul phy_omap_usb2 dwc3_keystone at24 spi_omap2_mcspi cryptodev(O) fuse drm drm_panel_orientation_quirks ipv6
[ 51.372820] CPU: 0 PID: 710 Comm: sh Tainted: G D O 6.1.119-rt45-ti-rt-gb0f9de804a16 #1
[ 51.372830] Hardware name: Texas Instruments AM654 Base Board (DT)
[ 51.372835] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 51.372846] pc : 0xffff80000892f450
[ 51.372850] lr : 0xffff8000089636b0
[ 51.372853] sp : ffff00000677fc30
[ 51.372856] x29: ffff00000677fc30 x28: ffff00000b200c00 x27: 0000000000000000
[ 51.372869] x26: 0000000000000000 x25: 0000000000000000 x24: ffff00000832c700
[ 51.372881] x23: 0000000000000000 x22: ffff00000832c700 x21: ffff00000825b838
[ 51.372894] x20: ffff8000090fd258 x19: ffff00000825b800 x18: ffffffffffffffff
[ 51.372906] x17: 0000000000000001 x16: 0000000000000001 x15: 00101d3f39e6bc08
[ 51.372918] x14: 00102f56cec8647a x13: 0000000000000000 x12: 0000000000000000
[ 51.372930] x11: 0000000000002000 x10: ffffffffff4a86a1 x9 : 0000000000000030
[ 51.372942] x8 : 0000000000002000 x7 : 0000000000000000 x6 : 0000000000000001
[ 51.372954] x5 : ffff8000090fd26c x4 : ffff000009ac2694 x3 : ffff000001275a80
[ 51.372966] x2 : 0000000000000014 x1 : ffff000009ac2680 x0 : ffff8000090fd258
[ 51.372979] Call trace:
[ 51.372982] 0xffff80000892f450
[ 51.372986] 0xffff800008788030
[ 51.372990] 0xffff80000878a250
[ 51.372993] 0xffff80000852eee4
[ 51.372996] 0xffff8000081fcd90
[ 51.373000] 0xffff8000081fc140
[ 51.373003] 0xffff80000816fce8
[ 51.373007] 0xffff80000816fed4
[ 51.373010] 0xffff80000816ff68
[ 51.373014] 0xffff80000801ddec
[ 51.373017] 0xffff80000801deec
[ 51.373020] 0xffff800008965ef0
[ 51.373024] 0xffff8000089674c4
[ 51.373027] 0xffff800008011488
[ 51.373036] Code: 540000c3 a9401c26 a97f348c a9001c06 (a93f34ac)
[ 51.573849] ---[ end trace 0000000000000000 ]---
[ 51.587041] remoteproc remoteproc10: powering up b138000.pru
[ 51.597549] remoteproc remoteproc10: Direct firmware load for am65x-pru1_1-fw failed with error -2
[ 51.606525] remoteproc remoteproc10: request_firmware failed: -2
[ 51.612544] remoteproc remoteproc10: Boot failed: -2
sh: line 1: echo: write error: No such file or directory
[ 51.630794] remoteproc remoteproc11: powering up b106000.rtu
[ 51.636635] remoteproc remoteproc11: Direct firmware load for am65x-rtu1_1-fw failed with error -2
[ 51.645610] remoteproc remoteproc11: request_firmware failed: -2
[ 51.651634] remoteproc remoteproc11: Boot failed: -2
sh: line 1: echo: write error: No such file or directory
[ 51.669613] remoteproc remoteproc16: powering up b234000.pru
[ 51.675526] remoteproc remoteproc16: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 39636
[ 51.684954] remoteproc remoteproc16: unsupported resource 5
[ 51.690575] remoteproc remoteproc16: remote processor b234000.pru is now up
[ 51.711032] remoteproc remoteproc17: powering up b204000.rtu
[ 51.716923] remoteproc remoteproc17: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30444
[ 51.726373] remoteproc remoteproc17: remote processor b204000.rtu is now up
