Given a multiprocessor system, how are the PC values of secondary cores set from the primary core? I've read lots of threads stating it can be done but without any details. I could not find anything in the ARMv8 reference manual.
One might contrive a mailbox system where the secondary cores wfe and check the value of a mailbox address when woken up. But is there a supported method to directly write the secondary core PC before waking it up? What are the various methods for "waking up" a core?
Starting the secondary cores depends on the SoC. Some have a dedicated register which contains the start address. On some the core just starts at 0 and you have to store there a jump to the actual boot code for the secondary core.
So, you have to check you SoC's manual.
But you cannot write any of the registers of another core.
I should have clarified I meant post-boot. Once the primary core has initialized the system I was wondering how secondary cores have their PC set.
There is no other way.
Of course you can then setup some kind of mailbox these cores check.
View all questions in Cortex-A / A-Profile forum