Setting PC for and waking up secondary cores from the primary core

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?

Parents
  • 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.

Reply
  • 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.

Children
More questions in this forum