On 18 January 2012 19:26, Peter Maydell <[email protected]> wrote:
> On 18 January 2012 19:06, Mark Langsdorf <[email protected]> wrote:
>> How would multiple polling supposed to work?
>
> You need several separate bits of code, to put each secondary
> core in a different loop polling a different address.
Er, or more sensibly, just one bit of code that does something like:
/* find out which core we are by reading cp15 MPIDR */
core = cp15_MPIDR & 0x3;
do {
/* now we can check the right flag for this core */
wfi
poll [0x40+0x10 * core]
} while (it's zero);
jump to it;
(translation into assembly left as exercise for the reader)
> (If you have access to your own bootloader sources you should
> be able to see how it does it :-))
This advice is still good :-)
-- PMM