Commit 79310d32 authored by Gustavo Zacarias's avatar Gustavo Zacarias Committed by Peter Korsgaard
Browse files

arch/arm: add support for thumb(1) mode



[Peter: also adjust BR2_GCC_TARGET_MODE]
Signed-off-by: default avatarGustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent 8316801f
Loading
Loading
Loading
Loading
+27 −3
Original line number Diff line number Diff line
@@ -31,6 +31,9 @@ config BR2_ARM_CPU_HAS_VFPV4
	bool
	select BR2_ARM_CPU_HAS_VFPV3

config BR2_ARM_CPU_HAS_THUMB
	bool

config BR2_ARM_CPU_HAS_THUMB2
	bool

@@ -43,28 +46,38 @@ choice

config BR2_arm7tdmi
	bool "arm7tdmi"
	select BR2_ARM_CPU_HAS_THUMB
config BR2_arm720t
	bool "arm720t"
	select BR2_ARM_CPU_HAS_THUMB
config BR2_arm920t
	bool "arm920t"
	select BR2_ARM_CPU_HAS_THUMB
config BR2_arm922t
	bool "arm922t"
	select BR2_ARM_CPU_HAS_THUMB
config BR2_arm926t
	bool "arm926t"
	select BR2_ARM_CPU_MAYBE_HAS_VFPV2
	select BR2_ARM_CPU_HAS_THUMB
config BR2_arm10t
	bool "arm10t"
	select BR2_ARM_CPU_HAS_THUMB
config BR2_arm1136jf_s_r0
	bool "arm1136jf_s rev0"
	select BR2_ARM_CPU_HAS_VFPV2
	select BR2_ARM_CPU_HAS_THUMB
config BR2_arm1136jf_s_r1
	bool "arm1136jf_s rev1"
	select BR2_ARM_CPU_HAS_VFPV2
	select BR2_ARM_CPU_HAS_THUMB
config BR2_arm1176jz_s
	bool "arm1176jz-s"
	select BR2_ARM_CPU_HAS_THUMB
config BR2_arm1176jzf_s
	bool "arm1176jzf-s"
	select BR2_ARM_CPU_HAS_VFPV2
	select BR2_ARM_CPU_HAS_THUMB
config BR2_cortex_a5
	bool "cortex-A5"
	select BR2_ARM_CPU_MAYBE_HAS_NEON
@@ -99,6 +112,7 @@ config BR2_strongarm
	bool "strongarm sa110/sa1100"
config BR2_xscale
	bool "xscale"
	select BR2_ARM_CPU_HAS_THUMB
config BR2_iwmmxt
	bool "iwmmxt"
endchoice
@@ -287,7 +301,7 @@ endchoice

choice
	prompt "ARM instruction set"
	depends on BR2_ARM_CPU_HAS_THUMB2
	depends on BR2_ARM_CPU_HAS_THUMB || BR2_ARM_CPU_HAS_THUMB2

config BR2_ARM_INSTRUCTIONS_ARM_CHOICE
	bool "ARM"
@@ -295,8 +309,18 @@ config BR2_ARM_INSTRUCTIONS_ARM_CHOICE
	  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
	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.

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
@@ -307,7 +331,7 @@ endchoice

config BR2_ARM_INSTRUCTIONS_ARM
	def_bool y
	depends on !BR2_ARM_INSTRUCTIONS_THUMB2
	depends on !(BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2)

config BR2_ARCH
	default "arm"	if BR2_arm
@@ -381,4 +405,4 @@ config BR2_GCC_TARGET_FLOAT_ABI

config BR2_GCC_TARGET_MODE
	default "arm"		if BR2_ARM_INSTRUCTIONS_ARM
	default "thumb"		if BR2_ARM_INSTRUCTIONS_THUMB2
	default "thumb"		if BR2_ARM_INSTRUCTIONS_THUMB || BR2_ARM_INSTRUCTIONS_THUMB2