Hi all,
I'm working on a 6SX SABRE-SBD board. It mounts a i.MX6SX dual core CPU: Cortex A9 and Cortex M4.
I'm using U-Boot 2014.04.
I'm trying to boot M4 core from U-Boot and start linux on SD.
At the moment, following i.MX_Linux_User's_Guide.pdf and chapter 53 of i.MX_6_Linux_Reference_Manual.pdf, I wrote the M4 mcc demo on the Cortex M4.
I know that it works beacause of running script m4boot I can see outputs on the Cortex M4 serial console.
So far I change the bootcmd U-Boot environment variable to add "run m4boot;" before the existant commands.
Actual bootcmd is: run m4boot; mmc dev ${mmcdev};if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else run netboot; fi;
What is not working is that with the new bootcmd the M4 core starts correctly, the linux kernel start but it stops with the following error:
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
Unable to handle kernel NULL pointer dereference at virtual address 00000018
pgd = 80004000
[00000018] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.53-1.1.0_ga+g496fbe0 #1
task: a806c000 ti: a806e000 task.ti: a806e000
PC is at imx_amp_power_init+0x8c/0xd8
LR is at __arm_ioremap+0x18/0x1c
pc : [<80c8a4e4>] lr : [<80019128>] psr: a0000113
sp : a806fef8 ip : 00000000 fp : 00000000
r10: 80caff6c r9 : 80c8a458 r8 : 00000014
r7 : 00000001 r6 : 80d18838 r5 : 80d18838 r4 : 00000001
r3 : 00000000 r2 : 80d18838 r1 : 00000000 r0 : a800f180
Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: 8000404a DAC: 00000015
Process swapper/0 (pid: 1, stack limit = 0xa806e238)
Stack: (0xa806fef8 to 0xa8070000)
fee0: 80cbb1b8 00000007
ff00: 80d178c0 80d178c0 80d178c0 80008704 00000103 80047e94 80caff44 a806e010
ff20: 80b779d4 80c3c5e8 00000007 00000007 80047700 80047758 00000000 80cbb1b8
ff40: 00000007 80d178c0 80d178c0 80c724dc 00000103 80caff6c 80caff64 80c72be0
ff60: 00000007 00000007 80c724dc ce8fffe9 ebdeff7e fd4df71c a806ff9c 00000000
ff80: 80679540 00000000 00000000 00000000 00000000 00000000 00000000 80679548
ffa0: a806e000 00000000 80679540 8000e118 00000000 00000000 00000000 00000000
ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 bfdeef2d e9037f49
[<80c8a4e4>] (imx_amp_power_init+0x8c/0xd8) from [<80008704>] (do_one_initcall+0x108/0x158)
[<80008704>] (do_one_initcall+0x108/0x158) from [<80c72be0>] (kernel_init_freeable+0x138/0x1d8)
[<80c72be0>] (kernel_init_freeable+0x138/0x1d8) from [<80679548>] (kernel_init+0x8/0x158)
[<80679548>] (kernel_init+0x8/0x158) from [<8000e118>] (ret_from_fork+0x14/0x3c)
Code: e0233498 e2844001 e0862102 e5920004 (e5c37018)
---[ end trace d49a49147a58376d ]---
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
If I restore the original bootcmd It returns to work well.
What I have to change in uboot environment to make the M4 and A9 running at the same time?