Files
raspberrypi/multi00
2016-01-02 17:31:26 -05:00
..
2015-05-24 23:49:32 -04:00
2015-05-24 23:49:32 -04:00
2015-05-24 23:49:32 -04:00
2015-05-24 23:49:32 -04:00
2015-05-24 23:49:32 -04:00
2016-01-02 17:31:26 -05:00
2015-05-24 23:49:32 -04:00

See the top level README file for more information on documentation
and how to run these programs.

Derived from uart05

This is specific to the Raspberry Pi 2 as it experiments with the
multiple processor cores.

So thanks to JS2, rst, ultibo and others in the raspberry pi bare metal
forum for the info

My current understanding is that the boot code that the GPU places
in ram that is run before branching to our code at 0x8000, causes the
other three cores to sit and wait for an event that comes through a
mailbox.  I am still trying to understand the connection between the
mailbox and the ARM (does it create an interrupt? is the code polling
something, if so where exactly is this code, etc)

So if you write to address

0x4000009C for core 1
0x400000AC for core 2
0x400000BC for core 3

With the address to the entry point for the code you want that core
to run...it will start that core.

This program starts up the other three cores, lets them fight over the
memory location at address 0x40.  Core 0 reads 0x40 and prints out
when it sees it change.  It is going to look somewhat random.