summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWang Dongsheng <dongsheng.wang@freescale.com>2015-06-18 18:32:58 +0800
committerYork Sun <yorksun@freescale.com>2015-08-03 12:06:37 -0700
commit6f0586e692c91ac9dc33fd479f68c3d957bf61b3 (patch)
tree84de223e3dff1358dace63b88e889b6f02087317
parent933db81c0494f692bbd384db11f7bab43706c87c (diff)
downloadu-boot-imx-6f0586e692c91ac9dc33fd479f68c3d957bf61b3.zip
u-boot-imx-6f0586e692c91ac9dc33fd479f68c3d957bf61b3.tar.gz
u-boot-imx-6f0586e692c91ac9dc33fd479f68c3d957bf61b3.tar.bz2
armv7/ls102xa: Fix non-boot cpus cannot correctly fall in spin table
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@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
-rw-r--r--arch/arm/cpu/armv7/ls102xa/cpu.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/ls102xa/cpu.c b/arch/arm/cpu/armv7/ls102xa/cpu.c
index 75f0d8c..8dd95d9 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