[U-Boot] [PATCH] arm/layerscape: Fix non-boot cpus cannot correctly fall in spin table
Wang Dongsheng
Dongsheng.Wang at freescale.com
Tue Jul 14 09:09:45 CEST 2015
Hi Alison & Jason,
Could you ACK this patch?
Regards,
-Dongsheng
> -----Original Message-----
> From: Dongsheng Wang [mailto:dongsheng.wang at freescale.com]
> Sent: Thursday, June 18, 2015 6:33 PM
> To: Sun York-R58495
> Cc: Jin Zhengxiong-R64188; Wang Huan-B18965; Zhao Chenhui-B35336; Zhang Zhuoyu-
> B46552; u-boot at lists.denx.de; Wang Dongsheng-B40534
> Subject: [PATCH] arm/layerscape: Fix non-boot cpus cannot correctly fall in spin
> table
>
> From: Wang Dongsheng <dongsheng.wang at freescale.com>
>
> Bootrom will put cpus into WFE state when boot cpu release cpus, so
> target cpu cannot correctly go to spin state.
>
> Add 'sev' to wakeup non-boot cpu that hold on bootrom space, let target
> cpu can fall into u-boot spin table.
>
> Signed-off-by: Wang Dongsheng <dongsheng.wang at freescale.com>
>
> diff --git a/arch/arm/cpu/armv7/ls102xa/cpu.c b/arch/arm/cpu/armv7/ls102xa/cpu.c
> index 75f0d8c..1f82893 100644
> --- a/arch/arm/cpu/armv7/ls102xa/cpu.c
> +++ b/arch/arm/cpu/armv7/ls102xa/cpu.c
> @@ -344,5 +344,13 @@ void smp_kick_all_cpus(void)
> struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
>
> out_be32(&gur->brrl, 0x2);
> +
> + /*
> + * LS1 STANDBYWFE is not captured outside the ARM module in the soc.
> + * So add a delay to wait bootrom execute WFE.
> + */
> + udelay(1);
> +
> + asm volatile("sev");
> }
> #endif
> --
> 2.1.0.27.g96db324
More information about the U-Boot
mailing list