diff options
28 files changed, 191 insertions, 189 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 1fd3f280b584..ababf41517d6 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -7,7 +7,7 @@ config ARM | |||
| 7 | select HAVE_MEMBLOCK | 7 | select HAVE_MEMBLOCK |
| 8 | select RTC_LIB | 8 | select RTC_LIB |
| 9 | select SYS_SUPPORTS_APM_EMULATION | 9 | select SYS_SUPPORTS_APM_EMULATION |
| 10 | select GENERIC_ATOMIC64 if (!CPU_32v6K || !AEABI) | 10 | select GENERIC_ATOMIC64 if (CPU_V6 || !CPU_32v6K || !AEABI) |
| 11 | select HAVE_OPROFILE if (HAVE_PERF_EVENTS) | 11 | select HAVE_OPROFILE if (HAVE_PERF_EVENTS) |
| 12 | select HAVE_ARCH_KGDB | 12 | select HAVE_ARCH_KGDB |
| 13 | select HAVE_KPROBES if (!XIP_KERNEL && !THUMB2_KERNEL) | 13 | select HAVE_KPROBES if (!XIP_KERNEL && !THUMB2_KERNEL) |
| @@ -24,7 +24,7 @@ config ARM | |||
| 24 | select HAVE_PERF_EVENTS | 24 | select HAVE_PERF_EVENTS |
| 25 | select PERF_USE_VMALLOC | 25 | select PERF_USE_VMALLOC |
| 26 | select HAVE_REGS_AND_STACK_ACCESS_API | 26 | select HAVE_REGS_AND_STACK_ACCESS_API |
| 27 | select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V7)) | 27 | select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) |
| 28 | select HAVE_C_RECORDMCOUNT | 28 | select HAVE_C_RECORDMCOUNT |
| 29 | select HAVE_GENERIC_HARDIRQS | 29 | select HAVE_GENERIC_HARDIRQS |
| 30 | select HAVE_SPARSE_IRQ | 30 | select HAVE_SPARSE_IRQ |
| @@ -456,6 +456,7 @@ config ARCH_IXP4XX | |||
| 456 | 456 | ||
| 457 | config ARCH_DOVE | 457 | config ARCH_DOVE |
| 458 | bool "Marvell Dove" | 458 | bool "Marvell Dove" |
| 459 | select CPU_V6K | ||
| 459 | select PCI | 460 | select PCI |
| 460 | select ARCH_REQUIRE_GPIOLIB | 461 | select ARCH_REQUIRE_GPIOLIB |
| 461 | select GENERIC_CLOCKEVENTS | 462 | select GENERIC_CLOCKEVENTS |
| @@ -1059,7 +1060,7 @@ config XSCALE_PMU | |||
| 1059 | default y | 1060 | default y |
| 1060 | 1061 | ||
| 1061 | config CPU_HAS_PMU | 1062 | config CPU_HAS_PMU |
| 1062 | depends on (CPU_V6 || CPU_V7 || XSCALE_PMU) && \ | 1063 | depends on (CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && \ |
| 1063 | (!ARCH_OMAP3 || OMAP3_EMU) | 1064 | (!ARCH_OMAP3 || OMAP3_EMU) |
| 1064 | default y | 1065 | default y |
| 1065 | bool | 1066 | bool |
| @@ -1075,7 +1076,7 @@ endif | |||
| 1075 | 1076 | ||
| 1076 | config ARM_ERRATA_411920 | 1077 | config ARM_ERRATA_411920 |
| 1077 | bool "ARM errata: Invalidation of the Instruction Cache operation can fail" | 1078 | bool "ARM errata: Invalidation of the Instruction Cache operation can fail" |
| 1078 | depends on CPU_V6 | 1079 | depends on CPU_V6 || CPU_V6K |
| 1079 | help | 1080 | help |
| 1080 | Invalidation of the Instruction Cache operation can | 1081 | Invalidation of the Instruction Cache operation can |
| 1081 | fail. This erratum is present in 1136 (before r1p4), 1156 and 1176. | 1082 | fail. This erratum is present in 1136 (before r1p4), 1156 and 1176. |
| @@ -1318,6 +1319,7 @@ source "kernel/time/Kconfig" | |||
| 1318 | config SMP | 1319 | config SMP |
| 1319 | bool "Symmetric Multi-Processing (EXPERIMENTAL)" | 1320 | bool "Symmetric Multi-Processing (EXPERIMENTAL)" |
| 1320 | depends on EXPERIMENTAL | 1321 | depends on EXPERIMENTAL |
| 1322 | depends on CPU_V6K || CPU_V7 | ||
| 1321 | depends on GENERIC_CLOCKEVENTS | 1323 | depends on GENERIC_CLOCKEVENTS |
| 1322 | depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \ | 1324 | depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \ |
| 1323 | MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \ | 1325 | MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || \ |
| @@ -1429,7 +1431,7 @@ config HZ | |||
| 1429 | 1431 | ||
| 1430 | config THUMB2_KERNEL | 1432 | config THUMB2_KERNEL |
| 1431 | bool "Compile the kernel in Thumb-2 mode (EXPERIMENTAL)" | 1433 | bool "Compile the kernel in Thumb-2 mode (EXPERIMENTAL)" |
| 1432 | depends on CPU_V7 && !CPU_V6 && EXPERIMENTAL | 1434 | depends on CPU_V7 && !CPU_V6 && !CPU_V6K && EXPERIMENTAL |
| 1433 | select AEABI | 1435 | select AEABI |
| 1434 | select ARM_ASM_UNIFIED | 1436 | select ARM_ASM_UNIFIED |
| 1435 | help | 1437 | help |
| @@ -1963,7 +1965,7 @@ config FPE_FASTFPE | |||
| 1963 | 1965 | ||
| 1964 | config VFP | 1966 | config VFP |
| 1965 | bool "VFP-format floating point maths" | 1967 | bool "VFP-format floating point maths" |
| 1966 | depends on CPU_V6 || CPU_ARM926T || CPU_V7 || CPU_FEROCEON | 1968 | depends on CPU_V6 || CPU_V6K || CPU_ARM926T || CPU_V7 || CPU_FEROCEON |
| 1967 | help | 1969 | help |
| 1968 | Say Y to include VFP support code in the kernel. This is needed | 1970 | Say Y to include VFP support code in the kernel. This is needed |
| 1969 | if your hardware includes a VFP unit. | 1971 | if your hardware includes a VFP unit. |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 55eca9ed7604..1e20c414d5cf 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
| @@ -89,6 +89,7 @@ tune-$(CONFIG_CPU_XSCALE) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) | |||
| 89 | tune-$(CONFIG_CPU_XSC3) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale | 89 | tune-$(CONFIG_CPU_XSC3) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale |
| 90 | tune-$(CONFIG_CPU_FEROCEON) :=$(call cc-option,-mtune=marvell-f,-mtune=xscale) | 90 | tune-$(CONFIG_CPU_FEROCEON) :=$(call cc-option,-mtune=marvell-f,-mtune=xscale) |
| 91 | tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) | 91 | tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) |
| 92 | tune-$(CONFIG_CPU_V6K) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm) | ||
| 92 | 93 | ||
| 93 | ifeq ($(CONFIG_AEABI),y) | 94 | ifeq ($(CONFIG_AEABI),y) |
| 94 | CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork | 95 | CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork |
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 39859216af00..84ac4d656310 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | 21 | ||
| 22 | #if defined(CONFIG_DEBUG_ICEDCC) | 22 | #if defined(CONFIG_DEBUG_ICEDCC) |
| 23 | 23 | ||
| 24 | #ifdef CONFIG_CPU_V6 | 24 | #if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) |
| 25 | .macro loadsp, rb, tmp | 25 | .macro loadsp, rb, tmp |
| 26 | .endm | 26 | .endm |
| 27 | .macro writeb, ch, rb | 27 | .macro writeb, ch, rb |
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index e653a6d3c8d9..4657e877bf8f 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
| @@ -36,7 +36,7 @@ extern void error(char *x); | |||
| 36 | 36 | ||
| 37 | #ifdef CONFIG_DEBUG_ICEDCC | 37 | #ifdef CONFIG_DEBUG_ICEDCC |
| 38 | 38 | ||
| 39 | #ifdef CONFIG_CPU_V6 | 39 | #if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K) |
| 40 | 40 | ||
| 41 | static void icedcc_putc(int ch) | 41 | static void icedcc_putc(int ch) |
| 42 | { | 42 | { |
diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h index 7b1bb2bbaf88..af54ed102f5f 100644 --- a/arch/arm/include/asm/bitops.h +++ b/arch/arm/include/asm/bitops.h | |||
| @@ -149,14 +149,18 @@ ____atomic_test_and_change_bit(unsigned int bit, volatile unsigned long *p) | |||
| 149 | */ | 149 | */ |
| 150 | 150 | ||
| 151 | /* | 151 | /* |
| 152 | * Native endian assembly bitops. nr = 0 -> word 0 bit 0. | ||
| 153 | */ | ||
| 154 | extern void _set_bit(int nr, volatile unsigned long * p); | ||
| 155 | extern void _clear_bit(int nr, volatile unsigned long * p); | ||
| 156 | extern void _change_bit(int nr, volatile unsigned long * p); | ||
| 157 | extern int _test_and_set_bit(int nr, volatile unsigned long * p); | ||
| 158 | extern int _test_and_clear_bit(int nr, volatile unsigned long * p); | ||
| 159 | extern int _test_and_change_bit(int nr, volatile unsigned long * p); | ||
| 160 | |||
| 161 | /* | ||
| 152 | * Little endian assembly bitops. nr = 0 -> byte 0 bit 0. | 162 | * Little endian assembly bitops. nr = 0 -> byte 0 bit 0. |
| 153 | */ | 163 | */ |
| 154 | extern void _set_bit_le(int nr, volatile unsigned long * p); | ||
| 155 | extern void _clear_bit_le(int nr, volatile unsigned long * p); | ||
| 156 | extern void _change_bit_le(int nr, volatile unsigned long * p); | ||
| 157 | extern int _test_and_set_bit_le(int nr, volatile unsigned long * p); | ||
| 158 | extern int _test_and_clear_bit_le(int nr, volatile unsigned long * p); | ||
| 159 | extern int _test_and_change_bit_le(int nr, volatile unsigned long * p); | ||
| 160 | extern int _find_first_zero_bit_le(const void * p, unsigned size); | 164 | extern int _find_first_zero_bit_le(const void * p, unsigned size); |
| 161 | extern int _find_next_zero_bit_le(const void * p, int size, int offset); | 165 | |
