On 17 January 2011 10:53, Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html