I got an iMX6Q Lite from Boundary Devices, and I am using their Ubuntu based released, which is working fine. Their Linux seems to be based on NXP/Freescale's Linux tree, which completely run in secure world.
I'm trying to port the Linux into the normal world, but I can't seem to make SMP work. If I disable SMP, I'm fine.
If I enable SMP but only core0 to be started, I'm fine. But as soon as I try to start a second core, I randomly crash during init. My best run was having a prompt, but can't login due to an infinite error:
nitrogen login: root login: PAM Fa�lure, aborting: Criinit: ttymxc1 main process (916) terminated with status 99 init: ttymxc1 main process ended, respawning
Are there know Linux BSP for iMX6 boards that are running in the normal world ?
PS: here is a summary of my changes into Linux to run it in normal mode:
- remove access to the diagnostic register, they are done prior to Linux by the secure world
- remove access to the L2 cache PL310, they are replaced by SMC commands to the monitor which performs them
- remove access to the SCU/SCR registers to enable the second core. Secondary cores are prepared by the secure world to be woken up using an IRQ, and Linux code is replaced by a call to arch_send_wakeup_ipi_mask(cpumask_of(cpu));