Build: Decide RTX library by architecture
Change-Id: I9de58b4e6e3b617536464d60a61289d821aa9a69
Signed-off-by: Kevin Peng <kevin.peng@arm.com>
Co-authored-by: David Hu <david.hu@arm.com>
diff --git a/lib/ext/CMSIS/CMakeLists.txt b/lib/ext/CMSIS/CMakeLists.txt
index f994d55..94365b3 100644
--- a/lib/ext/CMSIS/CMakeLists.txt
+++ b/lib/ext/CMSIS/CMakeLists.txt
@@ -39,6 +39,35 @@
message(FATAL_ERROR "${CMAKE_C_COMPILER_ID} does not have CMSIS RTX static libraries set up")
endif()
+# Select RTX library according to cpu/arch type
+if(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv6-m")
+ set(CMSIS_5_RTX_LIB "CMSIS_5_RTX_CM3")
+elseif(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8-m.base")
+ set(CMSIS_5_RTX_LIB "CMSIS_5_RTX_V8MBN")
+elseif(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8-m.main")
+ if(CONFIG_TFM_ENABLE_FP OR CONFIG_TFM_ENABLE_MVE_FP)
+ set(CMSIS_5_RTX_LIB "CMSIS_5_RTX_V8MMFN")
+ else()
+ set(CMSIS_5_RTX_LIB "CMSIS_5_RTX_V8MMN")
+ endif()
+elseif(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8.1-m.main")
+ if("${CMAKE_C_COMPILER_ID}" STREQUAL "IAR")
+ set(CMSIS_5_RTX_LIB "CMSIS_5_RTX_V81MMN")
+ elseif(CONFIG_TFM_ENABLE_FP OR CONFIG_TFM_ENABLE_MVE_FP)
+ set(CMSIS_5_RTX_LIB "CMSIS_5_RTX_V8MMFN")
+ else()
+ set(CMSIS_5_RTX_LIB "CMSIS_5_RTX_V8MMN")
+ endif()
+elseif(TFM_SYSTEM_PROCESSOR STREQUAL "cortex-m4")
+ set(CMSIS_5_RTX_LIB "CMSIS_5_RTX_CM3")
+endif()
+
+if(NOT DEFINED CMSIS_5_RTX_LIB)
+ message(FATAL_ERROR
+ "Unable to select CMSIS RTX library."
+ "Unsupported processor ${TFM_SYSTEM_PROCESSOR} or architecture ${TFM_SYSTEM_ARCHITECTURE}")
+endif()
+
add_library(RTX_OS INTERFACE)
target_sources(RTX_OS
@@ -57,6 +86,6 @@
target_link_libraries(RTX_OS
INTERFACE
- CMSIS_5_RTX_V8MMN
+ ${CMSIS_5_RTX_LIB}
platform_ns # for cmsis_compiler.h
)