2404017_en-US

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2404017_en-US

2404017_en-US

i.MX8MP: SError & Page Fault when running M7 with SAI3 audio enabled

Hello NXP official team:

We are developing a system using the i.MX 8M Plus platform, running Linux A53 and FreeRTOS M7 . While attempting to allocate the SAI3 audio interface to Linux while running M7, we encountered a kernel crash (SError/page fault).


1. Software version and environment:

Kernel version: Linux 5.10.72

U-Boot version: U-Boot 2021.04

M7 SDK: MCUXpresso SDK for i.MX8MP (rpmsg_lite_str_echo_rtos)

Refer to the official article: NXP Knowledge Base: Test SAI3 while running M7 firmware with remoteproc


2. System configuration:

 

<1> The M7 firmware (m7.bin) is stored in the system partition and...The U-Boot stage is started directly using the command bootaux 0x007e0000.

<2> On the Cortex-A53 Linux side, we use a physical sound card chip (SGTL5000) mounted on the SAI3 + I2C3 + SDMA3 bus.

<3> The Cortex-M7 is responsible for acquiring data on the GPIO2_IO09 pin and triggering a high-frequency sampling interrupt, and interacting with the A53 Linux across cores via the RPMsg virtual serial port (/dev/ttyRPMSG30).


3. Problems encountered:

If the sound card resources are not adjusted to A53, the operation of the /dev/ttyRPMSG30 device is normal;

Currently, an A53 sound card is required. Following the official post < Test SAI3 while running M7 firmware with remoteproc >, the following adjustments were made, but kernel booting will cause issues. The changes are as follows:

<1> The kernel DTS configuration has been restored, and the sound card configuration has been changed to A53, as shown in the attached

<2> u-boot dts: Allocates sound card resources to the A53, such as

<3> ATF, assign SAI3, sdma3, and i2c3 to A53, modify imx8mp_bl31_setup.c, such as:

<4> M7 SDK: Comments on the BOARD_BootClockRUN and BOARD_RdcInit functions related to AUDIO changes, as shown in the attached and .


4. Kernel dmesg crash log:

The system freezes during boot into the kernel, as shown in the following log:

[    2.992289] i2c i2c-1: IMX I2C adapter registered
[    2.997631] SError Interrupt on CPU2, code 0xbf000002 -- SError
[    2.997634] CPU: 2 PID: 135 Comm: kworker/2:1 Not tainted 5.10.72-gf8ca51a867fa-dirty #56
[    2.997636] Hardware name: EMB-3512-V11-M7 (DT)
[    2.997638] Workqueue: events deferred_probe_work_func
[    2.997642] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO BTYPE=--)
[    2.997644] pc : i2c_imx_probe+0x31c/0x8fc
[    2.997645] lr : i2c_imx_probe+0x2b0/0x8fc
[    2.997647] sp : ffff8000126a3af0
[    2.997648] x29: ffff8000126a3af0 x28: ffff80001135c3f0 
[    2.997654] x27: ffff0000c50aa880 x26: 0000000000000023 
[    2.997660] x25: ffff0000c50aaca0 x24: ffff0000c50aa8f0 
[    2.997666] x23: ffff800011d7c090 x22: ffff0000c4410e40 
[    2.997672] x21: ffff80001135c428 x20: ffff0000c041d800 
[    2.997677] x19: ffff0000c041d810 x18: 0000000000000020 
[    2.997683] x17: 0000000000000000 x16: 0000000000000000 
[    2.997689] x15: ffff0000c44112b8 x14: 0000000000000000 
[    2.997695] x13: ffff0000c4410e40 x12: ffff8000126a3a70 
[    2.997700] x11: aaaaaaaaaaaaaaab x10: 0000000000000060 
[    2.997706] x9 : ffff800011b993b4 x8 : ffff800011b99000 
[    2.997712] x7 : 00007dfed2122a00 x6 : 000000000007a120 
[    2.997718] x5 : 0000000000b71aff x4 : 0000000000000002 
[    2.997723] x3 : 0000000000000002 x2 : 0000000000000000 
[    2.997729] x1 : ffff0000ff86ea08 x0 : ffff800013c8000c 
[    2.997736] Kernel panic - not syncing: Asynchronous SError Interrupt
[    2.997741] CPU: 2 PID: 135 Comm: kworker/2:1 Not tainted 5.10.72-gf8ca51a867fa-dirty #56
[    2.997742] Hardware name: EMB-3512-V11-M7 (DT)
[    2.997744] Workqueue: events deferred_probe_work_func
[    2.997747] Call trace:
[    2.997748]  dump_backtrace+0x0/0x1a0
[    2.997750]  show_stack+0x18/0x70
[    2.997751]  dump_stack+0xd0/0x12c
[    2.997752]  panic+0x16c/0x334
[    2.997754]  nmi_panic+0x8c/0x90
[    2.997755]  arm64_serror_panic+0x78/0x84
[    2.997757]  do_serror+0x64/0x6c
[    2.997758]  el1_error+0x90/0x110
[    2.997760]  i2c_imx_probe+0x31c/0x8fc
[    2.997762]  platform_drv_probe+0x54/0xb0
[    2.997763]  really_probe+0xec/0x4d0
[    2.997765]  driver_probe_device+0x58/0xc0
[    2.997766]  __device_attach_driver+0xa8/0x10c
[    2.997768]  bus_for_each_drv+0x78/0xd0
[    2.997769]  __device_attach+0xd8/0x180
[    2.997771]  device_initial_probe+0x14/0x20
[    2.997773]  bus_probe_device+0x9c/0xa4
[    2.997774]  deferred_probe_work_func+0x80/0xc0
[    2.997776]  process_one_work+0x1cc/0x350
[    2.997777]  worker_thread+0x2bc/0x46c
[    2.997779]  kthread+0x154/0x160
[    2.997780]  ret_from_fork+0x10/0x30
[    2.998109] SMP: stopping secondary CPUs
[    2.998111] Kernel Offset: disabled
[    2.998113] CPU features: 0x0240002,2000200c
[    2.998114] Memory Limit: none



Please take a look at the problem and see if there are any relevant documents or modifications that can resolve it. Looking forward to your suggestions and replies! Thank you!

回复: i.MX8MP: SError & Page Fault when running M7 with SAI3 audio enabledResolved; the audio configuration on the M7 side needs to be completely disabled.
Tags (1)
No ratings
Version history
Last update:
Thursday
Updated by: