33 lines
1.1 KiB
Plaintext
33 lines
1.1 KiB
Plaintext
|
|
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.
|
|
|