[ARM SMP] Add configuration option for ARMv6K processors
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Thu, 3 Nov 2005 15:48:21 +0000 (15:48 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 3 Nov 2005 15:48:21 +0000 (15:48 +0000)
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>
arch/arm/Makefile
arch/arm/lib/bitops.h
arch/arm/mm/Kconfig

index d80749ae2a7e545d97b7399260adf713f10c5d62..c422759438d5c0891453394957fcd142386c4120 100644 (file)
@@ -38,6 +38,7 @@ comma = ,
 # macro, but instead defines a whole series of macros which makes
 # testing for a specific architecture or later rather impossible.
 arch-$(CONFIG_CPU_32v6)                :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
+arch-$(CONFIG_CPU_32v6K)       :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k)
 arch-$(CONFIG_CPU_32v5)                :=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4)
 arch-$(CONFIG_CPU_32v4)                :=-D__LINUX_ARM_ARCH__=4 -march=armv4
 arch-$(CONFIG_CPU_32v3)                :=-D__LINUX_ARM_ARCH__=3 -march=armv3
index 64a988c1ad447739ccf7a67d4b4c0ebdb7e3f6d2..f35d91fbe11742dcd91d0ad9fdf76d796f3b7548 100644 (file)
@@ -1,6 +1,6 @@
 #include <linux/config.h>
 
-#if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_CPU_MPCORE)
+#if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_CPU_32v6K)
        .macro  bitop, instr
        mov     r2, #1
        and     r3, r0, #7              @ Get bit offset
index 5568403e984df005941f043495ebe5af4a518c5b..e3c14d6b4328fdba14c1b58485142d8b20266325 100644 (file)
@@ -250,6 +250,18 @@ config CPU_V6
        select CPU_COPY_V6
        select CPU_TLB_V6
 
+# ARMv6k
+config CPU_32v6K
+       bool "Support ARM V6K processor extensions" if !SMP
+       depends on CPU_V6
+       default y if SMP
+       help
+         Say Y here if your ARMv6 processor supports the 'K' extension.
+         This enables the kernel to use some instructions not present
+         on previous processors, and as such a kernel build with this
+         enabled will not boot on processors with do not support these
+         instructions.
+
 # Figure out what processor architecture version we should be using.
 # This defines the compiler instruction set which depends on the machine type.
 config CPU_32v3