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.
Hi ,
I am working on Arm for the first time . I am trying to implement a scenario to boot 4 cores parallel . I have few queries here
--> Reset lifting procedure for 4 cores ? how exactly they should behave ? (any doc also fine ... !)
--> 4 cores booted properly , which core will execute "C" Code ?
--> Any need to keep remaining 3 cores in WFI (CPU 1/2/3) , when core 0 is executing?
Please do let me know where can i find this info in arm docs ?
Thanks & regards
Kiran
I'm afraid "it depends" pretty much sums up the answer to questions like this - sorry. There are many different ways you go about boot, it really comes down to what you want to achieve. I'll try to answer the specific questions you asked, but as back ground reading here are some suggestions:
ARM Cortex-A Series Programmer’s Guide, chapters 13 and 18
Cortex-A Series Programmer’s Guide
Perhaps a bit heavy, but there is also...
ARM Server Base Boot Requirements
I'd also suggest you take a look at the documentation for the ARM Trusted Firmware.
https://github.com/ARM-software/arm-trusted-firmware
If you are more interested in a simple baremetal environment, then take a look at the SMP Primes examples that comes with DS-5.
One option is to initially only bring a single core out of reset. It performs any system initialization required (e.g. clocks and memory controllers), before bring up the other cores. Another option is to do the same thing in software - that is wake all the cores at once but use a software holding pen.
Up to you. Again there are several different approaches you could take, it really depends on what you want to achieve. You could have all the cores running C code, in a shared C environment (DS-5 has an example of this). You could have them all running C code, but with individual environments. You could mix the last two (say two cores sharing one environment, and two cores with individual ones). The list goes on.
Depends if you have anything for them to usefully to do...