Build: Remove isolation level 3

- Update the comment in config files to indicate that only isolation
  level 1 and 2 are supported.
- Add isolation level check in CommonConfig.cmake.

Change-Id: I0c458b9f0f3f865e1e2659dab05f660389dce306
Signed-off-by: Edison Ai <edison.ai@arm.com>
diff --git a/CommonConfig.cmake b/CommonConfig.cmake
index 1133c97..01c637d 100644
--- a/CommonConfig.cmake
+++ b/CommonConfig.cmake
@@ -19,6 +19,16 @@
 	message(FATAL_ERROR "ERROR: Compiler \"${COMPILER}\" is not supported.")
 endif()
 
+if(CORE_IPC)
+	if (TFM_LVL EQUAL 3)
+		message(FATAL_ERROR "ERROR: Invalid isolation level!")
+	endif()
+else()
+	if(NOT TFM_LVL EQUAL 1)
+		message(FATAL_ERROR "ERROR: Invalid isolation level!")
+	endif()
+endif()
+
 #BL2 bootloader (MCUBoot) related settings
 if(NOT DEFINED BL2)
 	set(BL2 True CACHE BOOL "Configure TF-M to use BL2 and enable building BL2")
diff --git a/configs/ConfigCoreIPC.cmake b/configs/ConfigCoreIPC.cmake
index 69103c6..87b0c67 100644
--- a/configs/ConfigCoreIPC.cmake
+++ b/configs/ConfigCoreIPC.cmake
@@ -37,7 +37,7 @@
 set (CORE_IPC True)
 set (PSA_API_TEST False)
 
-# TF-M isolation level: 1..3
+# TF-M isolation level: 1, 2
 set (TFM_LVL 1)
 
 include ("${TFM_ROOT_DIR}/CommonConfig.cmake")
diff --git a/configs/ConfigCoreIPCTfmLevel2.cmake b/configs/ConfigCoreIPCTfmLevel2.cmake
index ddbc7d0..12eb09b 100644
--- a/configs/ConfigCoreIPCTfmLevel2.cmake
+++ b/configs/ConfigCoreIPCTfmLevel2.cmake
@@ -37,7 +37,7 @@
 set (CORE_IPC True)
 set (PSA_API_TEST False)
 
-# TF-M isolation level: 1..3
+# TF-M isolation level: 1, 2
 set (TFM_LVL 2)
 
 include ("${TFM_ROOT_DIR}/CommonConfig.cmake")
diff --git a/configs/ConfigCoreTest.cmake b/configs/ConfigCoreTest.cmake
index 7a5172b..72700f1 100644
--- a/configs/ConfigCoreTest.cmake
+++ b/configs/ConfigCoreTest.cmake
@@ -37,7 +37,7 @@
 set (CORE_IPC False)
 set (PSA_API_TEST False)
 
-# TF-M isolation level: 1..3
+# TF-M isolation level: 1
 set (TFM_LVL 1)
 
 include ("${TFM_ROOT_DIR}/CommonConfig.cmake")
diff --git a/configs/ConfigDefault.cmake b/configs/ConfigDefault.cmake
index 3674803..b1e3bb7 100644
--- a/configs/ConfigDefault.cmake
+++ b/configs/ConfigDefault.cmake
@@ -37,7 +37,7 @@
 set (CORE_IPC False)
 set (PSA_API_TEST False)
 
-# TF-M isolation level: 1..3
+# TF-M isolation level: 1
 set (TFM_LVL 1)
 
 include ("${TFM_ROOT_DIR}/CommonConfig.cmake")
diff --git a/configs/ConfigPsaApiTest.cmake b/configs/ConfigPsaApiTest.cmake
index fe03ae6..1daa717 100644
--- a/configs/ConfigPsaApiTest.cmake
+++ b/configs/ConfigPsaApiTest.cmake
@@ -37,7 +37,7 @@
 set (CORE_IPC False)
 set (PSA_API_TEST True)
 
-#TF-M isolation level: 1..3
+#TF-M isolation level: 1
 set (TFM_LVL 1)
 
 #Service specific configuration for the PSA API Compliance test requirements
diff --git a/configs/ConfigPsaApiTestIPC.cmake b/configs/ConfigPsaApiTestIPC.cmake
index 57bb1d9..1bede26 100644
--- a/configs/ConfigPsaApiTestIPC.cmake
+++ b/configs/ConfigPsaApiTestIPC.cmake
@@ -37,7 +37,7 @@
 set (CORE_IPC True)
 set (PSA_API_TEST True)
 
-#TF-M isolation level: 1..3
+#TF-M isolation level: 1, 2
 set (TFM_LVL 1)
 
 #BL2 bootloader(MCUBoot) related settings
diff --git a/configs/ConfigPsaApiTestIPCTfmLevel2.cmake b/configs/ConfigPsaApiTestIPCTfmLevel2.cmake
index 6829df9..7a3124f 100644
--- a/configs/ConfigPsaApiTestIPCTfmLevel2.cmake
+++ b/configs/ConfigPsaApiTestIPCTfmLevel2.cmake
@@ -33,7 +33,7 @@
 set (CORE_IPC True)
 set (PSA_API_TEST True)
 
-# TF-M isolation level: 1..3
+# TF-M isolation level: 1, 2
 set (TFM_LVL 2)
 
 #BL2 bootloader(MCUBoot) related settings
diff --git a/configs/ConfigRegression.cmake b/configs/ConfigRegression.cmake
index cca5c4b..aecb0ef 100644
--- a/configs/ConfigRegression.cmake
+++ b/configs/ConfigRegression.cmake
@@ -37,7 +37,7 @@
 set (CORE_IPC False)
 set (PSA_API_TEST False)
 
-# TF-M isolation level: 1..3
+# TF-M isolation level: 1
 set (TFM_LVL 1)
 
 include ("${TFM_ROOT_DIR}/CommonConfig.cmake")
diff --git a/configs/ConfigRegressionIPC.cmake b/configs/ConfigRegressionIPC.cmake
index bb797dc..23b90c7 100644
--- a/configs/ConfigRegressionIPC.cmake
+++ b/configs/ConfigRegressionIPC.cmake
@@ -37,7 +37,7 @@
 set (CORE_IPC True)
 set (PSA_API_TEST False)
 
-# TF-M isolation level: 1..3
+# TF-M isolation level: 1, 2
 set (TFM_LVL 1)
 
 #BL2 bootloader(MCUBoot) related settings
diff --git a/configs/ConfigRegressionIPCTfmLevel2.cmake b/configs/ConfigRegressionIPCTfmLevel2.cmake
index d94e9d6..a83249f 100644
--- a/configs/ConfigRegressionIPCTfmLevel2.cmake
+++ b/configs/ConfigRegressionIPCTfmLevel2.cmake
@@ -37,7 +37,7 @@
 set (CORE_IPC True)
 set (PSA_API_TEST False)
 
-# TF-M isolation level: 1..3
+# TF-M isolation level: 1, 2
 set (TFM_LVL 2)
 
 #BL2 bootloader(MCUBoot) related settings
diff --git a/secure_fw/core/tfm_core.c b/secure_fw/core/tfm_core.c
index abfa6b1..6bd0eed 100644
--- a/secure_fw/core/tfm_core.c
+++ b/secure_fw/core/tfm_core.c
@@ -46,8 +46,15 @@
 #ifndef TFM_LVL
 #error TFM_LVL is not defined!
 #endif
-#if (TFM_LVL != 1) && (TFM_LVL != 2) && (TFM_LVL != 3)
-#error Only TFM_LVL 1, 2 and 3 are supported!
+
+#ifdef TFM_PSA_API
+#if (TFM_LVL != 1) && (TFM_LVL != 2)
+#error Only TFM_LVL 1 and 2 are supported for IPC model!
+#endif
+#else
+#if (TFM_LVL != 1)
+#error Only TFM_LVL 1 is supported for library model!
+#endif
 #endif
 
 /* Macros to pick linker symbols and allow to form the partition data base */