summaryrefslogtreecommitdiff
path: root/target/config
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-10-22 12:06:37 -0500
committerWaldemar Brodkorb <wbx@openadk.org>2014-10-22 12:07:34 -0500
commitec3f682d79a38b29ef51b7cdbc9fb9afbe2c9c63 (patch)
tree049febcf48b847f12b6bf6310ed9df48892a7ddb /target/config
parentaaaf9c02b66182559dc42ccc983d73bf31644b9b (diff)
rework toolchain support for ARM.
Use --with-cpu for gcc to have optimized code for requested ARM cpus. Add some basic support for cortex-m3.
Diffstat (limited to 'target/config')
-rw-r--r--target/config/Config.in.arm.choice27
-rw-r--r--target/config/Config.in.arm.default15
-rw-r--r--target/config/Config.in.cpu3
-rw-r--r--target/config/Config.in.qemu8
-rw-r--r--target/config/Config.in.target7
-rw-r--r--target/config/Config.in.toolchain5
6 files changed, 34 insertions, 31 deletions
diff --git a/target/config/Config.in.arm.choice b/target/config/Config.in.arm.choice
index d732b5f7a..eaae2fe5e 100644
--- a/target/config/Config.in.arm.choice
+++ b/target/config/Config.in.arm.choice
@@ -2,21 +2,26 @@
# material, please see the LICENCE file in the top-level directory.
choice ADK_TARGET_ARM_CPU_ARCH
-prompt "CPU architecture"
+prompt "CPU architecture and family"
depends on ADK_TARGET_TOOLCHAIN && ADK_LINUX_ARM
-default ADK_CPU_ARMV7A
-config ADK_CPU_ARMV5TE
- boolean "armv5te"
- select ADK_armv5te
+config ADK_CPU_ARMV7A_CORTEX_A9
+ boolean "cortex-a9 (armv7-a)"
+ select ADK_CPU_CORTEX_A9
-config ADK_CPU_ARMV6
- boolean "armv6"
- select ADK_armv6
+config ADK_CPU_ARMV7M_CORTEX_M3
+ boolean "cortex-m3 (armv7-m)"
+ select ADK_CPU_CORTEX_M3
+ select ADK_LINUX_ARM_WITH_THUMB
+ select ADK_TARGET_UCLINUX
-config ADK_CPU_ARMV7A
- boolean "armv7-a"
- select ADK_armv7a
+config ADK_CPU_ARMV6_ARM1176JZF_S
+ boolean "arm1176jzf-s (armv6)"
+ select ADK_CPU_ARM1176JZF_S
+
+config ADK_CPU_ARMV5TE_ARM926EJ_S
+ boolean "arm926ej-s (armv5te)"
+ select ADK_CPU_ARM926EJ_S
endchoice
diff --git a/target/config/Config.in.arm.default b/target/config/Config.in.arm.default
index 50a05b674..3e6dac47b 100644
--- a/target/config/Config.in.arm.default
+++ b/target/config/Config.in.arm.default
@@ -1,21 +1,6 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
-config ADK_armv5te
- boolean
-
-config ADK_armv6
- boolean
-
-config ADK_armv7a
- boolean
-
-config ADK_TARGET_ARM_CPU
- string
- default "armv5te" if ADK_armv5te
- default "armv6" if ADK_armv6
- default "armv7-a" if ADK_armv7a
-
config ADK_soft_float
boolean
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index b8fb302cb..afb99ebc9 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -113,6 +113,9 @@ config ADK_CPU_ARM926EJ_S
config ADK_CPU_ARM1176JZF_S
boolean
+config ADK_CPU_CORTEX_M3
+ boolean
+
config ADK_CPU_CORTEX_A9
boolean
diff --git a/target/config/Config.in.qemu b/target/config/Config.in.qemu
index edffbc955..4f1ec85a4 100644
--- a/target/config/Config.in.qemu
+++ b/target/config/Config.in.qemu
@@ -56,6 +56,14 @@ config ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
boolean "ARM Ltd. Versatile Express for Cortex-A9"
select ADK_CPU_CORTEX_A9
+config ADK_TARGET_QEMU_ARM_MODEL_STELLARIS_M3
+ boolean "Stellaris LM3S6965EVB"
+ select ADK_soft_float
+ select ADK_eabi
+ select ADK_CPU_CORTEX_M3
+ select ADK_LINUX_ARM_WITH_THUMB
+ depends on ADK_TARGET_ARM_SOFT_FLOAT
+
config ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
boolean "ARM Ltd. Versatile/PB"
select ADK_soft_float
diff --git a/target/config/Config.in.target b/target/config/Config.in.target
index 0415e0ce5..623874606 100644
--- a/target/config/Config.in.target
+++ b/target/config/Config.in.target
@@ -22,7 +22,7 @@ config ADK_TARGET_CFLAGS
default "-march=atom" if ADK_CPU_ATOM
default "-march=amdfam10" if ADK_CPU_AMDFAM10
default "-mcpu=v8" if ADK_CPU_SPARC_V8
- default "-m64 -mcpu=ultrasparc" if ADK_CPU_SPARC_V9
+ default "-mcpu=ultrasparc -m64" if ADK_CPU_SPARC_V9
default "-march=loongson2f -Wa,-mfix-loongson2f-nop" if ADK_CPU_LOONGSON2F
default "-march=mips32" if ADK_CPU_MIPS32
default "-march=mips64" if ADK_CPU_MIPS64
@@ -32,8 +32,9 @@ config ADK_TARGET_CFLAGS
default "-march=armv5te -mtune=arm926ej-s -mfloat-abi=hard" if ADK_CPU_ARM926EJ_S && ADK_hard_float
default "-march=armv6 -mtune=arm1176jzf-s -mfloat-abi=soft" if ADK_CPU_ARM1176JZF_S && ADK_soft_float
default "-march=armv6 -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" if ADK_CPU_ARM1176JZF_S && ADK_hard_float
- default "-march=armv7-a -mtune=cortex-a9 -mfloat-abi=soft" if ADK_CPU_CORTEX_A9 && ADK_soft_float
- default "-march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard" if ADK_CPU_CORTEX_A9 && ADK_hard_float
+ default "-mcpu=cortex-m3 -mfloat-abi=soft" if ADK_CPU_CORTEX_M3 && ADK_soft_float
+ default "-mcpu=cortex-a9 -mfloat-abi=soft" if ADK_CPU_CORTEX_A9 && ADK_soft_float
+ default "-mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard" if ADK_CPU_CORTEX_A9 && ADK_hard_float
default "-march=armv5te" if ADK_CPU_ARMV5TE
default "-march=armv6" if ADK_CPU_ARMV6
default "-march=armv7-a" if ADK_CPU_ARMV7A
diff --git a/target/config/Config.in.toolchain b/target/config/Config.in.toolchain
index 16c075212..a5c91f0f7 100644
--- a/target/config/Config.in.toolchain
+++ b/target/config/Config.in.toolchain
@@ -130,11 +130,12 @@ config ADK_TARGET_CFLAGS_OPT_O0
endchoice
config ADK_LINUX_ARM_WITH_THUMB
- prompt "Use THUMB2 ARM mode"
+ prompt "Use THUMB2 only mode"
boolean
- depends on ADK_CPU_CORTEX_A9 && ADK_TARGET_LIB_GLIBC
select ADK_KERNEL_THUMB2_KERNEL
default n
+ help
+ Experimental option. Use with care.
config ADK_TOOLCHAIN_WITH_SSP
boolean