summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-02-19 19:54:14 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2015-02-19 19:54:14 +0100
commit4f93b213f2d3393fbb0b7ca200988f475e6cef83 (patch)
tree5f0b47ac6a1cd02c1b5c387cd40dd26f63241c4d
parentee5cb4ea2592e9defa081cf23b704160b364e9b4 (diff)
cleanup FPU support for ARM targets.
-rw-r--r--Config.in1
-rw-r--r--target/arm/kernel/qemu-arm-vexpress-a93
-rw-r--r--target/arm/kernel/raspberry-pi1
-rw-r--r--target/arm/kernel/raspberry-pi22
-rw-r--r--target/arm/kernel/solidrun-imx64
-rw-r--r--target/arm/systems/raspberry-pi4
-rw-r--r--target/arm/systems/raspberry-pi22
-rw-r--r--target/arm/systems/solidrun-imx62
-rw-r--r--target/config/Config.in.arm.default11
-rw-r--r--target/config/Config.in.cpu16
-rw-r--r--target/config/Config.in.fpu5
-rw-r--r--target/config/Config.in.fpu.choice3
-rw-r--r--target/config/Config.in.fpu.default23
-rw-r--r--target/config/Config.in.qemu1
-rw-r--r--target/linux/config/Config.in.kernel16
-rw-r--r--toolchain/gcc/Makefile2
16 files changed, 71 insertions, 25 deletions
diff --git a/Config.in b/Config.in
index d4a9638bd..d3bbbfd3d 100644
--- a/Config.in
+++ b/Config.in
@@ -35,6 +35,7 @@ source "target/config/Config.in.qemuopts"
source "target/config/Config.in.kernelversion"
source "target/config/Config.in.libc"
source "target/config/Config.in.abi"
+source "target/config/Config.in.fpu"
source "target/config/Config.in.float"
source "target/config/Config.in.binfmt"
source "target/config/Config.in.target"
diff --git a/target/arm/kernel/qemu-arm-vexpress-a9 b/target/arm/kernel/qemu-arm-vexpress-a9
index 1ea2bc0dc..1f92ace12 100644
--- a/target/arm/kernel/qemu-arm-vexpress-a9
+++ b/target/arm/kernel/qemu-arm-vexpress-a9
@@ -9,8 +9,5 @@ CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_KUSER_HELPERS=y
CONFIG_ARM_AMBA=y
CONFIG_ATAGS=y
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
diff --git a/target/arm/kernel/raspberry-pi b/target/arm/kernel/raspberry-pi
index a748b42e8..5096fb05b 100644
--- a/target/arm/kernel/raspberry-pi
+++ b/target/arm/kernel/raspberry-pi
@@ -3,7 +3,6 @@ CONFIG_FIQ=y
CONFIG_ARM_PATCH_PHYS_VIRT=y
CONFIG_KUSER_HELPERS=y
CONFIG_ARCH_MULTI_V6=y
-CONFIG_VFP=y
CONFIG_ARCH_BCM2708=y
CONFIG_ARCH_BCM2835=y
CONFIG_MACH_BCM2708=y
diff --git a/target/arm/kernel/raspberry-pi2 b/target/arm/kernel/raspberry-pi2
index 53aa5eff8..592a38201 100644
--- a/target/arm/kernel/raspberry-pi2
+++ b/target/arm/kernel/raspberry-pi2
@@ -6,8 +6,6 @@ CONFIG_ARCH_BCM2836=y
CONFIG_MACH_BCM2709=y
CONFIG_HAVE_ARM_ARCH_TIMER=y
CONFIG_FIQ=y
-CONFIG_VFP=y
-CONFIG_NEON=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_CMDLINE_EXTEND=y
diff --git a/target/arm/kernel/solidrun-imx6 b/target/arm/kernel/solidrun-imx6
index c47cc093b..c861a5678 100644
--- a/target/arm/kernel/solidrun-imx6
+++ b/target/arm/kernel/solidrun-imx6
@@ -8,10 +8,6 @@ CONFIG_SOC_IMX6SL=y
CONFIG_LOCAL_TIMERS=y
CONFIG_MXC_DEBUG_BOARD=y
CONFIG_KUSER_HELPERS=y
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-CONFIG_KERNEL_MODE_NEON=y
CONFIG_PCI_IMX6=y
CONFIG_SERIAL_IMX=y
CONFIG_SERIAL_IMX_CONSOLE=y
diff --git a/target/arm/systems/raspberry-pi b/target/arm/systems/raspberry-pi
index 0ba641663..50cfb10e3 100644
--- a/target/arm/systems/raspberry-pi
+++ b/target/arm/systems/raspberry-pi
@@ -2,11 +2,11 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
bool "Raspberry PI"
select ADK_arm
select ADK_little
- select ADK_fpu_vfp
select ADK_raspberry_pi
select ADK_CPU_ARM1176JZF_S
- select ADK_TARGET_BOARD_BCM28XX
select ADK_TARGET_CPU_WITH_FPU
+ select ADK_TARGET_CPU_WITH_FPU_VFP
+ select ADK_TARGET_BOARD_BCM28XX
select ADK_TARGET_WITH_VGA
select ADK_TARGET_WITH_SERIAL
select ADK_TARGET_WITH_CPU_FREQ
diff --git a/target/arm/systems/raspberry-pi2 b/target/arm/systems/raspberry-pi2
index a546aef6e..58efa4b93 100644
--- a/target/arm/systems/raspberry-pi2
+++ b/target/arm/systems/raspberry-pi2
@@ -2,11 +2,11 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI2
bool "Raspberry PI 2"
select ADK_arm
select ADK_little
- select ADK_fpu_vfp
select ADK_raspberry_pi2
select ADK_CPU_CORTEX_A7
select ADK_TARGET_BOARD_BCM28XX
select ADK_TARGET_CPU_WITH_FPU
+ select ADK_TARGET_CPU_WITH_FPU_NEON
select ADK_TARGET_WITH_VGA
select ADK_TARGET_WITH_SERIAL
select ADK_TARGET_WITH_CPU_FREQ
diff --git a/target/arm/systems/solidrun-imx6 b/target/arm/systems/solidrun-imx6
index 7c6ecccdf..f3228d703 100644
--- a/target/arm/systems/solidrun-imx6
+++ b/target/arm/systems/solidrun-imx6
@@ -2,10 +2,10 @@ config ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
bool "Solidrun IMX6 Embedded Systems"
select ADK_arm
select ADK_little
- select ADK_fpu_neon
select ADK_solidrun_imx6
select ADK_CPU_CORTEX_A9
select ADK_TARGET_CPU_WITH_FPU
+ select ADK_TARGET_CPU_WITH_FPU_NEON
select ADK_TARGET_WITH_VGA
select ADK_TARGET_WITH_SERIAL
select ADK_TARGET_WITH_CPU_FREQ
diff --git a/target/config/Config.in.arm.default b/target/config/Config.in.arm.default
index 4e1e17c7e..43df6220c 100644
--- a/target/config/Config.in.arm.default
+++ b/target/config/Config.in.arm.default
@@ -1,14 +1,3 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
-config ADK_fpu_neon
- bool
-
-config ADK_fpu_vfp
- bool
-
-config ADK_TARGET_FPU
- string
- default "vfp" if ADK_fpu_vfp
- default "neon" if ADK_fpu_neon
-
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index 2df3567f2..823d21d86 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -4,6 +4,22 @@
config ADK_TARGET_CPU_WITH_FPU
bool
+config ADK_TARGET_CPU_WITH_FPU_VFP
+ bool
+ select ADK_fpu_vfp
+
+config ADK_TARGET_CPU_WITH_FPU_VFP3
+ bool
+ select ADK_fpu_vfp3
+
+config ADK_TARGET_CPU_WITH_FPU_VFP4
+ bool
+ select ADK_fpu_vfp4
+
+config ADK_TARGET_CPU_WITH_FPU_NEON
+ bool
+ select ADK_fpu_neon
+
config ADK_TARGET_CPU_WITH_VT
bool
diff --git a/target/config/Config.in.fpu b/target/config/Config.in.fpu
new file mode 100644
index 000000000..c42d62c0a
--- /dev/null
+++ b/target/config/Config.in.fpu
@@ -0,0 +1,5 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+source target/config/Config.in.fpu.choice
+source target/config/Config.in.fpu.default
diff --git a/target/config/Config.in.fpu.choice b/target/config/Config.in.fpu.choice
new file mode 100644
index 000000000..43df6220c
--- /dev/null
+++ b/target/config/Config.in.fpu.choice
@@ -0,0 +1,3 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
diff --git a/target/config/Config.in.fpu.default b/target/config/Config.in.fpu.default
new file mode 100644
index 000000000..095b2cb5f
--- /dev/null
+++ b/target/config/Config.in.fpu.default
@@ -0,0 +1,23 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+config ADK_fpu_neon
+ bool
+
+config ADK_fpu_vfp
+ bool
+
+config ADK_fpu_vfp3
+ bool
+
+config ADK_fpu_vfp4
+ bool
+
+config ADK_TARGET_FPU
+ string
+ depends on ADK_TARGET_ARCH_ARM
+ default "vfp" if ADK_fpu_vfp
+ default "vfp3" if ADK_fpu_vfp3
+ default "vfp4" if ADK_fpu_vfp4
+ default "neon" if ADK_fpu_neon
+
diff --git a/target/config/Config.in.qemu b/target/config/Config.in.qemu
index 4d13e14dd..e7b15818c 100644
--- a/target/config/Config.in.qemu
+++ b/target/config/Config.in.qemu
@@ -36,6 +36,7 @@ config ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
bool "ARM Ltd. Versatile Express with Cortex-A9"
select ADK_CPU_CORTEX_A9
select ADK_TARGET_CPU_WITH_FPU
+ select ADK_TARGET_CPU_WITH_FPU_NEON
config ADK_TARGET_QEMU_ARM_MODEL_STELLARIS_M3
bool "Stellaris LM3S6965EVB with Cortex-M3"
diff --git a/target/linux/config/Config.in.kernel b/target/linux/config/Config.in.kernel
index 18b7bdc6f..b303c473d 100644
--- a/target/linux/config/Config.in.kernel
+++ b/target/linux/config/Config.in.kernel
@@ -173,6 +173,22 @@ menu "Kernel options"
config ADK_KERNEL_MMU
bool
+config ADK_KERNEL_VFP
+ bool
+ default y if ADK_TARGET_CPU_WITH_FPU_VFP
+
+config ADK_KERNEL_VFPv3
+ bool
+ default y if ADK_TARGET_CPU_WITH_FPU_VFP3
+
+config ADK_KERNEL_NEON
+ bool
+ default y if ADK_TARGET_CPU_WITH_FPU_NEON
+
+config ADK_KERNEL_MODE_NEON
+ bool
+ default y if ADK_TARGET_CPU_WITH_FPU_NEON
+
config ADK_TARGET_NO_CMDLINE
bool "Do not builtin any kernel cmdline"
help
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 2297b7ba7..eecf59968 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -86,8 +86,10 @@ endif
#
ifneq ($(ADK_TARGET_ARCH_ARM)$(ADK_TARGET_ARCH_MIPS)$(ADK_TARGET_ARCH_PPC),)
+ifneq ($(ADK_TARGET_FLOAT),)
GCC_CONFOPTS+= --with-float=$(ADK_TARGET_FLOAT)
endif
+endif
ifeq ($(ADK_TARGET_ARCH_M68K)$(ADK_TARGET_ARCH_SH)$(ADK_TARGET_ARCH_X86_64)$(ADK_TARGET_ARCH_X86),)
GCC_FINAL_CONFOPTS+= --disable-biarch --disable-multilib