diff options
author | Changhwan Youn <chaos.youn@samsung.com> | 2010-08-27 04:57:44 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2010-08-27 05:29:58 -0400 |
commit | 766211e74818e655593fd3272cbf84868220f9e5 (patch) | |
tree | ca7be6e4b485e1fc39571fc71a887504bcccea50 | |
parent | 3297c2e6d7c3b1498b28c93141056cbe96444fde (diff) |
ARM: S5PV310: Fix on Secondary CPU startup
Following occurs on boot message without this patch.
CPU1: processor failed to boot
Brought up 1 CPUs
SMP: Total of 1 processors activated...
This patch adds SYSRAM mapping for fixing Secondary CPU startup.
CPU1: Booted secondary processor
Brought up 2 CPUs
SMP: Total of 2 processors activated...
Signed-off-by: Changhwan Youn <chaos.youn@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r-- | arch/arm/mach-s5pv310/cpu.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-s5pv310/include/mach/map.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-s5pv310/platsmp.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-s5p/include/plat/map-s5p.h | 1 |
4 files changed, 10 insertions, 2 deletions
diff --git a/arch/arm/mach-s5pv310/cpu.c b/arch/arm/mach-s5pv310/cpu.c index 2b742957d566..e5b261a99ab2 100644 --- a/arch/arm/mach-s5pv310/cpu.c +++ b/arch/arm/mach-s5pv310/cpu.c | |||
@@ -46,11 +46,16 @@ static struct map_desc s5pv310_iodesc[] __initdata = { | |||
46 | .length = SZ_4K, | 46 | .length = SZ_4K, |
47 | .type = MT_DEVICE, | 47 | .type = MT_DEVICE, |
48 | }, { | 48 | }, { |
49 | .virtual = (unsigned long)S5P_VA_SYSRAM, | ||
50 | .pfn = __phys_to_pfn(S5PV310_PA_SYSRAM), | ||
51 | .length = SZ_4K, | ||
52 | .type = MT_DEVICE, | ||
53 | }, { | ||
49 | .virtual = (unsigned long)S5P_VA_CMU, | 54 | .virtual = (unsigned long)S5P_VA_CMU, |
50 | .pfn = __phys_to_pfn(S5PV310_PA_CMU), | 55 | .pfn = __phys_to_pfn(S5PV310_PA_CMU), |
51 | .length = SZ_128K, | 56 | .length = SZ_128K, |
52 | .type = MT_DEVICE, | 57 | .type = MT_DEVICE, |
53 | } | 58 | }, |
54 | }; | 59 | }; |
55 | 60 | ||
56 | static void s5pv310_idle(void) | 61 | static void s5pv310_idle(void) |
diff --git a/arch/arm/mach-s5pv310/include/mach/map.h b/arch/arm/mach-s5pv310/include/mach/map.h index 3c00495c5f22..213e1101a3b3 100644 --- a/arch/arm/mach-s5pv310/include/mach/map.h +++ b/arch/arm/mach-s5pv310/include/mach/map.h | |||
@@ -23,6 +23,8 @@ | |||
23 | 23 | ||
24 | #include <plat/map-s5p.h> | 24 | #include <plat/map-s5p.h> |
25 | 25 | ||
26 | #define S5PV310_PA_SYSRAM (0x02025000) | ||
27 | |||
26 | #define S5PV310_PA_CHIPID (0x10000000) | 28 | #define S5PV310_PA_CHIPID (0x10000000) |
27 | #define S5P_PA_CHIPID S5PV310_PA_CHIPID | 29 | #define S5P_PA_CHIPID S5PV310_PA_CHIPID |
28 | 30 | ||
diff --git a/arch/arm/mach-s5pv310/platsmp.c b/arch/arm/mach-s5pv310/platsmp.c index fe9469abd006..d357c198edee 100644 --- a/arch/arm/mach-s5pv310/platsmp.c +++ b/arch/arm/mach-s5pv310/platsmp.c | |||
@@ -187,6 +187,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
187 | * until it receives a soft interrupt, and then the | 187 | * until it receives a soft interrupt, and then the |
188 | * secondary CPU branches to this address. | 188 | * secondary CPU branches to this address. |
189 | */ | 189 | */ |
190 | __raw_writel(BSYM(virt_to_phys(s5pv310_secondary_startup)), S5P_INFORM0); | 190 | __raw_writel(BSYM(virt_to_phys(s5pv310_secondary_startup)), S5P_VA_SYSRAM); |
191 | } | 191 | } |
192 | } | 192 | } |
diff --git a/arch/arm/plat-s5p/include/plat/map-s5p.h b/arch/arm/plat-s5p/include/plat/map-s5p.h index 589779205f12..c4ff88bf6477 100644 --- a/arch/arm/plat-s5p/include/plat/map-s5p.h +++ b/arch/arm/plat-s5p/include/plat/map-s5p.h | |||
@@ -17,6 +17,7 @@ | |||
17 | #define S5P_VA_GPIO S3C_ADDR(0x00500000) | 17 | #define S5P_VA_GPIO S3C_ADDR(0x00500000) |
18 | #define S5P_VA_SYSTIMER S3C_ADDR(0x01200000) | 18 | #define S5P_VA_SYSTIMER S3C_ADDR(0x01200000) |
19 | #define S5P_VA_SROMC S3C_ADDR(0x01100000) | 19 | #define S5P_VA_SROMC S3C_ADDR(0x01100000) |
20 | #define S5P_VA_SYSRAM S3C_ADDR(0x01180000) | ||
20 | 21 | ||
21 | #define S5P_VA_COMBINER_BASE S3C_ADDR(0x00600000) | 22 | #define S5P_VA_COMBINER_BASE S3C_ADDR(0x00600000) |
22 | #define S5P_VA_COMBINER(x) (S5P_VA_COMBINER_BASE + ((x) >> 2) * 0x10) | 23 | #define S5P_VA_COMBINER(x) (S5P_VA_COMBINER_BASE + ((x) >> 2) * 0x10) |