From e029d0862859a7dbce0e2a717e76ae0888cc7cc3 Mon Sep 17 00:00:00 2001 From: Ioannis Glaropoulos Date: Fri, 8 Feb 2019 14:58:26 +0100 Subject: [PATCH] soc: arm: Kconfig option to indicate double-precision FP This commit introduces a Kconfig option for ARM SoCs, to signify that the SoC implements a double-precision floating point unit. The option is utilized in cmake/fpu-for-gcc-m-cpu to select the appropriate GCC compile option flag for FPU. Signed-off-by: Ioannis Glaropoulos --- cmake/fpu-for-gcc-m-cpu.cmake | 12 +++++++++--- soc/arm/Kconfig | 9 +++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/cmake/fpu-for-gcc-m-cpu.cmake b/cmake/fpu-for-gcc-m-cpu.cmake index c52b1638fcd..76562ad4ff0 100644 --- a/cmake/fpu-for-gcc-m-cpu.cmake +++ b/cmake/fpu-for-gcc-m-cpu.cmake @@ -1,5 +1,11 @@ # Defines a mapping from GCC_M_CPU to FPU -set(FPU_FOR_cortex-m4 fpv4-sp-d16) -set(FPU_FOR_cortex-m7 fpv5-d16) -set(FPU_FOR_cortex-m33 fpv5-sp-d16) +if(CONFIG_CPU_HAS_FPU_DOUBLE_PRECISION) + set(PRECISION_TOKEN) +else() + set(PRECISION_TOKEN sp-) +endif() + +set(FPU_FOR_cortex-m4 fpv4-${PRECISION_TOKEN}d16) +set(FPU_FOR_cortex-m7 fpv5-${PRECISION_TOKEN}d16) +set(FPU_FOR_cortex-m33 fpv5-${PRECISION_TOKEN}d16) diff --git a/soc/arm/Kconfig b/soc/arm/Kconfig index e3985c98f3c..7d3ad08a168 100644 --- a/soc/arm/Kconfig +++ b/soc/arm/Kconfig @@ -39,6 +39,15 @@ config CPU_HAS_NRF_IDAU (IDAU: "Implementation-Defined Attribution Unit", in accordance with ARM terminology). +config CPU_HAS_FPU_DOUBLE_PRECISION + bool + # Omit prompt to signify "hidden" option + depends on CPU_CORTEX_M7 + select CPU_HAS_FPU + help + When enabled, indicates that the SoC has a double + floating point precision unit. + config HAS_SWO bool # Omit prompt to signify "hidden" option