|
@@ -31,6 +31,9 @@ config BR2_ARM_CPU_HAS_VFPV4
|
|
|
bool
|
|
|
select BR2_ARM_CPU_HAS_VFPV3
|
|
|
|
|
|
+config BR2_ARM_CPU_HAS_THUMB2
|
|
|
+ bool
|
|
|
+
|
|
|
choice
|
|
|
prompt "Target Architecture Variant"
|
|
|
depends on BR2_arm || BR2_armeb
|
|
@@ -65,22 +68,27 @@ config BR2_cortex_a5
|
|
|
bool "cortex-A5"
|
|
|
select BR2_ARM_CPU_MAYBE_HAS_NEON
|
|
|
select BR2_ARM_CPU_MAYBE_HAS_VFPV4
|
|
|
+ select BR2_ARM_CPU_HAS_THUMB2
|
|
|
config BR2_cortex_a7
|
|
|
bool "cortex-A7"
|
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
|
select BR2_ARM_CPU_HAS_VFPV4
|
|
|
+ select BR2_ARM_CPU_HAS_THUMB2
|
|
|
config BR2_cortex_a8
|
|
|
bool "cortex-A8"
|
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
|
select BR2_ARM_CPU_HAS_VFPV3
|
|
|
+ select BR2_ARM_CPU_HAS_THUMB2
|
|
|
config BR2_cortex_a9
|
|
|
bool "cortex-A9"
|
|
|
select BR2_ARM_CPU_MAYBE_HAS_NEON
|
|
|
select BR2_ARM_CPU_MAYBE_HAS_VFPV3
|
|
|
+ select BR2_ARM_CPU_HAS_THUMB2
|
|
|
config BR2_cortex_a15
|
|
|
bool "cortex-A15"
|
|
|
select BR2_ARM_CPU_HAS_NEON
|
|
|
select BR2_ARM_CPU_HAS_VFPV4
|
|
|
+ select BR2_ARM_CPU_HAS_THUMB2
|
|
|
config BR2_fa526
|
|
|
bool "fa526/626"
|
|
|
config BR2_pj4
|
|
@@ -275,6 +283,30 @@ config BR2_ARM_FPU_NEON_VFPV4
|
|
|
|
|
|
endchoice
|
|
|
|
|
|
+choice
|
|
|
+ prompt "ARM instruction set"
|
|
|
+ depends on BR2_ARM_CPU_HAS_THUMB2
|
|
|
+
|
|
|
+config BR2_ARM_INSTRUCTIONS_ARM_CHOICE
|
|
|
+ bool "ARM"
|
|
|
+ help
|
|
|
+ This option instructs the compiler to generate regular ARM
|
|
|
+ instructions, that are all 32 bits wide.
|
|
|
+
|
|
|
+config BR2_ARM_INSTRUCTIONS_THUMB2
|
|
|
+ bool "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
|
|
|
+
|
|
|
+config BR2_ARM_INSTRUCTIONS_ARM
|
|
|
+ def_bool y
|
|
|
+ depends on !BR2_ARM_INSTRUCTIONS_THUMB2
|
|
|
+
|
|
|
config BR2_ARCH
|
|
|
default "arm" if BR2_arm
|
|
|
default "armeb" if BR2_armeb
|
|
@@ -344,3 +376,7 @@ 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_THUMB2
|