[PATCH] Remove CPU_32v6K dependencies in asm/spinlock.h
Catalin Marinas
catalin.marinas at arm.com
Mon Jan 17 07:12:55 EST 2011
On 17 January 2011 10:53, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Mon, Jan 17, 2011 at 10:37:39AM +0000, Russell King - ARM Linux wrote:
>> 3. Do we always need a dsb prior to a sev? Maybe the SPEAR patches need
>> another review to determine how they're using sev()?
>
> FYI, this is how the SPEAR patches use sev():
>
> | +static void __init wakeup_secondary(void)
> | +{
> | + /* nobody is to be released from the pen yet */
> | + pen_release = -1;
> | +
> | + /*
> | + * Write the address of secondary startup into the system-wide
> | + * location (presently it is in SRAM). The BootMonitor waits
> | + * for this register to become non-zero.
> | + * We must also send an sev to wake it up
> | + */
> | + __raw_writel(BSYM(virt_to_phys(spear13xx_secondary_startup)),
> | + __io_address(SPEAR13XX_SYS_LOCATION));
> | +
> | + mb();
> | +
> | + /*
> | + * Send a 'sev' to wake the secondary core from WFE.
> | + */
> | + sev();
> | +}
>
> so the dsb() is inside mb(), before the outer sync call.
BTW, don't we need some cache flushing for the pen_release?
--
Catalin
More information about the linux-arm-kernel
mailing list