When the Raspberry Pi 2 starts up, the primary core (core 0) executes the initial boot sequence while secondary cores (cores 2,3 and 4) are powered on and wait for a jump address to be specified.
Each core has four mailboxes. The extra cores read a particular mailbox and wait for its contents to become non-zero. The read content provides the jump address.
The cores read from mailbox 3. Physical addresses for mailbox 3 for each of the three cores can be obtained as
0x4000008C + 0x10 * CPU_ID for CPU_ID=1,2,3
The jump address can be associated with a function that will be executed by the cores.
This details of this function have to be identified.
Next: RTEMS SMP Initialization
Each core has four mailboxes. The extra cores read a particular mailbox and wait for its contents to become non-zero. The read content provides the jump address.
The cores read from mailbox 3. Physical addresses for mailbox 3 for each of the three cores can be obtained as
0x4000008C + 0x10 * CPU_ID for CPU_ID=1,2,3
The jump address can be associated with a function that will be executed by the cores.
This details of this function have to be identified.
Next: RTEMS SMP Initialization
Go to: Starting secondary cores with RTEMS
Hey, thank you very much. This information is useful.
ReplyDeleteI was able to activate all four cores for a bare-metal example.