ARM: bcm2836: Send event when onlining other cores
Secondary cores should enter a low-power idle state when waiting to be started. The "wfe" instruction causes a core to wait until an event or interrupt arrives before continuing to the next instruction, and the "sev" instruction sends a wakeup event to the other cores. Add an "sev" (and a memory barrier) to bcm2836_boot_secondary, the function that wakes the waiting cores during booting. This is required if the secondary cores are sitting in "wfe", and harmless if not. Signed-off-by: Phil Elwell <phil@raspberrypi.org> Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
88bbe85dcd
commit
968f76417d
|
@ -312,6 +312,9 @@ static int bcm2836_boot_secondary(unsigned int cpu, struct task_struct *idle)
|
|||
writel(virt_to_phys(secondary_startup),
|
||||
intc_base + LOCAL_MAILBOX3_SET0 + 16 * cpu);
|
||||
|
||||
dsb(sy);
|
||||
sev();
|
||||
|
||||
iounmap(intc_base);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue