This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problems powering on secondary core on bare-metal Juno ADP r0

Hello,

I'm trying to follow the tutorial posted here to boot up a secondary core on my Juno r0 board running bare-metal.

I start with the startup_ARMv8_GICv2 example project included with DS-5. I modify the main() function in main.c to include the assembly code listed in the tutorial (wrapped in __asm() blocks), so that A53_3_MPIDR is powered on before the SendSGI call to wake up secondary cores is called. I replace "app_entry" with "el1_secondary" so the secondary core starts in that subroutine.

After connecting to all 6 Juno cores (big.LITTLE debug configuration) via DSTREAM, when the SMC instruction to power on the core is executed, a synchronous exception is triggered and I'm stuck in an infinite loop in the "Current EL with SPx" vector table. The Exception Syndrome Register ESR_EL1 is set to 0x02000000, which does not provide much information (unknown/uncategorized reason).

Could someone give some insight into what I am doing incorrectly?

EDIT: Solved this myself. I was under the impression the example code I was using initialized ARM TrustZone, but I don't think that is the case. Following the steps here, I modified the Juno config registers to power on all cores at boot. Yay!

Message was edited by: Marc

Parents Reply Children
No data