diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-01 23:34:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-01 23:34:22 -0400 |
commit | 6585dea1f99cc2265582ff2e4cc1727062136e92 (patch) | |
tree | 57378ccfe0f9fde73081e1f9355d05dd4131e178 /arch/arm | |
parent | 16ee792e45cf0c97ce061fce03c36cab5551ec72 (diff) | |
parent | 97c24c1aa403e0d4ef7c1958db8459e488862b46 (diff) |
Merge branch 'next/cross-platform' of git://git.linaro.org/people/arnd/arm-soc
* 'next/cross-platform' of git://git.linaro.org/people/arnd/arm-soc:
arm/imx: use Kconfig choice for low-level debug UART selection
ARM: realview: use Kconfig choice for debug UART selection
ARM: plat-samsung: use Kconfig choice for debug UART selection
ARM: versatile: convert logical CPU numbers to physical numbers
ARM: ux500: convert logical CPU numbers to physical numbers
ARM: shmobile: convert logical CPU numbers to physical numbers
ARM: msm: convert logical CPU numbers to physical numbers
ARM: exynos4: convert logical CPU numbers to physical numbers
Fix up trivial conflict (config DEBUG_S3C_UART move/split vs addition of
ARM_KPROBES_TEST option) in arch/arm/Kconfig.debug
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/Kconfig.debug | 117 | ||||
-rw-r--r-- | arch/arm/mach-exynos4/hotplug.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-exynos4/platsmp.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-msm/hotplug.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-msm/platsmp.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-mxs/include/mach/debug-macro.S | 12 | ||||
-rw-r--r-- | arch/arm/mach-realview/hotplug.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-realview/include/mach/debug-macro.S | 17 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/smp-sh73a0.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-ux500/hotplug.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-ux500/platsmp.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-vexpress/hotplug.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/debug-macro.S | 38 | ||||
-rw-r--r-- | arch/arm/plat-samsung/Kconfig | 7 | ||||
-rw-r--r-- | arch/arm/plat-versatile/platsmp.c | 2 |
15 files changed, 136 insertions, 79 deletions
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index f283938c2fc7..64db5b1648e5 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
@@ -128,6 +128,111 @@ choice | |||
128 | Say Y here if you want the debug print routines to direct | 128 | Say Y here if you want the debug print routines to direct |
129 | their output to the second serial port on these devices. | 129 | their output to the second serial port on these devices. |
130 | 130 | ||
131 | config DEBUG_IMX1_UART | ||
132 | bool "i.MX1 Debug UART" | ||
133 | depends on SOC_IMX1 | ||
134 | help | ||
135 | Say Y here if you want kernel low-level debugging support | ||
136 | on i.MX1. | ||
137 | |||
138 | config DEBUG_IMX23_UART | ||
139 | bool "i.MX23 Debug UART" | ||
140 | depends on SOC_IMX23 | ||
141 | help | ||
142 | Say Y here if you want kernel low-level debugging support | ||
143 | on i.MX23. | ||
144 | |||
145 | config DEBUG_IMX25_UART | ||
146 | bool "i.MX25 Debug UART" | ||
147 | depends on SOC_IMX25 | ||
148 | help | ||
149 | Say Y here if you want kernel low-level debugging support | ||
150 | on i.MX25. | ||
151 | |||
152 | config DEBUG_IMX21_IMX27_UART | ||
153 | bool "i.MX21 and i.MX27 Debug UART" | ||
154 | depends on SOC_IMX21 || SOC_IMX27 | ||
155 | help | ||
156 | Say Y here if you want kernel low-level debugging support | ||
157 | on i.MX21 or i.MX27. | ||
158 | |||
159 | config DEBUG_IMX28_UART | ||
160 | bool "i.MX28 Debug UART" | ||
161 | depends on SOC_IMX28 | ||
162 | help | ||
163 | Say Y here if you want kernel low-level debugging support | ||
164 | on i.MX28. | ||
165 | |||
166 | config DEBUG_IMX31_IMX35_UART | ||
167 | bool "i.MX31 and i.MX35 Debug UART" | ||
168 | depends on SOC_IMX31 || SOC_IMX35 | ||
169 | help | ||
170 | Say Y here if you want kernel low-level debugging support | ||
171 | on i.MX31 or i.MX35. | ||
172 | |||
173 | config DEBUG_IMX51_UART | ||
174 | bool "i.MX51 Debug UART" | ||
175 | depends on SOC_IMX51 | ||
176 | help | ||
177 | Say Y here if you want kernel low-level debugging support | ||
178 | on i.MX51. | ||
179 | |||
180 | config DEBUG_IMX50_IMX53_UART | ||
181 | bool "i.MX50 and i.MX53 Debug UART" | ||
182 | depends on SOC_IMX50 || SOC_IMX53 | ||
183 | help | ||
184 | Say Y here if you want kernel low-level debugging support | ||
185 | on i.MX50 or i.MX53. | ||
186 | |||
187 | config DEBUG_S3C_UART0 | ||
188 | depends on PLAT_SAMSUNG | ||
189 | bool "Use S3C UART 0 for low-level debug" | ||
190 | help | ||
191 | Say Y here if you want the debug print routines to direct | ||
192 | their output to UART 0. The port must have been initialised | ||
193 | by the boot-loader before use. | ||
194 | |||
195 | The uncompressor code port configuration is now handled | ||
196 | by CONFIG_S3C_LOWLEVEL_UART_PORT. | ||
197 | |||
198 | config DEBUG_S3C_UART1 | ||
199 | depends on PLAT_SAMSUNG | ||
200 | bool "Use S3C UART 1 for low-level debug" | ||
201 | help | ||
202 | Say Y here if you want the debug print routines to direct | ||
203 | their output to UART 1. The port must have been initialised | ||
204 | by the boot-loader before use. | ||
205 | |||
206 | The uncompressor code port configuration is now handled | ||
207 | by CONFIG_S3C_LOWLEVEL_UART_PORT. | ||
208 | |||
209 | config DEBUG_S3C_UART2 | ||
210 | depends on PLAT_SAMSUNG | ||
211 | bool "Use S3C UART 2 for low-level debug" | ||
212 | help | ||
213 | Say Y here if you want the debug print routines to direct | ||
214 | their output to UART 2. The port must have been initialised | ||
215 | by the boot-loader before use. | ||
216 | |||
217 | The uncompressor code port configuration is now handled | ||
218 | by CONFIG_S3C_LOWLEVEL_UART_PORT. | ||
219 | |||
220 | config DEBUG_REALVIEW_STD_PORT | ||
221 | bool "RealView Default UART" | ||
222 | depends on ARCH_REALVIEW | ||
223 | help | ||
224 | Say Y here if you want the debug print routines to direct | ||
225 | their output to the serial port on RealView EB, PB11MP, PBA8 | ||
226 | and PBX platforms. | ||
227 | |||
228 | config DEBUG_REALVIEW_PB1176_PORT | ||
229 | bool "RealView PB1176 UART" | ||
230 | depends on MACH_REALVIEW_PB1176 | ||
231 | help | ||
232 | Say Y here if you want the debug print routines to direct | ||
233 | their output to the standard serial port on the RealView | ||
234 | PB1176 platform. | ||
235 | |||
131 | endchoice | 236 | endchoice |
132 | 237 | ||
133 | config EARLY_PRINTK | 238 | config EARLY_PRINTK |
@@ -146,18 +251,6 @@ config OC_ETM | |||
146 | buffer driver that will allow you to collect traces of the | 251 | buffer driver that will allow you to collect traces of the |
147 | kernel code. | 252 | kernel code. |
148 | 253 | ||
149 | config DEBUG_S3C_UART | ||
150 | depends on PLAT_SAMSUNG | ||
151 | int "S3C UART to use for low-level debug" | ||
152 | default "0" | ||
153 | help | ||
154 | Choice for UART for kernel low-level using S3C UARTS, | ||
155 | should be between zero and two. The port must have been | ||
156 | initialised by the boot-loader before use. | ||
157 | |||
158 | The uncompressor code port configuration is now handled | ||
159 | by CONFIG_S3C_LOWLEVEL_UART_PORT. | ||
160 | |||
161 | config ARM_KPROBES_TEST | 254 | config ARM_KPROBES_TEST |
162 | tristate "Kprobes test module" | 255 | tristate "Kprobes test module" |
163 | depends on KPROBES && MODULES | 256 | depends on KPROBES && MODULES |
diff --git a/arch/arm/mach-exynos4/hotplug.c b/arch/arm/mach-exynos4/hotplug.c index 7490789784c9..da70e7e39937 100644 --- a/arch/arm/mach-exynos4/hotplug.c +++ b/arch/arm/mach-exynos4/hotplug.c | |||
@@ -75,7 +75,7 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious) | |||
75 | : | 75 | : |
76 | : "memory", "cc"); | 76 | : "memory", "cc"); |
77 | 77 | ||
78 | if (pen_release == cpu) { | 78 | if (pen_release == cpu_logical_map(cpu)) { |
79 | /* | 79 | /* |
80 | * OK, proper wakeup, we're done | 80 | * OK, proper wakeup, we're done |
81 | */ | 81 | */ |
diff --git a/arch/arm/mach-exynos4/platsmp.c b/arch/arm/mach-exynos4/platsmp.c index 782dcf11d234..05595407e9ff 100644 --- a/arch/arm/mach-exynos4/platsmp.c +++ b/arch/arm/mach-exynos4/platsmp.c | |||
@@ -132,7 +132,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
132 | * Note that "pen_release" is the hardware CPU ID, whereas | 132 | * Note that "pen_release" is the hardware CPU ID, whereas |
133 | * "cpu" is Linux's internal ID. | 133 | * "cpu" is Linux's internal ID. |
134 | */ | 134 | */ |
135 | write_pen_release(cpu); | 135 | write_pen_release(cpu_logical_map(cpu)); |
136 | 136 | ||
137 | if (!(__raw_readl(S5P_ARM_CORE1_STATUS) & S5P_CORE_LOCAL_PWR_EN)) { | 137 | if (!(__raw_readl(S5P_ARM_CORE1_STATUS) & S5P_CORE_LOCAL_PWR_EN)) { |
138 | __raw_writel(S5P_CORE_LOCAL_PWR_EN, | 138 | __raw_writel(S5P_CORE_LOCAL_PWR_EN, |
diff --git a/arch/arm/mach-msm/hotplug.c b/arch/arm/mach-msm/hotplug.c index 5a31f70dfb8e..41c252de0215 100644 --- a/arch/arm/mach-msm/hotplug.c +++ b/arch/arm/mach-msm/hotplug.c | |||
@@ -37,7 +37,7 @@ static inline void platform_do_lowpower(unsigned int cpu) | |||
37 | : | 37 | : |
38 | : "memory", "cc"); | 38 | : "memory", "cc"); |
39 | 39 | ||
40 | if (pen_release == cpu) { | 40 | if (pen_release == cpu_logical_map(cpu)) { |
41 | /* | 41 | /* |
42 | * OK, proper wakeup, we're done | 42 | * OK, proper wakeup, we're done |
43 | */ | 43 | */ |
diff --git a/arch/arm/mach-msm/platsmp.c b/arch/arm/mach-msm/platsmp.c index 727659520912..fdec58aaa35c 100644 --- a/arch/arm/mach-msm/platsmp.c +++ b/arch/arm/mach-msm/platsmp.c | |||
@@ -117,7 +117,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
117 | * Note that "pen_release" is the hardware CPU ID, whereas | 117 | * Note that "pen_release" is the hardware CPU ID, whereas |
118 | * "cpu" is Linux's internal ID. | 118 | * "cpu" is Linux's internal ID. |
119 | */ | 119 | */ |
120 | pen_release = cpu; | 120 | pen_release = cpu_logical_map(cpu); |
121 | __cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release)); | 121 | __cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release)); |
122 | outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1)); | 122 | outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1)); |
123 | 123 | ||
diff --git a/arch/arm/mach-mxs/include/mach/debug-macro.S b/arch/arm/mach-mxs/include/mach/debug-macro.S index 714570d83668..90c6b7836ad3 100644 --- a/arch/arm/mach-mxs/include/mach/debug-macro.S +++ b/arch/arm/mach-mxs/include/mach/debug-macro.S | |||
@@ -14,17 +14,9 @@ | |||
14 | #include <mach/mx23.h> | 14 | #include <mach/mx23.h> |
15 | #include <mach/mx28.h> | 15 | #include <mach/mx28.h> |
16 | 16 | ||
17 | #ifdef CONFIG_SOC_IMX23 | 17 | #ifdef CONFIG_DEBUG_IMX23_UART |
18 | #ifdef UART_PADDR | ||
19 | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | ||
20 | #endif | ||
21 | #define UART_PADDR MX23_DUART_BASE_ADDR | 18 | #define UART_PADDR MX23_DUART_BASE_ADDR |
22 | #endif | 19 | #elif defined (CONFIG_DEBUG_IMX28_UART) |
23 | |||
24 | #ifdef CONFIG_SOC_IMX28 | ||
25 | #ifdef UART_PADDR | ||
26 | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | ||
27 | #endif | ||
28 | #define UART_PADDR MX28_DUART_BASE_ADDR | 20 | #define UART_PADDR MX28_DUART_BASE_ADDR |
29 | #endif | 21 | #endif |
30 | 22 | ||
diff --git a/arch/arm/mach-realview/hotplug.c b/arch/arm/mach-realview/hotplug.c index a87523d095e6..ac1aed2a8da4 100644 --- a/arch/arm/mach-realview/hotplug.c +++ b/arch/arm/mach-realview/hotplug.c | |||
@@ -69,7 +69,7 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious) | |||
69 | : | 69 | : |
70 | : "memory", "cc"); | 70 | : "memory", "cc"); |
71 | 71 | ||
72 | if (pen_release == cpu) { | 72 | if (pen_release == cpu_logical_map(cpu)) { |
73 | /* | 73 | /* |
74 | * OK, proper wakeup, we're done | 74 | * OK, proper wakeup, we're done |
75 | */ | 75 | */ |
diff --git a/arch/arm/mach-realview/include/mach/debug-macro.S b/arch/arm/mach-realview/include/mach/debug-macro.S index fb4901c4ef04..8cc372dc66a8 100644 --- a/arch/arm/mach-realview/include/mach/debug-macro.S +++ b/arch/arm/mach-realview/include/mach/debug-macro.S | |||
@@ -10,23 +10,10 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #if defined(CONFIG_MACH_REALVIEW_EB) || \ | 13 | #ifdef CONFIG_DEBUG_REALVIEW_STD_PORT |
14 | defined(CONFIG_MACH_REALVIEW_PB11MP) || \ | ||
15 | defined(CONFIG_MACH_REALVIEW_PBA8) || \ | ||
16 | defined(CONFIG_MACH_REALVIEW_PBX) | ||
17 | #ifndef DEBUG_LL_UART_OFFSET | ||
18 | #define DEBUG_LL_UART_OFFSET 0x00009000 | 14 | #define DEBUG_LL_UART_OFFSET 0x00009000 |
19 | #elif DEBUG_LL_UART_OFFSET != 0x00009000 | 15 | #elif defined(CONFIG_DEBUG_REALVIEW_PB1176_PORT) |
20 | #warning "DEBUG_LL_UART_OFFSET already defined to a different value" | ||
21 | #endif | ||
22 | #endif | ||
23 | |||
24 | #ifdef CONFIG_MACH_REALVIEW_PB1176 | ||
25 | #ifndef DEBUG_LL_UART_OFFSET | ||
26 | #define DEBUG_LL_UART_OFFSET 0x0010c000 | 16 | #define DEBUG_LL_UART_OFFSET 0x0010c000 |
27 | #elif DEBUG_LL_UART_OFFSET != 0x0010c000 | ||
28 | #warning "DEBUG_LL_UART_OFFSET already defined to a different value" | ||
29 | #endif | ||
30 | #endif | 17 | #endif |
31 | 18 | ||
32 | #ifndef DEBUG_LL_UART_OFFSET | 19 | #ifndef DEBUG_LL_UART_OFFSET |
diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index 3ffdbc92ba82..be1ade76ccc8 100644 --- a/arch/arm/mach-shmobile/smp-sh73a0.c +++ b/arch/arm/mach-shmobile/smp-sh73a0.c | |||
@@ -74,6 +74,8 @@ void __cpuinit sh73a0_secondary_init(unsigned int cpu) | |||
74 | 74 | ||
75 | int __cpuinit sh73a0_boot_secondary(unsigned int cpu) | 75 | int __cpuinit sh73a0_boot_secondary(unsigned int cpu) |
76 | { | 76 | { |
77 | cpu = cpu_logical_map(cpu); | ||
78 | |||
77 | /* enable cache coherency */ | 79 | /* enable cache coherency */ |
78 | modify_scu_cpu_psr(0, 3 << (cpu * 8)); | 80 | modify_scu_cpu_psr(0, 3 << (cpu * 8)); |
79 | 81 | ||
@@ -87,6 +89,8 @@ int __cpuinit sh73a0_boot_secondary(unsigned int cpu) | |||
87 | 89 | ||
88 | void __init sh73a0_smp_prepare_cpus(void) | 90 | void __init sh73a0_smp_prepare_cpus(void) |
89 | { | 91 | { |
92 | int cpu = cpu_logical_map(0); | ||
93 | |||
90 | scu_enable(scu_base_addr()); | 94 | scu_enable(scu_base_addr()); |
91 | 95 | ||
92 | /* Map the reset vector (in headsmp.S) */ | 96 | /* Map the reset vector (in headsmp.S) */ |
@@ -94,5 +98,5 @@ void __init sh73a0_smp_prepare_cpus(void) | |||
94 | __raw_writel(__pa(shmobile_secondary_vector), __io(SBAR)); | 98 | __raw_writel(__pa(shmobile_secondary_vector), __io(SBAR)); |
95 | 99 | ||
96 | /* enable cache coherency on CPU0 */ | 100 | /* enable cache coherency on CPU0 */ |
97 | modify_scu_cpu_psr(0, 3 << (0 * 8)); | 101 | modify_scu_cpu_psr(0, 3 << (cpu * 8)); |
98 | } | 102 | } |
diff --git a/arch/arm/mach-ux500/hotplug.c b/arch/arm/mach-ux500/hotplug.c index dd8037ebccf8..572015e57cd9 100644 --- a/arch/arm/mach-ux500/hotplug.c +++ b/arch/arm/mach-ux500/hotplug.c | |||
@@ -24,7 +24,7 @@ static inline void platform_do_lowpower(unsigned int cpu) | |||
24 | for (;;) { | 24 | for (;;) { |
25 | __asm__ __volatile__("dsb\n\t" "wfi\n\t" | 25 | __asm__ __volatile__("dsb\n\t" "wfi\n\t" |
26 | : : : "memory"); | 26 | : : : "memory"); |
27 | if (pen_release == cpu) { | 27 | if (pen_release == cpu_logical_map(cpu)) { |
28 | /* | 28 | /* |
29 | * OK, proper wakeup, we're done | 29 | * OK, proper wakeup, we're done |
30 | */ | 30 | */ |
diff --git a/arch/arm/mach-ux500/platsmp.c b/arch/arm/mach-ux500/platsmp.c index eb5199102cfa..a19e398dade3 100644 --- a/arch/arm/mach-ux500/platsmp.c +++ b/arch/arm/mach-ux500/platsmp.c | |||
@@ -96,7 +96,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
96 | * the holding pen - release it, then wait for it to flag | 96 | * the holding pen - release it, then wait for it to flag |
97 | * that it has been released by resetting pen_release. | 97 | * that it has been released by resetting pen_release. |
98 | */ | 98 | */ |
99 | write_pen_release(cpu); | 99 | write_pen_release(cpu_logical_map(cpu)); |
100 | 100 | ||
101 | gic_raise_softirq(cpumask_of(cpu), 1); | 101 | gic_raise_softirq(cpumask_of(cpu), 1); |
102 | 102 | ||
diff --git a/arch/arm/mach-vexpress/hotplug.c b/arch/arm/mach-vexpress/hotplug.c index 3668cf91d2de..813ee08f96e6 100644 --- a/arch/arm/mach-vexpress/hotplug.c +++ b/arch/arm/mach-vexpress/hotplug.c | |||
@@ -65,7 +65,7 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious) | |||
65 | for (;;) { | 65 | for (;;) { |
66 | wfi(); | 66 | wfi(); |
67 | 67 | ||
68 | if (pen_release == cpu) { | 68 | if (pen_release == cpu_logical_map(cpu)) { |
69 | /* | 69 | /* |
70 | * OK, proper wakeup, we're done | 70 | * OK, proper wakeup, we're done |
71 | */ | 71 | */ |
diff --git a/arch/arm/plat-mxc/include/mach/debug-macro.S b/arch/arm/plat-mxc/include/mach/debug-macro.S index a3045937fc2f..72986013c1fb 100644 --- a/arch/arm/plat-mxc/include/mach/debug-macro.S +++ b/arch/arm/plat-mxc/include/mach/debug-macro.S | |||
@@ -12,43 +12,17 @@ | |||
12 | */ | 12 | */ |
13 | #include <mach/hardware.h> | 13 | #include <mach/hardware.h> |
14 | 14 | ||
15 | #ifdef CONFIG_SOC_IMX1 | 15 | #ifdef CONFIG_DEBUG_IMX1_UART |
16 | #define UART_PADDR MX1_UART1_BASE_ADDR | 16 | #define UART_PADDR MX1_UART1_BASE_ADDR |
17 | #endif | 17 | #elif defined (CONFIG_DEBUG_IMX25_UART) |
18 | |||
19 | #ifdef CONFIG_SOC_IMX25 | ||
20 | #ifdef UART_PADDR | ||
21 | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | ||
22 | #endif | ||
23 | #define UART_PADDR MX25_UART1_BASE_ADDR | 18 | #define UART_PADDR MX25_UART1_BASE_ADDR |
24 | #endif | 19 | #elif defined (CONFIG_DEBUG_IMX21_IMX27_UART) |
25 | |||
26 | #if defined(CONFIG_SOC_IMX21) || defined (CONFIG_SOC_IMX27) | ||
27 | #ifdef UART_PADDR | ||
28 | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | ||
29 | #endif | ||
30 | #define UART_PADDR MX2x_UART1_BASE_ADDR | 20 | #define UART_PADDR MX2x_UART1_BASE_ADDR |
31 | #endif | 21 | #elif defined (CONFIG_DEBUG_IMX31_IMX35_UART) |
32 | |||
33 | #if defined(CONFIG_SOC_IMX31) || defined(CONFIG_SOC_IMX35) | ||
34 | #ifdef UART_PADDR | ||
35 | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | ||
36 | #endif | ||
37 | #define UART_PADDR MX3x_UART1_BASE_ADDR | 22 | #define UART_PADDR MX3x_UART1_BASE_ADDR |
38 | #endif | 23 | #elif defined (CONFIG_DEBUG_IMX51_UART) |
39 | |||
40 | #ifdef CONFIG_SOC_IMX51 | ||
41 | #ifdef UART_PADDR | ||
42 | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | ||
43 | #endif | ||
44 | #define UART_PADDR MX51_UART1_BASE_ADDR | 24 | #define UART_PADDR MX51_UART1_BASE_ADDR |
45 | #endif | 25 | #elif defined (CONFIG_DEBUG_IMX50_IMX53_UART) |
46 | |||
47 | /* iMX50/53 have same addresses, but not iMX51 */ | ||
48 | #if defined(CONFIG_SOC_IMX50) || defined(CONFIG_SOC_IMX53) | ||
49 | #ifdef UART_PADDR | ||
50 | #error "CONFIG_DEBUG_LL is incompatible with multiple archs" | ||
51 | #endif | ||
52 | #define UART_PADDR MX53_UART1_BASE_ADDR | 26 | #define UART_PADDR MX53_UART1_BASE_ADDR |
53 | #endif | 27 | #endif |
54 | 28 | ||
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig index dffa37bc4a0b..3895f9aff0dc 100644 --- a/arch/arm/plat-samsung/Kconfig +++ b/arch/arm/plat-samsung/Kconfig | |||
@@ -362,4 +362,11 @@ config SAMSUNG_PD | |||
362 | help | 362 | help |
363 | Say Y here if you want to control Power Domain by Runtime PM. | 363 | Say Y here if you want to control Power Domain by Runtime PM. |
364 | 364 | ||
365 | config DEBUG_S3C_UART | ||
366 | depends on PLAT_SAMSUNG | ||
367 | int | ||
368 | default "0" if DEBUG_S3C_UART0 | ||
369 | default "1" if DEBUG_S3C_UART1 | ||
370 | default "2" if DEBUG_S3C_UART2 | ||
371 | |||
365 | endif | 372 | endif |
diff --git a/arch/arm/plat-versatile/platsmp.c b/arch/arm/plat-versatile/platsmp.c index 51ecfea09b27..92f18d372b69 100644 --- a/arch/arm/plat-versatile/platsmp.c +++ b/arch/arm/plat-versatile/platsmp.c | |||
@@ -77,7 +77,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) | |||
77 | * since we haven't sent them a soft interrupt, they shouldn't | 77 | * since we haven't sent them a soft interrupt, they shouldn't |
78 | * be there. | 78 | * be there. |
79 | */ | 79 | */ |
80 | write_pen_release(cpu); | 80 | write_pen_release(cpu_logical_map(cpu)); |
81 | 81 | ||
82 | /* | 82 | /* |
83 | * Send the secondary CPU a soft interrupt, thereby causing | 83 | * Send the secondary CPU a soft interrupt, thereby causing |