[linux-yocto] [PATCH 10/30] LSI AXM55xx: Enable multi-cluster wfe/sev

Charlie Paul cpaul.windriver at gmail.com
Thu May 1 08:29:32 PDT 2014


From: David Mercado <david.mercado at windriver.com>

By default, the system does not enable the use of ARM wfe/sev instructions
across clusters, which breaks things like arch_spin_lock. This patch enables
this feature.

LSI AXM55xx: Disable use of wfe/sev in arch_spin_lock

By default, the system does not enable the use of ARM wfe/sev instructions
across clusters, which breaks things like arch_spin_lock. The previous
solution to enable wfe/sev to work across clusters still resulted in CPU
stalls. This patch instead removes the use of wfe/sev in arch/arm/include/
asm/spinlock.h altogether.

Signed-off-by: David Mercado <david.mercado at windriver.com>
---
 arch/arm/include/asm/spinlock.h |    4 ++++
 arch/arm/mach-axxia/axxia.c     |    1 +
 2 files changed, 5 insertions(+)

diff --git a/arch/arm/include/asm/spinlock.h b/arch/arm/include/asm/spinlock.h
index 65fa3c8..022ef90 100644
--- a/arch/arm/include/asm/spinlock.h
+++ b/arch/arm/include/asm/spinlock.h
@@ -37,6 +37,10 @@
 						\
 	"nop.w"					\
 )
+#elif CONFIG_ARCH_AXXIA || CONFIG_ARCH_AXXIA_SIM
+/* Disable use of wfe/sev in Axxia. */
+#define SEV
+#define WFE(cond)
 #else
 #define SEV		ALT_SMP("sev", "nop")
 #define WFE(cond)	ALT_SMP("wfe" cond, "nop")
diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index 7b725ef..d87bb61 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -253,6 +253,7 @@ l3_set_pstate(void __iomem *l3ctrl, unsigned int req, unsigned int act)
 void __init axxia_dt_init(void)
 {
 	void __iomem *l3ctrl;
+	void __iomem *apb2ser3_base;
 	int rc;
 
 	/* Enable L3-cache */
-- 
1.7.9.5



More information about the linux-yocto mailing list