[linux-yocto] [PATCH 33/42] arch/arm/mach-axxia: fixed NO SMP

Cristian Bercaru cristian.bercaru at windriver.com
Thu Jun 11 01:32:18 PDT 2015


From: Charlie Paul <cpaul.windriver at gmail.com>

These changes are made to support NO SMP.
There is only one CPU. This fixes the compile error
and kernel hanging on boot up.

Signed-off-by: Charlie Paul <cpaul.windriver at gmail.com>
---
 arch/arm/mach-axxia/axxia.c         |   12 +++++++++---
 arch/arm/mach-axxia/ddr_retention.c |    3 ++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-axxia/axxia.c b/arch/arm/mach-axxia/axxia.c
index e3ddd21..36970da 100644
--- a/arch/arm/mach-axxia/axxia.c
+++ b/arch/arm/mach-axxia/axxia.c
@@ -64,6 +64,10 @@ static const char *axxia_dt_match[] __initconst = {
 
 static void __iomem *base;
 
+#ifdef CONFIG_KEXEC
+
+static void __iomem *dickens;
+
 static void set_l3_pstate(u32 newstate)
 {
 	static const u8 hnf[] = {
@@ -96,6 +100,8 @@ flush_l3(void)
 	set_l3_pstate(3);
 }
 
+#endif
+
 static struct map_desc axxia_static_mappings[] __initdata = {
 #ifdef CONFIG_DEBUG_LL
 	{
@@ -197,12 +203,12 @@ static struct notifier_block axxia_amba_nb = {
 void __init axxia_dt_init(void)
 {
 	base = ioremap(0x2010000000, 0x40000);
-	if (!of_find_compatible_node(NULL, NULL, "lsi,axm5500-sim")) {
 #ifdef CONFIG_KEXEC
+	if (!of_find_compatible_node(NULL, NULL, "lsi,axm5500-sim")) {
+		dickens = ioremap(0x2000000000, SZ_4M);
 		kexec_reinit = flush_l3;
-#endif
-		flush_l3();
 	}
+#endif
 
 	bus_register_notifier(&platform_bus_type, &axxia_platform_nb);
 	bus_register_notifier(&amba_bustype, &axxia_amba_nb);
diff --git a/arch/arm/mach-axxia/ddr_retention.c b/arch/arm/mach-axxia/ddr_retention.c
index ef97d2a..58a4845 100644
--- a/arch/arm/mach-axxia/ddr_retention.c
+++ b/arch/arm/mach-axxia/ddr_retention.c
@@ -32,10 +32,10 @@
 #include <asm/io.h>
 #include <asm/cacheflush.h>
 #include <mach/ncr.h>
-#include "axxia.h"
 
 static void __iomem *nca;
 static void __iomem *apb;
+static void __iomem *dickens;
 static int ddr_retention_enabled;
 
 enum {
@@ -346,6 +346,7 @@ axxia_ddr_retention_init(void)
 		} else {
 			apb = ioremap(0x2010000000, 0x80000);
 			nca = ioremap(0x002020100000ULL, 0x20000);
+			dickens = ioremap(0x2000000000, 0x1000000);
 			ddr_retention_enabled = 1;
 			pr_info("DDR Retention Reset Initialized\n");
 		}
-- 
1.7.9.5



More information about the linux-yocto mailing list