aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/Kconfig
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-09-04 05:47:48 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-10-04 15:23:36 -0400
commitf00ec48fadf5e37e7889f14cff900aa70d18b644 (patch)
tree421cbce97167a78532aa825624f380caade3c0d2 /arch/arm/Kconfig
parent067173526c3bbc2eaeefcf6b7b2a9d998b9e8042 (diff)
ARM: Allow SMP kernels to boot on UP systems
UP systems do not implement all the instructions that SMP systems have, so in order to boot a SMP kernel on a UP system, we need to rewrite parts of the kernel. Do this using an 'alternatives' scheme, where the kernel code and data is modified prior to initialization to replace the SMP instructions, thereby rendering the problematical code ineffectual. We use the linker to generate a list of 32-bit word locations and their replacement values, and run through these replacements when we detect a UP system. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/Kconfig')
-rw-r--r--arch/arm/Kconfig13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 6a939e64cbd..f6cdc21b562 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1191,6 +1191,19 @@ config SMP
1191 1191
1192 If you don't know what to do here, say N. 1192 If you don't know what to do here, say N.
1193 1193
1194config SMP_ON_UP
1195 bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"
1196 depends on EXPERIMENTAL
1197 depends on SMP && !XIP && !THUMB2_KERNEL
1198 default y
1199 help
1200 SMP kernels contain instructions which fail on non-SMP processors.
1201 Enabling this option allows the kernel to modify itself to make
1202 these instructions safe. Disabling it allows about 1K of space
1203 savings.
1204
1205 If you don't know what to do here, say Y.
1206
1194config HAVE_ARM_SCU 1207config HAVE_ARM_SCU
1195 bool 1208 bool
1196 depends on SMP 1209 depends on SMP