diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2005-11-03 10:48:21 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-11-03 10:48:21 -0500 |
commit | 4a5f79e7e65d24d2fa9eb6e6208672571704d337 (patch) | |
tree | 44364e64ba8cedf3fbc5c3bb5c79b669dba0c1fd /arch/arm | |
parent | 06024f217d607369f0ee0071034ebb03071d5fb2 (diff) |
[ARM SMP] Add configuration option for ARMv6K processors
The 'K' extension adds several new instructions to the ARMv6 ISA
which are primerily useful for SMP.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/lib/bitops.h | 2 | ||||
-rw-r--r-- | arch/arm/mm/Kconfig | 12 |
3 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index d80749ae2a7e..c422759438d5 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -38,6 +38,7 @@ comma = , | |||
38 | # macro, but instead defines a whole series of macros which makes | 38 | # macro, but instead defines a whole series of macros which makes |
39 | # testing for a specific architecture or later rather impossible. | 39 | # testing for a specific architecture or later rather impossible. |
40 | arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) | 40 | arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) |
41 | arch-$(CONFIG_CPU_32v6K) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k) | ||
41 | arch-$(CONFIG_CPU_32v5) :=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4) | 42 | arch-$(CONFIG_CPU_32v5) :=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4) |
42 | arch-$(CONFIG_CPU_32v4) :=-D__LINUX_ARM_ARCH__=4 -march=armv4 | 43 | arch-$(CONFIG_CPU_32v4) :=-D__LINUX_ARM_ARCH__=4 -march=armv4 |
43 | arch-$(CONFIG_CPU_32v3) :=-D__LINUX_ARM_ARCH__=3 -march=armv3 | 44 | arch-$(CONFIG_CPU_32v3) :=-D__LINUX_ARM_ARCH__=3 -march=armv3 |
diff --git a/arch/arm/lib/bitops.h b/arch/arm/lib/bitops.h index 64a988c1ad44..f35d91fbe117 100644 --- a/arch/arm/lib/bitops.h +++ b/arch/arm/lib/bitops.h | |||
@@ -1,6 +1,6 @@ | |||
1 | #include <linux/config.h> | 1 | #include <linux/config.h> |
2 | 2 | ||
3 | #if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_CPU_MPCORE) | 3 | #if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_CPU_32v6K) |
4 | .macro bitop, instr | 4 | .macro bitop, instr |
5 | mov r2, #1 | 5 | mov r2, #1 |
6 | and r3, r0, #7 @ Get bit offset | 6 | and r3, r0, #7 @ Get bit offset |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 5568403e984d..e3c14d6b4328 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -250,6 +250,18 @@ config CPU_V6 | |||
250 | select CPU_COPY_V6 | 250 | select CPU_COPY_V6 |
251 | select CPU_TLB_V6 | 251 | select CPU_TLB_V6 |
252 | 252 | ||
253 | # ARMv6k | ||
254 | config CPU_32v6K | ||
255 | bool "Support ARM V6K processor extensions" if !SMP | ||
256 | depends on CPU_V6 | ||
257 | default y if SMP | ||
258 | help | ||
259 | Say Y here if your ARMv6 processor supports the 'K' extension. | ||
260 | This enables the kernel to use some instructions not present | ||
261 | on previous processors, and as such a kernel build with this | ||
262 | enabled will not boot on processors with do not support these | ||
263 | instructions. | ||
264 | |||
253 | # Figure out what processor architecture version we should be using. | 265 | # Figure out what processor architecture version we should be using. |
254 | # This defines the compiler instruction set which depends on the machine type. | 266 | # This defines the compiler instruction set which depends on the machine type. |
255 | config CPU_32v3 | 267 | config CPU_32v3 |