From: David Mercado <david.merc...@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.merc...@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 -- _______________________________________________ linux-yocto mailing list linux-yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/linux-yocto