Tuesday 16 June 2015

Getting SMP started on Raspberry Pi 2

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

Go to: Starting secondary cores with RTEMS

1 comment:

  1. Hey, thank you very much. This information is useful.
    I was able to activate all four cores for a bare-metal example.

    ReplyDelete