diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2015-04-03 14:41:07 -0500 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2015-04-03 14:41:07 -0500 |
commit | 21b8f713db4b71cdf1e329afb3372aadec88f1e7 (patch) | |
tree | e9e9fd057ce7b6ec8d797374addd949842f49423 | |
parent | bf46ae546e86c39e2b0f900610b9a72076af35b4 (diff) |
rework FPU support for ARM again
With this commit I broke Kodi support for cubox-i:
4f93b213f2d3393fbb0b7ca200988f475e6cef83
I found following info regarding VFP and NEON:
http://community.arm.com/groups/tools/blog/2013/04/15/arm-cortex-a-processors-and-gcc-command-lines
Try to implement with this table in mind.
-rw-r--r-- | target/arm/systems/raspberry-pi2 | 1 | ||||
-rw-r--r-- | target/arm/systems/solidrun-imx6 | 1 | ||||
-rw-r--r-- | target/config/Config.in.cpu | 20 | ||||
-rw-r--r-- | target/config/Config.in.fpu.choice | 6 | ||||
-rw-r--r-- | target/config/Config.in.fpu.default | 14 | ||||
-rw-r--r-- | target/linux/config/Config.in.kernel | 4 |
6 files changed, 38 insertions, 8 deletions
diff --git a/target/arm/systems/raspberry-pi2 b/target/arm/systems/raspberry-pi2 index 0ca33a131..6aae1f623 100644 --- a/target/arm/systems/raspberry-pi2 +++ b/target/arm/systems/raspberry-pi2 @@ -4,7 +4,6 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI2 select ADK_raspberry_pi2 select ADK_TARGET_LITTLE_ENDIAN select ADK_CPU_CORTEX_A7 - select ADK_TARGET_CPU_WITH_NEON select ADK_TARGET_BOARD_BCM28XX select ADK_TARGET_WITH_VGA select ADK_TARGET_WITH_SERIAL diff --git a/target/arm/systems/solidrun-imx6 b/target/arm/systems/solidrun-imx6 index ebda88096..ddb274be1 100644 --- a/target/arm/systems/solidrun-imx6 +++ b/target/arm/systems/solidrun-imx6 @@ -4,7 +4,6 @@ config ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 select ADK_solidrun_imx6 select ADK_TARGET_LITTLE_ENDIAN select ADK_CPU_CORTEX_A9 - select ADK_TARGET_CPU_WITH_NEON select ADK_TARGET_WITH_VGA select ADK_TARGET_WITH_SERIAL select ADK_TARGET_WITH_CPU_FREQ diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu index 10909a12e..1dcd72fd0 100644 --- a/target/config/Config.in.cpu +++ b/target/config/Config.in.cpu @@ -77,22 +77,40 @@ config ADK_CPU_CORTEX_M4 bool select ADK_TARGET_WITH_LT +config ADK_CPU_CORTEX_A5 + bool + select ADK_TARGET_WITH_NPTL + select ADK_TARGET_WITH_MMU + select ADK_TARGET_CPU_WITH_FPU_VFPV3 + select ADK_TARGET_CPU_WITH_NEON + config ADK_CPU_CORTEX_A7 bool select ADK_TARGET_WITH_NPTL select ADK_TARGET_WITH_MMU select ADK_TARGET_CPU_WITH_FPU_VFPV4 + select ADK_TARGET_CPU_WITH_NEON config ADK_CPU_CORTEX_A8 bool select ADK_TARGET_WITH_NPTL select ADK_TARGET_WITH_MMU + select ADK_TARGET_CPU_WITH_FPU_VFPV3 + select ADK_TARGET_CPU_WITH_NEON config ADK_CPU_CORTEX_A9 bool select ADK_TARGET_WITH_NPTL select ADK_TARGET_WITH_MMU select ADK_TARGET_CPU_WITH_FPU_VFPV3 + select ADK_TARGET_CPU_WITH_NEON + +config ADK_CPU_CORTEX_A15 + bool + select ADK_TARGET_WITH_NPTL + select ADK_TARGET_WITH_MMU + select ADK_TARGET_CPU_WITH_FPU_VFPV4 + select ADK_TARGET_CPU_WITH_NEON config ADK_CPU_CORTEX_A53 bool @@ -306,9 +324,11 @@ config ADK_TARGET_GCC_CPU default "arm1176jzf-s" if ADK_CPU_ARM1176JZF_S default "arm926ej-s" if ADK_CPU_ARM926EJ_S default "armv8-a" if ADK_CPU_ARMV8 + default "cortex-a5" if ADK_CPU_CORTEX_A5 default "cortex-a7" if ADK_CPU_CORTEX_A7 default "cortex-a8" if ADK_CPU_CORTEX_A8 default "cortex-a9" if ADK_CPU_CORTEX_A9 + default "cortex-a15" if ADK_CPU_CORTEX_A15 default "cortex-a53" if ADK_CPU_CORTEX_A53 default "cortex-a57" if ADK_CPU_CORTEX_A57 default "cortex-m3" if ADK_CPU_CORTEX_M3 diff --git a/target/config/Config.in.fpu.choice b/target/config/Config.in.fpu.choice index 43df6220c..47ac22ddd 100644 --- a/target/config/Config.in.fpu.choice +++ b/target/config/Config.in.fpu.choice @@ -1,3 +1,9 @@ # This file is part of the OpenADK project. OpenADK is copyrighted # material, please see the LICENCE file in the top-level directory. +config ADK_TARGET_ARCH_ARM_WITH_NEON + bool "enable NEON SIMD support" + depends on ADK_TARGET_ARCH_ARM + default n + help + Enable support for NEON SIMD CPU extensions. diff --git a/target/config/Config.in.fpu.default b/target/config/Config.in.fpu.default index c55b0a602..55c00e0a5 100644 --- a/target/config/Config.in.fpu.default +++ b/target/config/Config.in.fpu.default @@ -4,7 +4,13 @@ config ADK_TARGET_FPU string depends on ADK_TARGET_ARCH_ARM - default "neon" if ADK_TARGET_CPU_WITH_NEON - default "vfp" if ADK_TARGET_CPU_WITH_FPU_VFP - default "vfpv3" if ADK_TARGET_CPU_WITH_FPU_VFPV3 - default "vfpv4" if ADK_TARGET_CPU_WITH_FPU_VFPV4 + default "vfpv3-fp16" if ADK_CPU_CORTEX_A5 && !ADK_TARGET_ARCH_ARM_WITH_NEON + default "vfpv4" if ADK_CPU_CORTEX_A7 && !ADK_TARGET_ARCH_ARM_WITH_NEON + default "vfpv3" if ADK_CPU_CORTEX_A8 && !ADK_TARGET_ARCH_ARM_WITH_NEON + default "vfpv3-fp16" if ADK_CPU_CORTEX_A9 && !ADK_TARGET_ARCH_ARM_WITH_NEON + default "vfpv4" if ADK_CPU_CORTEX_A15 && !ADK_TARGET_ARCH_ARM_WITH_NEON + default "neon-fp16" if ADK_CPU_CORTEX_A5 && ADK_TARGET_ARCH_ARM_WITH_NEON + default "neon-vfpv4" if ADK_CPU_CORTEX_A7 && ADK_TARGET_ARCH_ARM_WITH_NEON + default "neon" if ADK_CPU_CORTEX_A8 && ADK_TARGET_ARCH_ARM_WITH_NEON + default "neon-fp16" if ADK_CPU_CORTEX_A9 && ADK_TARGET_ARCH_ARM_WITH_NEON + default "neon-vfpv4" if ADK_CPU_CORTEX_A15 && ADK_TARGET_ARCH_ARM_WITH_NEON diff --git a/target/linux/config/Config.in.kernel b/target/linux/config/Config.in.kernel index 9583beeff..95904d9af 100644 --- a/target/linux/config/Config.in.kernel +++ b/target/linux/config/Config.in.kernel @@ -198,11 +198,11 @@ config ADK_KERNEL_VFPv4 config ADK_KERNEL_NEON bool - default y if ADK_TARGET_CPU_WITH_NEON + default y if ADK_TARGET_ARCH_ARM_WITH_NEON config ADK_KERNEL_MODE_NEON bool - default y if ADK_TARGET_CPU_WITH_NEON + default y if ADK_TARGET_ARCH_ARM_WITH_NEON config ADK_TARGET_NO_CMDLINE bool "Do not builtin any kernel cmdline" |