How to power on cores 1-7 on bare metal


I am using ARM’s DS-5+DSTREAM debug toolset to connect to my Hikey board and debug bare metal applications. While I can technically connect to all 8 cores, I can really only debug apps on core 0, because the status of all other cores is “powered down” when I connect to them. I contacted ARM support and they said to consult the board’s manufacturer to determine how to power up the other cores.

I’ve tried looking through the Hikey documentation but I cannot find any mention of how to power up the other cores. Are there start-up options or boot conditions I can customize? I’m not sure how to proceed. Any insight is appreciated.

Thank you,

Core power on/off is handled via PSCI which is implemented as part of ARM Trusted Firmware. Thus the code to bring CPUs up and down can be found in the ARM TF port for the Hikey. Even from bare-metal this code is probably still best accessed by trapping to ARM TF (i.e. making the appropriate PSCI call) although other approaches are certainly possible.

Hi Marc

By coincidence, @peter-griffin pinged me on IRC today and let me know about a bug in the ARM TF Hikey port that made it more difficult to use JTAG debuggers on the Hikey. I think it is very likely that you will need this patch (or a similar poke in your own code) to progress.

See for details.


Hi Daniel,

Thanks for the replies! It sounds like I’ll need to research how to trap to ARM TF. I appreciate the pointer :slight_smile:


No worries.

I actually I can contribute one more pointer to your research. See: