[U-Boot] [PATCH] arm/layerscape: Fix non-boot cpus cannot correctly fall in spin table

From: Wang Dongsheng dongsheng.wang@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@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

Hi Alison & Jason,
Could you ACK this patch?
Regards, -Dongsheng
-----Original Message----- From: Dongsheng Wang [mailto:dongsheng.wang@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@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@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@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

On 07/14/2015 12:09 AM, Wang Dongsheng-B40534 wrote:
Hi Alison & Jason,
Could you ACK this patch?
Regards, -Dongsheng
-----Original Message----- From: Dongsheng Wang [mailto:dongsheng.wang@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@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@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@freescale.com
Dongsheng,
Do we still use spin table if we have PSCI?
York

-----Original Message----- From: Sun York-R58495 Sent: Thursday, July 16, 2015 2:06 AM To: Wang Dongsheng-B40534 Cc: Jin Zhengxiong-R64188; Wang Huan-B18965; Zhao Chenhui-B35336; Zhang Zhuoyu- B46552; u-boot@lists.denx.de Subject: Re: [PATCH] arm/layerscape: Fix non-boot cpus cannot correctly fall in spin table
On 07/14/2015 12:09 AM, Wang Dongsheng-B40534 wrote:
Hi Alison & Jason,
Could you ACK this patch?
Regards, -Dongsheng
-----Original Message----- From: Dongsheng Wang [mailto:dongsheng.wang@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@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@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@freescale.com
Dongsheng,
Do we still use spin table if we have PSCI?
For ARMv7 we would like to use PSCI, just compatible with spin table.
Regards, -Dongsheng

On 06/18/2015 03:32 AM, Dongsheng Wang wrote:
From: Wang Dongsheng dongsheng.wang@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@freescale.com
Applied to u-boot-fsl-qoriq master after fixing subject. Thanks.
York
participants (3)
-
Dongsheng Wang
-
Wang Dongsheng
-
York Sun