On 18 January 2012 19:26, Peter Maydell <peter.mayd...@linaro.org> wrote:
> On 18 January 2012 19:06, Mark Langsdorf <mark.langsd...@calxeda.com> 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

Reply via email to