mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 10:57:46 +00:00
ARM: add CPU_THUMB_CAPABLE to indicate possible Thumb support
Clean up arch/arm/mm/Kconfig a little to provide a symbol which indicates whether the CPU may support the Thumb instruction set. This gets rid of the growing dependencies on ARM_THUMB, and also gives us a useful Kconfig symbol for choosing the kuser code. Reviewed-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
7ce7d89f48
commit
c466bda605
1 changed files with 26 additions and 5 deletions
|
@ -29,6 +29,7 @@ config CPU_ARM720T
|
||||||
select CPU_COPY_V4WT if MMU
|
select CPU_COPY_V4WT if MMU
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WT if MMU
|
select CPU_TLB_V4WT if MMU
|
||||||
help
|
help
|
||||||
A 32-bit RISC processor with 8kByte Cache, Write Buffer and
|
A 32-bit RISC processor with 8kByte Cache, Write Buffer and
|
||||||
|
@ -46,6 +47,7 @@ config CPU_ARM740T
|
||||||
select CPU_CACHE_V4
|
select CPU_CACHE_V4
|
||||||
select CPU_CP15_MPU
|
select CPU_CP15_MPU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
help
|
help
|
||||||
A 32-bit RISC processor with 8KB cache or 4KB variants,
|
A 32-bit RISC processor with 8KB cache or 4KB variants,
|
||||||
write buffer and MPU(Protection Unit) built around
|
write buffer and MPU(Protection Unit) built around
|
||||||
|
@ -79,6 +81,7 @@ config CPU_ARM920T
|
||||||
select CPU_COPY_V4WB if MMU
|
select CPU_COPY_V4WB if MMU
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
help
|
help
|
||||||
The ARM920T is licensed to be produced by numerous vendors,
|
The ARM920T is licensed to be produced by numerous vendors,
|
||||||
|
@ -97,6 +100,7 @@ config CPU_ARM922T
|
||||||
select CPU_COPY_V4WB if MMU
|
select CPU_COPY_V4WB if MMU
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
help
|
help
|
||||||
The ARM922T is a version of the ARM920T, but with smaller
|
The ARM922T is a version of the ARM920T, but with smaller
|
||||||
|
@ -116,6 +120,7 @@ config CPU_ARM925T
|
||||||
select CPU_COPY_V4WB if MMU
|
select CPU_COPY_V4WB if MMU
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
help
|
help
|
||||||
The ARM925T is a mix between the ARM920T and ARM926T, but with
|
The ARM925T is a mix between the ARM920T and ARM926T, but with
|
||||||
|
@ -134,6 +139,7 @@ config CPU_ARM926T
|
||||||
select CPU_COPY_V4WB if MMU
|
select CPU_COPY_V4WB if MMU
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
help
|
help
|
||||||
This is a variant of the ARM920. It has slightly different
|
This is a variant of the ARM920. It has slightly different
|
||||||
|
@ -170,6 +176,7 @@ config CPU_ARM940T
|
||||||
select CPU_CACHE_VIVT
|
select CPU_CACHE_VIVT
|
||||||
select CPU_CP15_MPU
|
select CPU_CP15_MPU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
help
|
help
|
||||||
ARM940T is a member of the ARM9TDMI family of general-
|
ARM940T is a member of the ARM9TDMI family of general-
|
||||||
purpose microprocessors with MPU and separate 4KB
|
purpose microprocessors with MPU and separate 4KB
|
||||||
|
@ -188,6 +195,7 @@ config CPU_ARM946E
|
||||||
select CPU_CACHE_VIVT
|
select CPU_CACHE_VIVT
|
||||||
select CPU_CP15_MPU
|
select CPU_CP15_MPU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
help
|
help
|
||||||
ARM946E-S is a member of the ARM9E-S family of high-
|
ARM946E-S is a member of the ARM9E-S family of high-
|
||||||
performance, 32-bit system-on-chip processor solutions.
|
performance, 32-bit system-on-chip processor solutions.
|
||||||
|
@ -206,6 +214,7 @@ config CPU_ARM1020
|
||||||
select CPU_COPY_V4WB if MMU
|
select CPU_COPY_V4WB if MMU
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
help
|
help
|
||||||
The ARM1020 is the 32K cached version of the ARM10 processor,
|
The ARM1020 is the 32K cached version of the ARM10 processor,
|
||||||
|
@ -225,6 +234,7 @@ config CPU_ARM1020E
|
||||||
select CPU_COPY_V4WB if MMU
|
select CPU_COPY_V4WB if MMU
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
|
|
||||||
# ARM1022E
|
# ARM1022E
|
||||||
|
@ -236,6 +246,7 @@ config CPU_ARM1022
|
||||||
select CPU_COPY_V4WB if MMU # can probably do better
|
select CPU_COPY_V4WB if MMU # can probably do better
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
help
|
help
|
||||||
The ARM1022E is an implementation of the ARMv5TE architecture
|
The ARM1022E is an implementation of the ARMv5TE architecture
|
||||||
|
@ -254,6 +265,7 @@ config CPU_ARM1026
|
||||||
select CPU_COPY_V4WB if MMU # can probably do better
|
select CPU_COPY_V4WB if MMU # can probably do better
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
help
|
help
|
||||||
The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
|
The ARM1026EJ-S is an implementation of the ARMv5TEJ architecture
|
||||||
|
@ -302,6 +314,7 @@ config CPU_XSCALE
|
||||||
select CPU_CACHE_VIVT
|
select CPU_CACHE_VIVT
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
|
|
||||||
# XScale Core Version 3
|
# XScale Core Version 3
|
||||||
|
@ -312,6 +325,7 @@ config CPU_XSC3
|
||||||
select CPU_CACHE_VIVT
|
select CPU_CACHE_VIVT
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
select IO_36
|
select IO_36
|
||||||
|
|
||||||
|
@ -324,6 +338,7 @@ config CPU_MOHAWK
|
||||||
select CPU_COPY_V4WB if MMU
|
select CPU_COPY_V4WB if MMU
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V4WBI if MMU
|
select CPU_TLB_V4WBI if MMU
|
||||||
|
|
||||||
# Feroceon
|
# Feroceon
|
||||||
|
@ -335,6 +350,7 @@ config CPU_FEROCEON
|
||||||
select CPU_COPY_FEROCEON if MMU
|
select CPU_COPY_FEROCEON if MMU
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_PABRT_LEGACY
|
select CPU_PABRT_LEGACY
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_FEROCEON if MMU
|
select CPU_TLB_FEROCEON if MMU
|
||||||
|
|
||||||
config CPU_FEROCEON_OLD_ID
|
config CPU_FEROCEON_OLD_ID
|
||||||
|
@ -367,6 +383,7 @@ config CPU_V6
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_HAS_ASID if MMU
|
select CPU_HAS_ASID if MMU
|
||||||
select CPU_PABRT_V6
|
select CPU_PABRT_V6
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V6 if MMU
|
select CPU_TLB_V6 if MMU
|
||||||
|
|
||||||
# ARMv6k
|
# ARMv6k
|
||||||
|
@ -381,6 +398,7 @@ config CPU_V6K
|
||||||
select CPU_CP15_MMU
|
select CPU_CP15_MMU
|
||||||
select CPU_HAS_ASID if MMU
|
select CPU_HAS_ASID if MMU
|
||||||
select CPU_PABRT_V6
|
select CPU_PABRT_V6
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V6 if MMU
|
select CPU_TLB_V6 if MMU
|
||||||
|
|
||||||
# ARMv7
|
# ARMv7
|
||||||
|
@ -396,6 +414,7 @@ config CPU_V7
|
||||||
select CPU_CP15_MPU if !MMU
|
select CPU_CP15_MPU if !MMU
|
||||||
select CPU_HAS_ASID if MMU
|
select CPU_HAS_ASID if MMU
|
||||||
select CPU_PABRT_V7
|
select CPU_PABRT_V7
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
select CPU_TLB_V7 if MMU
|
select CPU_TLB_V7 if MMU
|
||||||
|
|
||||||
# ARMv7M
|
# ARMv7M
|
||||||
|
@ -410,11 +429,17 @@ config CPU_V7M
|
||||||
|
|
||||||
config CPU_THUMBONLY
|
config CPU_THUMBONLY
|
||||||
bool
|
bool
|
||||||
|
select CPU_THUMB_CAPABLE
|
||||||
# There are no CPUs available with MMU that don't implement an ARM ISA:
|
# There are no CPUs available with MMU that don't implement an ARM ISA:
|
||||||
depends on !MMU
|
depends on !MMU
|
||||||
help
|
help
|
||||||
Select this if your CPU doesn't support the 32 bit ARM instructions.
|
Select this if your CPU doesn't support the 32 bit ARM instructions.
|
||||||
|
|
||||||
|
config CPU_THUMB_CAPABLE
|
||||||
|
bool
|
||||||
|
help
|
||||||
|
Select this if your CPU can support Thumb mode.
|
||||||
|
|
||||||
# Figure out what processor architecture version we should be using.
|
# Figure out what processor architecture version we should be using.
|
||||||
# This defines the compiler instruction set which depends on the machine type.
|
# This defines the compiler instruction set which depends on the machine type.
|
||||||
config CPU_32v3
|
config CPU_32v3
|
||||||
|
@ -655,11 +680,7 @@ config ARCH_DMA_ADDR_T_64BIT
|
||||||
|
|
||||||
config ARM_THUMB
|
config ARM_THUMB
|
||||||
bool "Support Thumb user binaries" if !CPU_THUMBONLY
|
bool "Support Thumb user binaries" if !CPU_THUMBONLY
|
||||||
depends on CPU_ARM720T || CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || \
|
depends on CPU_THUMB_CAPABLE
|
||||||
CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || \
|
|
||||||
CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
|
|
||||||
CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_V6 || CPU_V6K || \
|
|
||||||
CPU_V7 || CPU_FEROCEON || CPU_V7M
|
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
Say Y if you want to include kernel support for running user space
|
Say Y if you want to include kernel support for running user space
|
||||||
|
|
Loading…
Reference in a new issue