SPM: Enable FP usage in NSPE for gnu arm embedded toolchain
1. Enable FP usage in SPE and NSPE by same parameter: CONFIG_TFM_FP
(soft and hard ABI types) for IPC model.
It doesn't support LIBRARY or SFN model at current stage.
2. Enable lazy stacking by CONFIG_TFM_LAZY_STACKING (OFF, ON).
Note: Same FP ABI type shall be used for SPE and NSPE at the same
time, for FP design in Armv8.0-M architecture requires consistent
FP ABI types between SPE and NSPE.
Signed-off-by: Feder Liang <Feder.Liang@arm.com>
Change-Id: I186d55d0a9d47b8d49693c919a6fcd1e061dc36d
diff --git a/toolchain_GNUARM.cmake b/toolchain_GNUARM.cmake
index 4a1e1b2..7645f58 100644
--- a/toolchain_GNUARM.cmake
+++ b/toolchain_GNUARM.cmake
@@ -104,8 +104,8 @@
endif()
if(GCC_VERSION VERSION_GREATER_EQUAL "8.0.0")
- if (DEFINED CONFIG_TFM_SPE_FP)
- if(CONFIG_TFM_SPE_FP STRGREATER 0)
+ if (DEFINED CONFIG_TFM_FP)
+ if(CONFIG_TFM_FP STREQUAL "hard")
string(APPEND CMAKE_SYSTEM_ARCH "+fp")
endif()
endif()
@@ -150,12 +150,9 @@
set(BL2_COMPILER_CP_FLAG -mfloat-abi=soft)
- if (CONFIG_TFM_SPE_FP STREQUAL "2")
+ if (CONFIG_TFM_FP STREQUAL "hard")
set(COMPILER_CP_FLAG -mfloat-abi=hard -mfpu=${CONFIG_TFM_FP_ARCH})
set(LINKER_CP_OPTION -mfloat-abi=hard -mfpu=${CONFIG_TFM_FP_ARCH})
- elseif (CONFIG_TFM_SPE_FP STREQUAL "1")
- set(COMPILER_CP_FLAG -mfloat-abi=softfp -mfpu=${CONFIG_TFM_FP_ARCH})
- set(LINKER_CP_OPTION -mfloat-abi=softfp -mfpu=${CONFIG_TFM_FP_ARCH})
else()
set(COMPILER_CP_FLAG -mfloat-abi=soft)
set(LINKER_CP_OPTION -mfloat-abi=soft)