913 lines
27 KiB
Plaintext
913 lines
27 KiB
Plaintext
# arm cpu features
|
|
config BR2_ARM_CPU_HAS_NEON
|
|
bool
|
|
|
|
# for some cores, NEON support is optional
|
|
config BR2_ARM_CPU_MAYBE_HAS_NEON
|
|
bool
|
|
|
|
# For some cores, the FPU is optional
|
|
config BR2_ARM_CPU_MAYBE_HAS_FPU
|
|
bool
|
|
|
|
config BR2_ARM_CPU_HAS_FPU
|
|
bool
|
|
|
|
# for some cores, VFPv2 is optional
|
|
config BR2_ARM_CPU_MAYBE_HAS_VFPV2
|
|
bool
|
|
select BR2_ARM_CPU_MAYBE_HAS_FPU
|
|
|
|
config BR2_ARM_CPU_HAS_VFPV2
|
|
bool
|
|
select BR2_ARM_CPU_HAS_FPU
|
|
|
|
# for some cores, VFPv3 is optional
|
|
config BR2_ARM_CPU_MAYBE_HAS_VFPV3
|
|
bool
|
|
select BR2_ARM_CPU_MAYBE_HAS_VFPV2
|
|
|
|
config BR2_ARM_CPU_HAS_VFPV3
|
|
bool
|
|
select BR2_ARM_CPU_HAS_VFPV2
|
|
|
|
# for some cores, VFPv4 is optional
|
|
config BR2_ARM_CPU_MAYBE_HAS_VFPV4
|
|
bool
|
|
select BR2_ARM_CPU_MAYBE_HAS_VFPV3
|
|
|
|
config BR2_ARM_CPU_HAS_VFPV4
|
|
bool
|
|
select BR2_ARM_CPU_HAS_VFPV3
|
|
|
|
# FPv4 is always optional
|
|
config BR2_ARM_CPU_MAYBE_HAS_FPV4
|
|
bool
|
|
select BR2_ARM_CPU_MAYBE_HAS_FPU
|
|
|
|
config BR2_ARM_CPU_HAS_FPV4
|
|
bool
|
|
select BR2_ARM_CPU_HAS_FPU
|
|
|
|
# FPv5 is always optional
|
|
config BR2_ARM_CPU_MAYBE_HAS_FPV5
|
|
bool
|
|
select BR2_ARM_CPU_MAYBE_HAS_FPV4
|
|
|
|
config BR2_ARM_CPU_HAS_FPV5
|
|
bool
|
|
select BR2_ARM_CPU_HAS_FPV4
|
|
|
|
config BR2_ARM_CPU_HAS_FP_ARMV8
|
|
bool
|
|
select BR2_ARM_CPU_HAS_VFPV4
|
|
|
|
config BR2_ARM_CPU_HAS_ARM
|
|
bool
|
|
|
|
config BR2_ARM_CPU_HAS_THUMB
|
|
bool
|
|
|
|
config BR2_ARM_CPU_HAS_THUMB2
|
|
bool
|
|
|
|
config BR2_ARM_CPU_ARMV4
|
|
bool
|
|
select BR2_USE_MMU
|
|
|
|
config BR2_ARM_CPU_ARMV5
|
|
bool
|
|
select BR2_USE_MMU
|
|
|
|
config BR2_ARM_CPU_ARMV6
|
|
bool
|
|
select BR2_USE_MMU
|
|
|
|
config BR2_ARM_CPU_ARMV7A
|
|
bool
|
|
select BR2_USE_MMU
|
|
|
|
config BR2_ARM_CPU_ARMV7M
|
|
bool
|
|
|
|
config BR2_ARM_CPU_ARMV8A
|
|
bool
|
|
select BR2_USE_MMU
|
|
|
|
choice
|
|
prompt "Target Architecture Variant"
|
|
default BR2_cortex_a53 if BR2_ARCH_IS_64
|
|
default BR2_arm926t
|
|
help
|
|
Specific CPU variant to use
|
|
|
|
if !BR2_ARCH_IS_64
|
|
comment "armv4 cores"
|
|
config BR2_arm920t
|
|
bool "arm920t"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_THUMB
|
|
select BR2_ARM_CPU_ARMV4
|
|
config BR2_arm922t
|
|
bool "arm922t"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_THUMB
|
|
select BR2_ARM_CPU_ARMV4
|
|
config BR2_fa526
|
|
bool "fa526/626"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_ARMV4
|
|
config BR2_strongarm
|
|
bool "strongarm sa110/sa1100"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_ARMV4
|
|
|
|
comment "armv5 cores"
|
|
config BR2_arm926t
|
|
bool "arm926t"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_MAYBE_HAS_VFPV2
|
|
select BR2_ARM_CPU_HAS_THUMB
|
|
select BR2_ARM_CPU_ARMV5
|
|
config BR2_xscale
|
|
bool "xscale"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_THUMB
|
|
select BR2_ARM_CPU_ARMV5
|
|
|
|
comment "armv6 cores"
|
|
config BR2_arm1136j_s
|
|
bool "arm1136j-s"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_THUMB
|
|
select BR2_ARM_CPU_ARMV6
|
|
config BR2_arm1136jf_s
|
|
bool "arm1136jf-s"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_VFPV2
|
|
select BR2_ARM_CPU_HAS_THUMB
|
|
select BR2_ARM_CPU_ARMV6
|
|
config BR2_arm1176jz_s
|
|
bool "arm1176jz-s"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_THUMB
|
|
select BR2_ARM_CPU_ARMV6
|
|
config BR2_arm1176jzf_s
|
|
bool "arm1176jzf-s"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_VFPV2
|
|
select BR2_ARM_CPU_HAS_THUMB
|
|
select BR2_ARM_CPU_ARMV6
|
|
config BR2_arm11mpcore
|
|
bool "mpcore"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_MAYBE_HAS_VFPV2
|
|
select BR2_ARM_CPU_HAS_THUMB
|
|
select BR2_ARM_CPU_ARMV6
|
|
|
|
comment "armv7a cores"
|
|
config BR2_cortex_a5
|
|
bool "cortex-A5"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_MAYBE_HAS_NEON
|
|
select BR2_ARM_CPU_MAYBE_HAS_VFPV4
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7A
|
|
config BR2_cortex_a7
|
|
bool "cortex-A7"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
select BR2_ARM_CPU_HAS_VFPV4
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7A
|
|
config BR2_cortex_a8
|
|
bool "cortex-A8"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
select BR2_ARM_CPU_HAS_VFPV3
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7A
|
|
config BR2_cortex_a9
|
|
bool "cortex-A9"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_MAYBE_HAS_NEON
|
|
select BR2_ARM_CPU_MAYBE_HAS_VFPV3
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7A
|
|
config BR2_cortex_a12
|
|
bool "cortex-A12"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
select BR2_ARM_CPU_HAS_VFPV4
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7A
|
|
config BR2_cortex_a15
|
|
bool "cortex-A15"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
select BR2_ARM_CPU_HAS_VFPV4
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7A
|
|
config BR2_cortex_a15_a7
|
|
bool "cortex-A15/A7 big.LITTLE"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
select BR2_ARM_CPU_HAS_VFPV4
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_4_9
|
|
config BR2_cortex_a17
|
|
bool "cortex-A17"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
select BR2_ARM_CPU_HAS_VFPV4
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
|
config BR2_cortex_a17_a7
|
|
bool "cortex-A17/A7 big.LITTLE"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
select BR2_ARM_CPU_HAS_VFPV4
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
|
config BR2_pj4
|
|
bool "pj4"
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_VFPV3
|
|
select BR2_ARM_CPU_ARMV7A
|
|
|
|
# Cortex-M cores are only supported for little endian configurations
|
|
if BR2_arm
|
|
comment "armv7m cores"
|
|
config BR2_cortex_m3
|
|
bool "cortex-M3"
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_ARMV7M
|
|
config BR2_cortex_m4
|
|
bool "cortex-M4"
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_MAYBE_HAS_FPV4
|
|
select BR2_ARM_CPU_ARMV7M
|
|
config BR2_cortex_m7
|
|
bool "cortex-M7"
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_MAYBE_HAS_FPV5
|
|
select BR2_ARM_CPU_ARMV7M
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
|
endif # BR2_arm
|
|
endif # !BR2_ARCH_IS_64
|
|
|
|
comment "armv8 cores"
|
|
config BR2_cortex_a32
|
|
bool "cortex-A32"
|
|
depends on !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_ARM
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
select BR2_ARM_CPU_HAS_THUMB2
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
|
config BR2_cortex_a35
|
|
bool "cortex-A35"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
|
config BR2_cortex_a53
|
|
bool "cortex-A53"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
config BR2_cortex_a57
|
|
bool "cortex-A57"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
config BR2_cortex_a57_a53
|
|
bool "cortex-A57/A53 big.LITTLE"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
|
config BR2_cortex_a72
|
|
bool "cortex-A72"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
|
config BR2_cortex_a72_a53
|
|
bool "cortex-A72/A53 big.LITTLE"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
|
config BR2_cortex_a73
|
|
bool "cortex-A73"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_cortex_a73_a35
|
|
bool "cortex-A73/A35 big.LITTLE"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_cortex_a73_a53
|
|
bool "cortex-A73/A53 big.LITTLE"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_emag
|
|
bool "emag"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
|
config BR2_exynos_m1
|
|
bool "exynos-m1"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
|
config BR2_falkor
|
|
bool "falkor"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_phecda
|
|
bool "phecda"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
|
config BR2_qdf24xx
|
|
bool "qdf24xx"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_6
|
|
config BR2_thunderx
|
|
bool "thunderx (aka octeontx)"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
|
config BR2_thunderxt81
|
|
bool "thunderxt81 (aka octeontx81)"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_thunderxt83
|
|
bool "thunderxt83 (aka octeontx83)"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_thunderxt88
|
|
bool "thunderxt88"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_thunderxt88p1
|
|
bool "thunderxt88p1"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_xgene1
|
|
bool "xgene1"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
|
|
|
comment "armv8.1a cores"
|
|
config BR2_thunderx2t99
|
|
bool "thunderx2t99"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_thunderx2t99p1
|
|
bool "thunderx2t99p1"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
config BR2_vulcan
|
|
bool "vulcan"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_7
|
|
|
|
comment "armv8.2a cores"
|
|
config BR2_cortex_a55
|
|
bool "cortex-A55"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
|
config BR2_cortex_a75
|
|
bool "cortex-A75"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
|
config BR2_cortex_a75_a55
|
|
bool "cortex-A75/A55 big.LITTLE"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
|
config BR2_cortex_a76
|
|
bool "cortex-A76"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
|
config BR2_cortex_a76_a55
|
|
bool "cortex-A76/A55 big.LITTLE"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
|
config BR2_neoverse_n1
|
|
bool "neoverse-N1 (aka ares)"
|
|
select BR2_ARM_CPU_HAS_ARM if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_NEON if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_THUMB2 if !BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
|
config BR2_tsv110
|
|
bool "tsv110"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_9
|
|
|
|
comment "armv8.4a cores"
|
|
config BR2_saphira
|
|
bool "saphira"
|
|
depends on BR2_ARCH_IS_64
|
|
select BR2_ARM_CPU_HAS_FP_ARMV8
|
|
select BR2_ARM_CPU_ARMV8A
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_8
|
|
endchoice
|
|
|
|
config BR2_ARM_ENABLE_NEON
|
|
bool "Enable NEON SIMD extension support"
|
|
depends on BR2_ARM_CPU_MAYBE_HAS_NEON
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
help
|
|
For some CPU cores, the NEON SIMD extension is optional.
|
|
Select this option if you are certain your particular
|
|
implementation has NEON support and you want to use it.
|
|
|
|
config BR2_ARM_ENABLE_VFP
|
|
bool "Enable VFP extension support"
|
|
depends on BR2_ARM_CPU_MAYBE_HAS_FPU
|
|
select BR2_ARM_CPU_HAS_FPV5 if BR2_ARM_CPU_MAYBE_HAS_FPV5
|
|
select BR2_ARM_CPU_HAS_FPV4 if BR2_ARM_CPU_MAYBE_HAS_FPV4
|
|
select BR2_ARM_CPU_HAS_VFPV4 if BR2_ARM_CPU_MAYBE_HAS_VFPV4
|
|
select BR2_ARM_CPU_HAS_VFPV3 if BR2_ARM_CPU_MAYBE_HAS_VFPV3
|
|
select BR2_ARM_CPU_HAS_VFPV2 if BR2_ARM_CPU_MAYBE_HAS_VFPV2
|
|
help
|
|
For some CPU cores, the VFP extension is optional. Select
|
|
this option if you are certain your particular
|
|
implementation has VFP support and you want to use it.
|
|
|
|
choice
|
|
prompt "Target ABI"
|
|
default BR2_ARM_EABIHF if BR2_ARM_CPU_HAS_FPU
|
|
default BR2_ARM_EABI
|
|
depends on BR2_arm || BR2_armeb
|
|
help
|
|
Application Binary Interface to use. The Application Binary
|
|
Interface describes the calling conventions (how arguments
|
|
are passed to functions, how the return value is passed, how
|
|
system calls are made, etc.).
|
|
|
|
config BR2_ARM_EABI
|
|
bool "EABI"
|
|
help
|
|
The EABI is currently the standard ARM ABI, which is used in
|
|
most projects. It supports both the 'soft' floating point
|
|
model (in which floating point instructions are emulated in
|
|
software) and the 'softfp' floating point model (in which
|
|
floating point instructions are executed using an hardware
|
|
floating point unit, but floating point arguments to
|
|
functions are passed in integer registers).
|
|
|
|
The 'softfp' floating point model is link-compatible with
|
|
the 'soft' floating point model, i.e you can link a library
|
|
built 'soft' with some other code built 'softfp'.
|
|
|
|
However, passing the floating point arguments in integer
|
|
registers is a bit inefficient, so if your ARM processor has
|
|
a floating point unit, and you don't have pre-compiled
|
|
'soft' or 'softfp' code, using the EABIhf ABI will provide
|
|
better floating point performances.
|
|
|
|
If your processor does not have a floating point unit, then
|
|
you must use this ABI.
|
|
|
|
config BR2_ARM_EABIHF
|
|
bool "EABIhf"
|
|
depends on BR2_ARM_CPU_HAS_FPU
|
|
help
|
|
The EABIhf is an extension of EABI which supports the 'hard'
|
|
floating point model. This model uses the floating point
|
|
unit to execute floating point instructions, and passes
|
|
floating point arguments in floating point registers.
|
|
|
|
It is more efficient than EABI for floating point related
|
|
workload. However, it does not allow to link against code
|
|
that has been pre-built for the 'soft' or 'softfp' floating
|
|
point models.
|
|
|
|
If your processor has a floating point unit, and you don't
|
|
depend on existing pre-compiled code, this option is most
|
|
likely the best choice.
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Floating point strategy"
|
|
default BR2_ARM_FPU_FP_ARMV8 if BR2_ARM_CPU_HAS_FP_ARMV8
|
|
default BR2_ARM_FPU_FPV5D16 if BR2_ARM_CPU_HAS_FPV5
|
|
default BR2_ARM_FPU_FPV4D16 if BR2_ARM_CPU_HAS_FPV4
|
|
default BR2_ARM_FPU_VFPV4D16 if BR2_ARM_CPU_HAS_VFPV4
|
|
default BR2_ARM_FPU_VFPV3D16 if BR2_ARM_CPU_HAS_VFPV3
|
|
default BR2_ARM_FPU_VFPV2 if BR2_ARM_CPU_HAS_VFPV2
|
|
default BR2_ARM_SOFT_FLOAT if !BR2_ARM_CPU_HAS_FPU
|
|
|
|
config BR2_ARM_SOFT_FLOAT
|
|
bool "Soft float"
|
|
depends on BR2_ARM_EABI
|
|
select BR2_SOFT_FLOAT
|
|
help
|
|
This option allows to use software emulated floating
|
|
point. It should be used for ARM cores that do not include a
|
|
Vector Floating Point unit, such as ARMv5 cores (ARM926 for
|
|
example) or certain ARMv6 cores.
|
|
|
|
config BR2_ARM_FPU_VFPV2
|
|
bool "VFPv2"
|
|
depends on BR2_ARM_CPU_HAS_VFPV2
|
|
help
|
|
This option allows to use the VFPv2 floating point unit, as
|
|
available in some ARMv5 processors (ARM926EJ-S) and some
|
|
ARMv6 processors (ARM1136JF-S, ARM1176JZF-S and ARM11
|
|
MPCore).
|
|
|
|
Note that this option is also safe to use for newer cores
|
|
such as Cortex-A, because the VFPv3 and VFPv4 units are
|
|
backward compatible with VFPv2.
|
|
|
|
config BR2_ARM_FPU_VFPV3
|
|
bool "VFPv3"
|
|
depends on BR2_ARM_CPU_HAS_VFPV3
|
|
help
|
|
This option allows to use the VFPv3 floating point unit, as
|
|
available in some ARMv7 processors (Cortex-A{8, 9}). This
|
|
option requires a VFPv3 unit that has 32 double-precision
|
|
registers, which is not necessarily the case in all SOCs
|
|
based on Cortex-A{8, 9}. If you're unsure, use VFPv3-D16
|
|
instead, which is guaranteed to work on all Cortex-A{8, 9}.
|
|
|
|
Note that this option is also safe to use for newer cores
|
|
that have a VFPv4 unit, because VFPv4 is backward compatible
|
|
with VFPv3. They must of course also have 32
|
|
double-precision registers.
|
|
|
|
config BR2_ARM_FPU_VFPV3D16
|
|
bool "VFPv3-D16"
|
|
depends on BR2_ARM_CPU_HAS_VFPV3
|
|
help
|
|
This option allows to use the VFPv3 floating point unit, as
|
|
available in some ARMv7 processors (Cortex-A{8, 9}). This
|
|
option requires a VFPv3 unit that has 16 double-precision
|
|
registers, which is generally the case in all SOCs based on
|
|
Cortex-A{8, 9}, even though VFPv3 is technically optional on
|
|
Cortex-A9. This is the safest option for those cores.
|
|
|
|
Note that this option is also safe to use for newer cores
|
|
such that have a VFPv4 unit, because the VFPv4 is backward
|
|
compatible with VFPv3.
|
|
|
|
config BR2_ARM_FPU_VFPV4
|
|
bool "VFPv4"
|
|
depends on BR2_ARM_CPU_HAS_VFPV4
|
|
help
|
|
This option allows to use the VFPv4 floating point unit, as
|
|
available in some ARMv7 processors (Cortex-A{5, 7, 12,
|
|
15}). This option requires a VFPv4 unit that has 32
|
|
double-precision registers, which is not necessarily the
|
|
case in all SOCs based on Cortex-A{5, 7, 12, 15}. If you're
|
|
unsure, you should probably use VFPv4-D16 instead.
|
|
|
|
Note that if you want binary code that works on all ARMv7
|
|
cores, including the earlier Cortex-A{8, 9}, you should
|
|
instead select VFPv3.
|
|
|
|
config BR2_ARM_FPU_VFPV4D16
|
|
bool "VFPv4-D16"
|
|
depends on BR2_ARM_CPU_HAS_VFPV4
|
|
help
|
|
This option allows to use the VFPv4 floating point unit, as
|
|
available in some ARMv7 processors (Cortex-A{5, 7, 12,
|
|
15}). This option requires a VFPv4 unit that has 16
|
|
double-precision registers, which is always available on
|
|
Cortex-A12 and Cortex-A15, but optional on Cortex-A5 and
|
|
Cortex-A7.
|
|
|
|
Note that if you want binary code that works on all ARMv7
|
|
cores, including the earlier Cortex-A{8, 9}, you should
|
|
instead select VFPv3-D16.
|
|
|
|
config BR2_ARM_FPU_NEON
|
|
bool "NEON"
|
|
depends on BR2_ARM_CPU_HAS_NEON
|
|
help
|
|
This option allows to use the NEON SIMD unit, as available
|
|
in some ARMv7 processors, as a floating-point unit. It
|
|
should however be noted that using NEON for floating point
|
|
operations doesn't provide a complete compatibility with the
|
|
IEEE 754.
|
|
|
|
config BR2_ARM_FPU_NEON_VFPV4
|
|
bool "NEON/VFPv4"
|
|
depends on BR2_ARM_CPU_HAS_VFPV4
|
|
depends on BR2_ARM_CPU_HAS_NEON
|
|
help
|
|
This option allows to use both the VFPv4 and the NEON SIMD
|
|
units for floating point operations. Note that some ARMv7
|
|
cores do not necessarily have VFPv4 and/or NEON support, for
|
|
example on Cortex-A5 and Cortex-A7, support for VFPv4 and
|
|
NEON is optional.
|
|
|
|
config BR2_ARM_FPU_FPV4D16
|
|
bool "FPv4-D16"
|
|
depends on BR2_ARM_CPU_HAS_FPV4
|
|
help
|
|
This option allows to use the FPv4-SP (single precision)
|
|
floating point unit, as available in some ARMv7m processors
|
|
(Cortex-M4).
|
|
|
|
config BR2_ARM_FPU_FPV5D16
|
|
bool "FPv5-D16"
|
|
depends on BR2_ARM_CPU_HAS_FPV5
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
|
help
|
|
This option allows to use the FPv5-SP (single precision)
|
|
floating point unit, as available in some ARMv7m processors
|
|
(Cortex-M7).
|
|
|
|
Note that if you want binary code that works on the earlier
|
|
Cortex-M4, you should instead select FPv4-D16.
|
|
|
|
config BR2_ARM_FPU_FPV5DPD16
|
|
bool "FPv5-DP-D16"
|
|
depends on BR2_ARM_CPU_HAS_FPV5
|
|
select BR2_ARCH_NEEDS_GCC_AT_LEAST_5
|
|
help
|
|
This option allows to use the FPv5-DP (double precision)
|
|
floating point unit, as available in some ARMv7m processors
|
|
(Cortex-M7).
|
|
|
|
Note that if you want binary code that works on the earlier
|
|
Cortex-M4, you should instead select FPv4-D16.
|
|
|
|
config BR2_ARM_FPU_FP_ARMV8
|
|
bool "FP-ARMv8"
|
|
depends on BR2_ARM_CPU_HAS_FP_ARMV8
|
|
help
|
|
This option allows to use the ARMv8 floating point unit.
|
|
|
|
config BR2_ARM_FPU_NEON_FP_ARMV8
|
|
bool "NEON/FP-ARMv8"
|
|
depends on BR2_ARM_CPU_HAS_FP_ARMV8
|
|
depends on BR2_ARM_CPU_HAS_NEON
|
|
help
|
|
This option allows to use both the ARMv8 floating point unit
|
|
and the NEON SIMD unit for floating point operations.
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "ARM instruction set"
|
|
depends on BR2_arm || BR2_armeb
|
|
|
|
config BR2_ARM_INSTRUCTIONS_ARM
|
|
bool "ARM"
|
|
depends on BR2_ARM_CPU_HAS_ARM
|
|
help
|
|
This option instructs the compiler to generate regular ARM
|
|
instructions, that are all 32 bits wide.
|
|
|
|
config BR2_ARM_INSTRUCTIONS_THUMB
|
|
bool "Thumb"
|
|
depends on BR2_ARM_CPU_HAS_THUMB
|
|
# Thumb-1 and VFP are not compatible
|
|
depends on BR2_ARM_SOFT_FLOAT
|
|
help
|
|
This option instructions the compiler to generate Thumb
|
|
instructions, which allows to mix 16 bits instructions and
|
|
32 bits instructions. This generally provides a much smaller
|
|
compiled binary size.
|
|
|
|
comment "Thumb1 is not compatible with VFP"
|
|
depends on BR2_ARM_CPU_HAS_THUMB
|
|
depends on !BR2_ARM_SOFT_FLOAT
|
|
|
|
config BR2_ARM_INSTRUCTIONS_THUMB2
|
|
bool "Thumb2"
|
|
depends on BR2_ARM_CPU_HAS_THUMB2
|
|
help
|
|
This option instructions the compiler to generate Thumb2
|
|
instructions, which allows to mix 16 bits instructions and
|
|
32 bits instructions. This generally provides a much smaller
|
|
compiled binary size.
|
|
|
|
endchoice
|
|
|
|
choice
|
|
prompt "MMU Page Size"
|
|
default BR2_ARM64_PAGE_SIZE_4K
|
|
depends on BR2_aarch64 || BR2_aarch64_be
|
|
help
|
|
The default is 4KB, and you should probably keep this unless
|
|
you know what you are doing. In particular, the kernel
|
|
configuration must match this choice. If your kernel is
|
|
built by Buildroot, the kernel configuration is
|
|
automatically adjusted, but not if you built your kernel
|
|
outside of Buildroot.
|
|
|
|
config BR2_ARM64_PAGE_SIZE_4K
|
|
bool "4KB"
|
|
|
|
config BR2_ARM64_PAGE_SIZE_64K
|
|
bool "64KB"
|
|
|
|
endchoice
|
|
|
|
config BR2_ARM64_PAGE_SIZE
|
|
string
|
|
default "4K" if BR2_ARM64_PAGE_SIZE_4K
|
|
default "64K" if BR2_ARM64_PAGE_SIZE_64K
|
|
|
|
config BR2_ARCH
|
|
default "arm" if BR2_arm
|
|
default "armeb" if BR2_armeb
|
|
default "aarch64" if BR2_aarch64
|
|
default "aarch64_be" if BR2_aarch64_be
|
|
|
|
config BR2_NORMALIZED_ARCH
|
|
default "arm" if BR2_arm || BR2_armeb
|
|
default "arm64" if BR2_aarch64 || BR2_aarch64_be
|
|
|
|
config BR2_ENDIAN
|
|
default "LITTLE" if (BR2_arm || BR2_aarch64)
|
|
default "BIG" if (BR2_armeb || BR2_aarch64_be)
|
|
|
|
config BR2_GCC_TARGET_CPU
|
|
# armv4
|
|
default "arm920t" if BR2_arm920t
|
|
default "arm922t" if BR2_arm922t
|
|
default "fa526" if BR2_fa526
|
|
default "strongarm" if BR2_strongarm
|
|
# armv5
|
|
default "arm926ej-s" if BR2_arm926t
|
|
default "xscale" if BR2_xscale
|
|
# armv6
|
|
default "arm1136j-s" if BR2_arm1136j_s
|
|
default "arm1136jf-s" if BR2_arm1136jf_s
|
|
default "arm1176jz-s" if BR2_arm1176jz_s
|
|
default "arm1176jzf-s" if BR2_arm1176jzf_s
|
|
default "mpcore" if BR2_arm11mpcore && BR2_ARM_CPU_HAS_VFPV2
|
|
default "mpcorenovfp" if BR2_arm11mpcore
|
|
# armv7a
|
|
default "cortex-a5" if BR2_cortex_a5
|
|
default "cortex-a7" if BR2_cortex_a7
|
|
default "cortex-a8" if BR2_cortex_a8
|
|
default "cortex-a9" if BR2_cortex_a9
|
|
default "cortex-a12" if BR2_cortex_a12
|
|
default "cortex-a15" if BR2_cortex_a15
|
|
default "cortex-a15.cortex-a7" if BR2_cortex_a15_a7
|
|
default "cortex-a17" if BR2_cortex_a17
|
|
default "cortex-a17.cortex-a7" if BR2_cortex_a17_a7
|
|
default "marvell-pj4" if BR2_pj4
|
|
# armv7m
|
|
default "cortex-m3" if BR2_cortex_m3
|
|
default "cortex-m4" if BR2_cortex_m4
|
|
default "cortex-m7" if BR2_cortex_m7
|
|
# armv8a
|
|
default "cortex-a32" if BR2_cortex_a32
|
|
default "cortex-a35" if BR2_cortex_a35
|
|
default "cortex-a53" if BR2_cortex_a53
|
|
default "cortex-a57" if BR2_cortex_a57
|
|
default "cortex-a57.cortex-a53" if BR2_cortex_a57_a53
|
|
default "cortex-a72" if BR2_cortex_a72
|
|
default "cortex-a72.cortex-a53" if BR2_cortex_a72_a53
|
|
default "cortex-a73" if BR2_cortex_a73
|
|
default "cortex-a73.cortex-a35" if BR2_cortex_a73_a35
|
|
default "cortex-a73.cortex-a53" if BR2_cortex_a73_a53
|
|
default "emag" if BR2_emag
|
|
default "exynos-m1" if BR2_exynos_m1
|
|
default "falkor" if BR2_falkor
|
|
default "phecda" if BR2_phecda
|
|
default "qdf24xx" if BR2_qdf24xx
|
|
default "thunderx" if BR2_thunderx && !BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
default "octeontx" if BR2_thunderx && BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
default "thunderxt81" if BR2_thunderxt81 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
default "octeontx81" if BR2_thunderxt81 && BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
default "thunderxt83" if BR2_thunderxt83 && !BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
default "octeontx83" if BR2_thunderxt83 && BR2_TOOLCHAIN_GCC_AT_LEAST_9
|
|
default "thunderxt88" if BR2_thunderxt88
|
|
default "thunderxt88p1" if BR2_thunderxt88p1
|
|
default "xgene1" if BR2_xgene1
|
|
# armv8.1a
|
|
default "thunderx2t99" if BR2_thunderx2t99
|
|
default "thunderx2t99p1" if BR2_thunderx2t99p1
|
|
default "vulcan" if BR2_vulcan
|
|
# armv8.2a
|
|
default "cortex-a55" if BR2_cortex_a55
|
|
default "cortex-a75" if BR2_cortex_a75
|
|
default "cortex-a75.cortex-a55" if BR2_cortex_a75_a55
|
|
default "cortex-a76" if BR2_cortex_a76
|
|
default "cortex-a76.cortex-a55" if BR2_cortex_a76_a55
|
|
default "neoverse-n1" if BR2_neoverse_n1
|
|
default "tsv110" if BR2_tsv110
|
|
# armv8.4a
|
|
default "saphira" if BR2_saphira
|
|
|
|
config BR2_GCC_TARGET_ABI
|
|
default "aapcs-linux" if BR2_arm || BR2_armeb
|
|
default "lp64" if BR2_aarch64 || BR2_aarch64_be
|
|
|
|
config BR2_GCC_TARGET_FPU
|
|
default "vfp" if BR2_ARM_FPU_VFPV2
|
|
default "vfpv3" if BR2_ARM_FPU_VFPV3
|
|
default "vfpv3-d16" if BR2_ARM_FPU_VFPV3D16
|
|
default "vfpv4" if BR2_ARM_FPU_VFPV4
|
|
default "vfpv4-d16" if BR2_ARM_FPU_VFPV4D16
|
|
default "neon" if BR2_ARM_FPU_NEON
|
|
default "neon-vfpv4" if BR2_ARM_FPU_NEON_VFPV4
|
|
default "fpv4-sp-d16" if BR2_ARM_FPU_FPV4D16
|
|
default "fpv5-sp-d16" if BR2_ARM_FPU_FPV5D16
|
|
default "fpv5-d16" if BR2_ARM_FPU_FPV5DPD16
|
|
default "fp-armv8" if BR2_ARM_FPU_FP_ARMV8
|
|
default "neon-fp-armv8" if BR2_ARM_FPU_NEON_FP_ARMV8
|
|
depends on BR2_arm || BR2_armeb
|
|
|
|
config BR2_GCC_TARGET_FLOAT_ABI
|
|
default "soft" if BR2_ARM_SOFT_FLOAT
|
|
default "softfp" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABI
|
|
default "hard" if !BR2_ARM_SOFT_FLOAT && BR2_ARM_EABIHF
|
|
|
|
config BR2_GCC_TARGET_MODE
|
|
default "arm" if BR2_ARM_INSTRUCTIONS_ARM
|
|
default "thumb" if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2
|
|
|
|
config BR2_READELF_ARCH_NAME
|
|
default "ARM" if BR2_arm || BR2_armeb
|
|
default "AArch64" if BR2_aarch64 || BR2_aarch64_be
|
|
|
|
# vim: ft=kconfig
|
|
# -*- mode:kconfig; -*-
|