Interface: Improvements on framework_feature
- Restrict variable replacement on "@VAR@" only
- Set PSA_FRAMEWORK_ISOLATION_LEVEL before configure_file
- Add invalid config check on:
TFM_LIB_MODEL AND PSA_FRAMEWORK_ISOLATION_LEVEL
Change-Id: Ib3a681716dfb148f62ca4ea0c03b2de9a65b7ca5
Signed-off-by: Kevin Peng <kevin.peng@arm.com>
diff --git a/config/check_config.cmake b/config/check_config.cmake
index 2641a71..ffe0457 100644
--- a/config/check_config.cmake
+++ b/config/check_config.cmake
@@ -30,6 +30,7 @@
tfm_invalid_config(TFM_ISOLATION_LEVEL EQUAL 3 AND NOT TFM_PLATFORM IN_LIST TFM_L3_PLATFORM_LISTS)
tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND TFM_LIB_MODEL)
tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND PSA_FRAMEWORK_HAS_MM_IOVEC)
+tfm_invalid_config(TFM_LIB_MODEL AND PSA_FRAMEWORK_HAS_MM_IOVEC)
tfm_invalid_config(TFM_MULTI_CORE_TOPOLOGY AND TFM_LIB_MODEL)
tfm_invalid_config(TFM_PLAT_SPECIFIC_MULTI_CORE_COMM AND NOT TFM_MULTI_CORE_TOPOLOGY)
diff --git a/config/tfm_ipc_config_default.cmake b/config/tfm_ipc_config_default.cmake
index 066a5c5..b8b16b4 100644
--- a/config/tfm_ipc_config_default.cmake
+++ b/config/tfm_ipc_config_default.cmake
@@ -8,7 +8,3 @@
############################ Partitions ########################################
set(TFM_PSA_API ON CACHE BOOL "Use PSA API instead of secure library model")
-
-# Dummy PSA_FRAMEWORK_ISOLATION_LEVEL to let framework_feature.h.in "#define" it always.
-# PSA_FRAMEWORK_ISOLATION_LEVEL should replace TFM_ISOLATION_LEVEL in the future.
-set(PSA_FRAMEWORK_ISOLATION_LEVEL ON)
diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt
index bc216b8..ec7f2d1 100644
--- a/interface/CMakeLists.txt
+++ b/interface/CMakeLists.txt
@@ -10,8 +10,10 @@
cmake_policy(SET CMP0079 NEW)
# Generate framework feature
+set(PSA_FRAMEWORK_ISOLATION_LEVEL ${TFM_ISOLATION_LEVEL})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/psa/framework_feature.h.in
- ${CMAKE_BINARY_DIR}/generated/interface/include/psa/framework_feature.h)
+ ${CMAKE_BINARY_DIR}/generated/interface/include/psa/framework_feature.h
+ @ONLY)
if (TFM_MULTI_CORE_TOPOLOGY)
include(${CMAKE_SOURCE_DIR}/platform/ext/target/${TFM_PLATFORM}/preload_ns.cmake)
diff --git a/interface/include/psa/framework_feature.h.in b/interface/include/psa/framework_feature.h.in
index 7ac73a6..606c406 100644
--- a/interface/include/psa/framework_feature.h.in
+++ b/interface/include/psa/framework_feature.h.in
@@ -8,7 +8,7 @@
#ifndef __PSA_FRAMEWORK_FEATURE_H__
#define __PSA_FRAMEWORK_FEATURE_H__
-#cmakedefine PSA_FRAMEWORK_ISOLATION_LEVEL ${TFM_ISOLATION_LEVEL}
+#cmakedefine PSA_FRAMEWORK_ISOLATION_LEVEL @PSA_FRAMEWORK_ISOLATION_LEVEL@
#cmakedefine01 PSA_FRAMEWORK_HAS_MM_IOVEC
#endif /* __PSA_FRAMEWORK_FEATURE_H__ */