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