[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