Skip to content

imx-atf: Add patch to assign UART4 to A53 instead of M4 core

Frieder Schrempf requested to merge feature/uart4-core-assignment into develop-dunfell

By default imx-atf assigns UART4 to the M4 core, but in most cases we want to use it from Linux running on the A53 cores. Without this we get the following kernel abort when trying to access UART4 from Linux:

[    1.149187] Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP
[    1.156674] Modules linked in:
[    1.159735] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.18.0-rc4-ktn+g807a88195d76 #1
[    1.167571] Hardware name: S-Klima CompTrol (DT)
[    1.172190] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    1.179158] pc : imx_uart_probe+0x2ec/0x7d8
[    1.183353] lr : imx_uart_probe+0x2dc/0x7d8
[    1.187543] sp : ffff80000803bb40
[    1.190859] x29: ffff80000803bb40 x28: 0000000000000000 x27: ffff0000024c3f00
[    1.198002] x26: 000000000000002b x25: 00000000fffffffa x24: ffff000000090000
[    1.205148] x23: ffff0000002f9810 x22: 00000000fffffffa x21: ffff0000002f9800
[    1.212291] x20: 0000000000000000 x19: ffff000002400080 x18: 0000000000000001
[    1.219436] x17: 647561625f657361 x16: 62202c3833203d20 x15: 000000000007b729
[    1.226582] x14: ffffffffffffffff x13: 0000000000000038 x12: 0101010101010101
[    1.233728] x11: 7f7f7f7f7f7f7f7f x10: ffff84000b3c2b05 x9 : 0000000000000000
[    1.240873] x8 : ffff0000024c4000 x7 : 0000000000000000 x6 : 00000000000000c0
[    1.248016] x5 : 0000000000000000 x4 : 0000000000000003 x3 : 0000000000000000
[    1.255161] x2 : 0000000000000000 x1 : ffff800009c10080 x0 : 0000000000000000
[    1.262308] Call trace:
[    1.264756]  imx_uart_probe+0x2ec/0x7d8
[    1.268599]  platform_probe+0x68/0xd8
[    1.272266]  really_probe+0x144/0x390
[    1.275934]  __driver_probe_device+0x114/0x188
[    1.280385]  driver_probe_device+0x3c/0xf0
[    1.284488]  __driver_attach+0xbc/0x1a0
[    1.288327]  bus_for_each_dev+0x70/0xc0
[    1.292168]  driver_attach+0x24/0x30
[    1.295751]  bus_add_driver+0x140/0x220
[    1.299592]  driver_register+0x64/0x120
[    1.303430]  __platform_driver_register+0x28/0x38
[    1.308138]  imx_uart_init+0x3c/0x64
[    1.311722]  do_one_initcall+0x54/0x1c8
[    1.315562]  kernel_init_freeable+0x20c/0x290
[    1.319926]  kernel_init+0x24/0x130
[    1.323425]  ret_from_fork+0x10/0x20
[    1.327008] Code: 2a0003f4 35001980 f9400a61 91020021 (b9400021) 
[    1.333109] ---[ end trace 0000000000000000 ]---

Merge request reports