[linux-yocto] [PATCH 28/38] arch/arm/mach-axxia: fixed NO SMP
Cristian Bercaru
cristian.bercaru at windriver.com
Wed May 20 12:24:11 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 2759aaf..a0ffa64 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[] = {
@@ -97,6 +101,8 @@ flush_l3(void)
set_l3_pstate(3);
}
+#endif
+
static struct map_desc axxia_static_mappings[] __initdata = {
#ifdef CONFIG_DEBUG_LL
{
@@ -198,12 +204,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 512bf26..bc3f79a 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 {
@@ -342,6 +342,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