We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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
Good to know that this is not a valid question now.