# 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

choice
	prompt "Target Architecture Variant"
	depends on BR2_arm || BR2_armeb
	default BR2_generic_arm
	help
	  Specific CPU variant to use

config BR2_generic_arm
	bool "generic_arm"
config BR2_arm7tdmi
	bool "arm7tdmi"
config BR2_arm610
	bool "arm610"
config BR2_arm710
	bool "arm710"
config BR2_arm720t
	bool "arm720t"
config BR2_arm920t
	bool "arm920t"
config BR2_arm922t
	bool "arm922t"
config BR2_arm926t
	bool "arm926t"
config BR2_arm10t
	bool "arm10t"
config BR2_arm1136jf_s_r0
	bool "arm1136jf_s rev0"
config BR2_arm1136jf_s_r1
	bool "arm1136jf_s rev1"
config BR2_arm1176jz_s
	bool "arm1176jz-s"
config BR2_arm1176jzf_s
	bool "arm1176jzf-s"
config BR2_cortex_a5
	bool "cortex-A5"
	select BR2_ARM_CPU_MAYBE_HAS_NEON
config BR2_cortex_a8
	bool "cortex-A8"
	select BR2_ARM_CPU_HAS_NEON
config BR2_cortex_a9
	bool "cortex-A9"
	select BR2_ARM_CPU_MAYBE_HAS_NEON
config BR2_cortex_a15
	bool "cortex-A15"
	select BR2_ARM_CPU_HAS_NEON
config BR2_sa110
	bool "sa110"
config BR2_sa1100
	bool "sa1100"
config BR2_xscale
	bool "xscale"
config BR2_iwmmxt
	bool "iwmmxt"
endchoice

config BR2_arm1136jf_s
	bool
	default BR2_arm1136jf_s_r0 || BR2_arm1136jf_s_r1

choice
	prompt "Target ABI"
	depends on BR2_arm || BR2_armeb
	depends on BR2_DEPRECATED
	default BR2_ARM_EABI
	help
	  Application Binary Interface to use

	  Note:
	    Using OABI is discouraged.

config BR2_ARM_EABI_CHOICE
	bool "EABI"
config BR2_ARM_OABI
	bool "OABI"
	depends on !BR2_GCC_VERSION_4_7_X
endchoice

config BR2_ARM_EABI
	def_bool y
	depends on !BR2_ARM_OABI

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_ARCH
	default "arm"	if BR2_arm
	default "armeb"	if BR2_armeb

config BR2_ENDIAN
	default "LITTLE" if BR2_arm
	default "BIG"	 if BR2_armeb

config BR2_GCC_TARGET_TUNE
	default "arm600"	if BR2_arm600
	default "arm610"	if BR2_arm610
	default "arm620"	if BR2_arm620
	default "arm7tdmi"	if BR2_arm7tdmi
	default "arm7tdmi"	if BR2_arm720t
	default "arm7tdmi"	if BR2_arm740t
	default "arm920"	if BR2_arm920
	default "arm920t"	if BR2_arm920t
	default "arm922t"	if BR2_arm922t
	default "arm926ej-s"	if BR2_arm926t
	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 "cortex-a5"	if BR2_cortex_a5
	default "cortex-a8"	if BR2_cortex_a8
	default "cortex-a9"	if BR2_cortex_a9
	default "cortex-a15"	if BR2_cortex_a15
	default "strongarm110"	if BR2_sa110
	default "strongarm1100"	if BR2_sa1100
	default "xscale"	if BR2_xscale
	default "iwmmxt"	if BR2_iwmmxt

config BR2_GCC_TARGET_ARCH
	default "armv4t"	if BR2_arm7tdmi
	default "armv3"		if BR2_arm610
	default "armv3"		if BR2_arm710
	default "armv4t"	if BR2_arm720t
	default "armv4t"	if BR2_arm920t
	default "armv4t"	if BR2_arm922t
	default "armv5te"	if BR2_arm926t
	default "armv5t"	if BR2_arm10t
	default "armv6j"	if BR2_arm1136jf_s_r0
	default "armv6k"	if BR2_arm1136jf_s_r1
	default "armv6zk"	if BR2_arm1176jz_s
	default "armv6zk"	if BR2_arm1176jzf_s
	default "armv7-a"	if BR2_cortex_a5
	default "armv7-a"	if BR2_cortex_a8
	default "armv7-a"	if BR2_cortex_a9
	default "armv7-a"	if BR2_cortex_a15
	default "armv4"		if BR2_sa110
	default "armv4"		if BR2_sa1100
	default "armv5te"	if BR2_xscale
	default "iwmmxt"	if BR2_iwmmxt

config BR2_GCC_TARGET_ABI
	default "apcs-gnu"	if BR2_ARM_OABI
	default "aapcs-linux"	if BR2_ARM_EABI
