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