Build: Support building IPC model without tests

Refactors the build configuration variables so that the Core IPC tests
are only built if either CORE_TEST or REGRESSION is enabled (as well as
CORE_IPC). This matches the build behaviour for library model.

Adds a TFM_PARTITION_TEST_CORE_IPC build variable to make it possible
to compile-out the Core IPC test partition when the Core IPC tests are
not built.

Removes some unneeded build system behaviour that was conditional on
CORE_TEST to avoid causing problems when CORE_IPC is enabled.

Change-Id: Ia88bd3785817cc2dcedf88b737690fc32cc3266e
Signed-off-by: Jamie Fox <jamie.fox@arm.com>
diff --git a/CommonConfig.cmake b/CommonConfig.cmake
index eb37566..bfcdf18 100644
--- a/CommonConfig.cmake
+++ b/CommonConfig.cmake
@@ -103,6 +103,7 @@
 #Settings which shall be set for all projects the same way based
 # on the variables above.
 set (TFM_PARTITION_TEST_CORE OFF)
+set (TFM_PARTITION_TEST_CORE_IPC OFF)
 set (CORE_TEST_POSITIVE OFF)
 set (CORE_TEST_INTERACTIVE OFF)
 set (REFERENCE_PLATFORM OFF)
@@ -130,7 +131,6 @@
 
 if (CORE_IPC)
 	set(TFM_PSA_API ON)
-	set(CORE_TEST_IPC ON)
 endif()
 
 if (TFM_PSA_API)
@@ -144,14 +144,20 @@
 if (SERVICES_TEST_ENABLED)
 	set(SERVICE_TEST_S ON)
 	set(SERVICE_TEST_NS ON)
-	if (REFERENCE_PLATFORM AND NOT CORE_IPC)
+	if (CORE_IPC)
+		set(CORE_TEST_IPC ON)
+	elseif (REFERENCE_PLATFORM)
 		set(CORE_TEST_POSITIVE ON)
 	endif()
 endif()
 
 if (CORE_TEST)
-	set(CORE_TEST_POSITIVE ON)
-	set(CORE_TEST_INTERACTIVE OFF)
+	if (CORE_IPC)
+		set(CORE_TEST_IPC ON)
+	elseif (REFERENCE_PLATFORM)
+		set(CORE_TEST_POSITIVE ON)
+		set(CORE_TEST_INTERACTIVE OFF)
+	endif()
 endif()
 
 if (CORE_TEST_INTERACTIVE)
@@ -168,12 +174,14 @@
 
 if (CORE_TEST_IPC)
 	add_definitions(-DCORE_TEST_IPC)
-	# If PSA_API_TEST is enabled, don't run TF-M test framework from NS
-	if (PSA_API_TEST)
-	  set(TEST_FRAMEWORK_NS OFF)
-	else()
-	  set(TEST_FRAMEWORK_NS ON)
-	endif()
+	set(TEST_FRAMEWORK_NS ON)
+	set(TFM_PARTITION_TEST_CORE_IPC ON)
+elseif (CORE_IPC AND (NOT PSA_API_TEST) AND (TFM_LVL EQUAL 1))
+	# FIXME: Running the Core IPC tests in this config is deprecated and will
+	# be removed in the future.
+	set(CORE_TEST_IPC ON)
+	add_definitions(-DCORE_TEST_IPC)
+	set(TEST_FRAMEWORK_NS ON)
 endif()
 
 if (SERVICE_TEST_S)
@@ -213,6 +221,10 @@
 	add_definitions(-DTFM_PARTITION_TEST_CORE)
 endif()
 
+if (TFM_PARTITION_TEST_CORE_IPC)
+	add_definitions(-DTFM_PARTITION_TEST_CORE_IPC)
+endif()
+
 if (TFM_PARTITION_TEST_SECURE_SERVICES)
 	add_definitions(-DTFM_PARTITION_TEST_SECURE_SERVICES)
 endif()
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 5aeebf7..0d1f2d8 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -131,12 +131,6 @@
 embedded_target_include_directories(TARGET ${PROJECT_OBJ_LIB} PATH ${CMSIS_5_DIR}/CMSIS/RTOS2/Include ABSOLUTE APPEND)
 embedded_target_include_directories(TARGET ${PROJECT_OBJ_LIB} PATH ${CMSIS_5_DIR}/CMSIS/RTOS2/RTX/Config  ABSOLUTE APPEND)
 
-if (NOT DEFINED CORE_TEST)
-	message(FATAL_ERROR "Incomplete build configuration: CORE_TEST is undefined. ")
-elseif(CORE_TEST)
-	target_compile_definitions(${PROJECT_OBJ_LIB} PRIVATE CORE_TEST)
-endif()
-
 if (NOT DEFINED TFM_NS_CLIENT_IDENTIFICATION)
 	message(FATAL_ERROR "Incomplete build configuration: TFM_NS_CLIENT_IDENTIFICATION is undefined.")
 elseif (TFM_NS_CLIENT_IDENTIFICATION)
@@ -240,6 +234,12 @@
 		embedded_set_target_link_defines(TARGET ${EXE_NAME} DEFINES "TFM_PARTITION_TEST_CORE")
 	endif()
 
+	if (NOT DEFINED TFM_PARTITION_TEST_CORE_IPC)
+		message(FATAL_ERROR "Incomplete build configuration: TFM_PARTITION_TEST_CORE_IPC is undefined.")
+	elseif (TFM_PARTITION_TEST_CORE_IPC)
+		embedded_set_target_link_defines(TARGET ${EXE_NAME} DEFINES "TFM_PARTITION_TEST_CORE_IPC")
+	endif()
+
 	if (NOT DEFINED TFM_PARTITION_TEST_SECURE_SERVICES)
 		message(FATAL_ERROR "Incomplete build configuration: TFM_PARTITION_TEST_SECURE_SERVICES is undefined. ")
 	elseif (TFM_PARTITION_TEST_SECURE_SERVICES)
diff --git a/interface/include/tfm_veneers.h b/interface/include/tfm_veneers.h
index ae4bb69..db3de27 100644
--- a/interface/include/tfm_veneers.h
+++ b/interface/include/tfm_veneers.h
@@ -107,13 +107,13 @@
 psa_status_t tfm_tfm_secure_client_service_sfn_run_tests_veneer(psa_invec *in_vec, size_t in_len, psa_outvec *out_vec, size_t out_len);
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_SERVICE_TEST ********/
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_CLIENT_TEST ********/
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
 #ifdef __cplusplus
 }
diff --git a/platform/ext/common/armclang/tfm_common_s.sct b/platform/ext/common/armclang/tfm_common_s.sct
index 48e27b1..141c6a9 100644
--- a/platform/ext/common/armclang/tfm_common_s.sct
+++ b/platform/ext/common/armclang/tfm_common_s.sct
@@ -92,12 +92,12 @@
     }
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     TFM_SP_IPC_SERVICE_TEST +0 ALIGN 32 {
         *ipc_service_test.* (+RO)
         *(TFM_SP_IPC_SERVICE_TEST_ATTR_FN)
     }
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
     /*
      * This empty, zero long execution region is here to mark the end address
@@ -128,12 +128,12 @@
     }
 #endif /* TFM_PARTITION_TEST_CORE */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     TFM_SP_IPC_CLIENT_TEST +0 ALIGN 32 {
         *ipc_client_test.* (+RO)
         *(TFM_SP_IPC_CLIENT_TEST_ATTR_FN)
     }
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
     /*
      * This empty, zero long execution region is here to mark the end address
@@ -262,7 +262,7 @@
 #endif
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     TFM_SP_IPC_SERVICE_TEST_DATA +0 ALIGN 32 {
         *ipc_service_test.* (+RW +ZI)
     }
@@ -271,7 +271,7 @@
     TFM_SP_IPC_SERVICE_TEST_STACK +0 ALIGN 128 EMPTY 0x0200 {
     }
 #endif
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
     /*
      * This empty, zero long execution region is here to mark the end address
@@ -310,7 +310,7 @@
 #endif
 #endif /* TFM_PARTITION_TEST_CORE */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     TFM_SP_IPC_CLIENT_TEST_DATA +0 ALIGN 32 {
         *ipc_client_test.* (+RW +ZI)
     }
@@ -319,7 +319,7 @@
     TFM_SP_IPC_CLIENT_TEST_STACK +0 ALIGN 128 EMPTY 0x0200 {
     }
 #endif
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
     /*
      * This empty, zero long execution region is here to mark the end address
diff --git a/platform/ext/common/gcc/tfm_common_s.ld b/platform/ext/common/gcc/tfm_common_s.ld
index 9410b92..f790182 100644
--- a/platform/ext/common/gcc/tfm_common_s.ld
+++ b/platform/ext/common/gcc/tfm_common_s.ld
@@ -103,16 +103,16 @@
         LONG (ADDR(.TFM_SP_SECURE_TEST_PARTITION_DATA))
         LONG (SIZEOF(.TFM_SP_SECURE_TEST_PARTITION_DATA))
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
         LONG (LOADADDR(.TFM_SP_IPC_SERVICE_TEST_DATA))
         LONG (ADDR(.TFM_SP_IPC_SERVICE_TEST_DATA))
         LONG (SIZEOF(.TFM_SP_IPC_SERVICE_TEST_DATA))
-#endif /* TFM_PSA_API */
-#ifdef TFM_PSA_API
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
+#ifdef TFM_PARTITION_TEST_CORE_IPC
         LONG (LOADADDR(.TFM_SP_IPC_CLIENT_TEST_DATA))
         LONG (ADDR(.TFM_SP_IPC_CLIENT_TEST_DATA))
         LONG (SIZEOF(.TFM_SP_IPC_CLIENT_TEST_DATA))
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
         __copy_table_end__ = .;
     } > FLASH
 
@@ -188,22 +188,22 @@
         LONG (SIZEOF(.TFM_SP_SECURE_TEST_PARTITION_STACK))
 #endif
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
         LONG (ADDR(.TFM_SP_IPC_SERVICE_TEST_BSS))
         LONG (SIZEOF(.TFM_SP_IPC_SERVICE_TEST_BSS))
 #if defined(TFM_PSA_API) || (TFM_LVL != 1)
         LONG (ADDR(.TFM_SP_IPC_SERVICE_TEST_STACK))
         LONG (SIZEOF(.TFM_SP_IPC_SERVICE_TEST_STACK))
 #endif
-#endif /* TFM_PSA_API */
-#ifdef TFM_PSA_API
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
+#ifdef TFM_PARTITION_TEST_CORE_IPC
         LONG (ADDR(.TFM_SP_IPC_CLIENT_TEST_BSS))
         LONG (SIZEOF(.TFM_SP_IPC_CLIENT_TEST_BSS))
 #if defined(TFM_PSA_API) || (TFM_LVL != 1)
         LONG (ADDR(.TFM_SP_IPC_CLIENT_TEST_STACK))
         LONG (SIZEOF(.TFM_SP_IPC_CLIENT_TEST_STACK))
 #endif
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 #if !defined(TFM_PSA_API)
         LONG (ADDR(.TFM_UNPRIV_SCRATCH))
         LONG (SIZEOF(.TFM_UNPRIV_SCRATCH))
@@ -334,7 +334,7 @@
     Image$$TFM_SP_SECURE_TEST_PARTITION$$Limit = ADDR(.TFM_SP_SECURE_TEST_PARTITION) + SIZEOF(.TFM_SP_SECURE_TEST_PARTITION);
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     .TFM_SP_IPC_SERVICE_TEST : ALIGN(32)
     {
         *ipc_service_test.*(.text*)
@@ -346,7 +346,7 @@
     Image$$TFM_SP_IPC_SERVICE_TEST$$RO$$Limit = ADDR(.TFM_SP_IPC_SERVICE_TEST) + SIZEOF(.TFM_SP_IPC_SERVICE_TEST);
     Image$$TFM_SP_IPC_SERVICE_TEST$$Base = ADDR(.TFM_SP_IPC_SERVICE_TEST);
     Image$$TFM_SP_IPC_SERVICE_TEST$$Limit = ADDR(.TFM_SP_IPC_SERVICE_TEST) + SIZEOF(.TFM_SP_IPC_SERVICE_TEST);
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
     /**** PSA RoT RO part (CODE + RODATA) end here */
     Image$$TFM_PSA_CODE_END$$Base = .;
@@ -382,7 +382,7 @@
     Image$$TFM_SP_CORE_TEST_2$$Limit = ADDR(.TFM_SP_CORE_TEST_2) + SIZEOF(.TFM_SP_CORE_TEST_2);
 #endif /* TFM_PARTITION_TEST_CORE */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     .TFM_SP_IPC_CLIENT_TEST : ALIGN(32)
     {
         *ipc_client_test.*(.text*)
@@ -394,7 +394,7 @@
     Image$$TFM_SP_IPC_CLIENT_TEST$$RO$$Limit = ADDR(.TFM_SP_IPC_CLIENT_TEST) + SIZEOF(.TFM_SP_IPC_CLIENT_TEST);
     Image$$TFM_SP_IPC_CLIENT_TEST$$Base = ADDR(.TFM_SP_IPC_CLIENT_TEST);
     Image$$TFM_SP_IPC_CLIENT_TEST$$Limit = ADDR(.TFM_SP_IPC_CLIENT_TEST) + SIZEOF(.TFM_SP_IPC_CLIENT_TEST);
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
     /**** APPLICATION RoT RO part (CODE + RODATA) end here */
     Image$$TFM_APP_CODE_END$$Base = .;
@@ -725,7 +725,7 @@
 
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     .TFM_SP_IPC_SERVICE_TEST_DATA : ALIGN(32)
     {
         *ipc_service_test.*(.data*)
@@ -752,7 +752,7 @@
     Image$$TFM_SP_IPC_SERVICE_TEST_STACK$$ZI$$Limit = ADDR(.TFM_SP_IPC_SERVICE_TEST_STACK) + SIZEOF(.TFM_SP_IPC_SERVICE_TEST_STACK);
 #endif
 
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
     /**** PSA RoT DATA end here */
     Image$$TFM_PSA_RW_STACK_END$$Base = .;
@@ -818,7 +818,7 @@
 
 #endif /* TFM_PARTITION_TEST_CORE */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     .TFM_SP_IPC_CLIENT_TEST_DATA : ALIGN(32)
     {
         *ipc_client_test.*(.data*)
@@ -845,7 +845,7 @@
     Image$$TFM_SP_IPC_CLIENT_TEST_STACK$$ZI$$Limit = ADDR(.TFM_SP_IPC_CLIENT_TEST_STACK) + SIZEOF(.TFM_SP_IPC_CLIENT_TEST_STACK);
 #endif
 
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
     /**** APPLICATION RoT DATA end here */
     Image$$TFM_APP_RW_STACK_END$$Base = .;
diff --git a/secure_fw/CMakeLists.txt b/secure_fw/CMakeLists.txt
index 3186c5d..73dcc29 100644
--- a/secure_fw/CMakeLists.txt
+++ b/secure_fw/CMakeLists.txt
@@ -98,7 +98,7 @@
 if (NOT DEFINED CORE_TEST)
 	message(FATAL_ERROR "Incomplete build configuration: CORE_TEST is undefined.")
 elseif(CORE_TEST)
-	embedded_set_target_compile_defines(TARGET ${PROJECT_OBJ_LIB} LANGUAGE C DEFINES TFM_CORE_DEBUG TFM_PARTITION_TEST_CORE APPEND)
+	embedded_set_target_compile_defines(TARGET ${PROJECT_OBJ_LIB} LANGUAGE C DEFINES TFM_CORE_DEBUG APPEND)
 endif()
 
 if (NOT DEFINED TFM_NS_CLIENT_IDENTIFICATION)
@@ -166,7 +166,7 @@
 	#Set macro definitions for the project.
 	embedded_set_target_compile_defines(TARGET ${PROJECT_OBJ_LIB} LANGUAGE C DEFINES __thumb2__ __ARM_FEATURE_CMSE=3 TFM_LVL=${TFM_LVL} ${DEBUG_AUTHENTICATION} APPEND)
 
-	if (REGRESSION OR CORE_TEST OR CORE_IPC)
+	if (REGRESSION OR CORE_TEST)
 		if (DEFINED TFM_PARTITION_TEST_SECURE_SERVICES AND TFM_PARTITION_TEST_SECURE_SERVICES)
 			#The test service veneers in the tfm_secure_tests library may not be
 			#referenced in the secure binary so the veneer objects are explicitly loaded
@@ -213,6 +213,12 @@
 		embedded_set_target_link_defines(TARGET ${EXE_NAME} DEFINES "TFM_PARTITION_TEST_CORE")
 	endif()
 
+	if (NOT DEFINED TFM_PARTITION_TEST_CORE_IPC)
+		message(FATAL_ERROR "Incomplete build configuration: TFM_PARTITION_TEST_CORE_IPC is undefined.")
+	elseif (TFM_PARTITION_TEST_CORE_IPC)
+		embedded_set_target_link_defines(TARGET ${EXE_NAME} DEFINES "TFM_PARTITION_TEST_CORE_IPC")
+	endif()
+
 	if (NOT DEFINED TFM_PARTITION_TEST_SECURE_SERVICES)
 		message(FATAL_ERROR "Incomplete build configuration: TFM_PARTITION_TEST_SECURE_SERVICES is undefined. ")
 	elseif (TFM_PARTITION_TEST_SECURE_SERVICES)
diff --git a/secure_fw/ns_callable/tfm_veneers.c b/secure_fw/ns_callable/tfm_veneers.c
index f04422d..aff38e8 100644
--- a/secure_fw/ns_callable/tfm_veneers.c
+++ b/secure_fw/ns_callable/tfm_veneers.c
@@ -101,13 +101,13 @@
 psa_status_t tfm_secure_client_service_sfn_run_tests(psa_invec *, size_t, psa_outvec *, size_t);
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_SERVICE_TEST ********/
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_CLIENT_TEST ********/
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
 
 #define TFM_VENEER_FUNCTION(partition_name, sfn_name) \
@@ -213,11 +213,11 @@
 TFM_VENEER_FUNCTION(TFM_SP_SECURE_TEST_PARTITION, tfm_secure_client_service_sfn_run_tests)
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_SERVICE_TEST ********/
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_CLIENT_TEST ********/
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
diff --git a/secure_fw/services/crypto/CMakeLists.txt b/secure_fw/services/crypto/CMakeLists.txt
index e288461..5f028c7 100644
--- a/secure_fw/services/crypto/CMakeLists.txt
+++ b/secure_fw/services/crypto/CMakeLists.txt
@@ -37,13 +37,6 @@
 
 include(CMakeLists.inc)
 
-#Configure how we build our target
-if(DEFINED CORE_TEST)
-  set (TFM_LVL 3)
-else()
-  set (TFM_LVL 1)
-endif()
-
 #Create a list of the C defines
 list(APPEND TFM_CRYPTO_C_DEFINES_LIST __ARM_FEATURE_CMSE=3 __thumb2__ TFM_LVL=${TFM_LVL})
 
diff --git a/secure_fw/services/tfm_partition_defs.inc b/secure_fw/services/tfm_partition_defs.inc
index 3a0b197..19e459d 100644
--- a/secure_fw/services/tfm_partition_defs.inc
+++ b/secure_fw/services/tfm_partition_defs.inc
@@ -36,13 +36,13 @@
 #define TFM_SP_SECURE_TEST_PARTITION_ID (TFM_SP_BASE + 7)
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 #define TFM_SP_IPC_SERVICE_TEST_ID (TFM_SP_BASE + 8)
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 #define TFM_SP_IPC_CLIENT_TEST_ID (TFM_SP_BASE + 9)
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
 #define TFM_MAX_USER_PARTITIONS (10)
 
diff --git a/secure_fw/services/tfm_partition_list.inc b/secure_fw/services/tfm_partition_list.inc
index 3a47e19..fef79e6 100644
--- a/secure_fw/services/tfm_partition_list.inc
+++ b/secure_fw/services/tfm_partition_list.inc
@@ -71,20 +71,20 @@
 PARTITION_ADD_PERIPHERAL(TFM_SP_SECURE_TEST_PARTITION, TFM_PERIPHERAL_STD_UART);
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_SERVICE_TEST ********/
 PARTITION_DECLARE(TFM_SP_IPC_SERVICE_TEST, 0
     | SPM_PART_FLAG_IPC
     , "PSA-ROT", 0x00000007, HIGH);
 PARTITION_ADD_INIT_FUNC(TFM_SP_IPC_SERVICE_TEST, ipc_service_test_main);
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_CLIENT_TEST ********/
 PARTITION_DECLARE(TFM_SP_IPC_CLIENT_TEST, 0
     | SPM_PART_FLAG_IPC
     , "APPLICATION-ROT", 0x00000006, NORMAL);
 PARTITION_ADD_INIT_FUNC(TFM_SP_IPC_CLIENT_TEST, ipc_client_init);
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
 #endif /* __TFM_PARTITION_LIST_INC__ */
diff --git a/secure_fw/services/tfm_service_list.inc b/secure_fw/services/tfm_service_list.inc
index 3bc40c7..51b0a51 100644
--- a/secure_fw/services/tfm_service_list.inc
+++ b/secure_fw/services/tfm_service_list.inc
@@ -264,7 +264,7 @@
 },
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_SERVICE_TEST ********/
 {
         "IPC_SID_BASIC",
@@ -275,10 +275,10 @@
         1,
         TFM_VERSION_POLICY_STRICT
 },
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
-#ifdef TFM_PSA_API
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /******** TFM_SP_IPC_CLIENT_TEST ********/
-#endif /* TFM_PSA_API */
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
 #endif /* __TFM_SERVICE_LIST_INC__ */
diff --git a/test/suites/core/CMakeLists.inc b/test/suites/core/CMakeLists.inc
index fef1ee4..85092e2 100644
--- a/test/suites/core/CMakeLists.inc
+++ b/test/suites/core/CMakeLists.inc
@@ -1,5 +1,5 @@
 #-------------------------------------------------------------------------------
-# Copyright (c) 2017-2018, Arm Limited. All rights reserved.
+# Copyright (c) 2017-2019, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -25,7 +25,7 @@
 endif()
 
 if (NOT DEFINED TFM_PARTITION_TEST_CORE)
-	message(FATAL_ERROR "Incomplete build configuration: CORE_TEST is undefined. ")
+	message(FATAL_ERROR "Incomplete build configuration: TFM_PARTITION_TEST_CORE is undefined. ")
 elseif (TFM_PARTITION_TEST_CORE)
 	list(APPEND ALL_SRC_C_NS "${CORE_TEST_DIR}/non_secure/core_test_api.c")
 endif()
@@ -46,4 +46,3 @@
 embedded_include_directories(PATH ${TFM_ROOT_DIR} ABSOLUTE)
 embedded_include_directories(PATH ${TFM_ROOT_DIR}/test/interface/include ABSOLUTE)
 embedded_include_directories(PATH ${TFM_ROOT_DIR}/interface/include ABSOLUTE)
-
diff --git a/test/suites/ipc/non_secure/ipc_ns_interface_testsuite.c b/test/suites/ipc/non_secure/ipc_ns_interface_testsuite.c
index ad86b95..ad1702e 100644
--- a/test/suites/ipc/non_secure/ipc_ns_interface_testsuite.c
+++ b/test/suites/ipc/non_secure/ipc_ns_interface_testsuite.c
@@ -15,11 +15,14 @@
 
 /* List of tests */
 static void tfm_ipc_test_1001(struct test_result_t *ret);
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 static void tfm_ipc_test_1002(struct test_result_t *ret);
 static void tfm_ipc_test_1003(struct test_result_t *ret);
 static void tfm_ipc_test_1004(struct test_result_t *ret);
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 
 static struct test_t ipc_veneers_tests[] = {
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     {&tfm_ipc_test_1001, "TFM_IPC_TEST_1001",
      "Get PSA framework version", {0} },
     {&tfm_ipc_test_1002, "TFM_IPC_TEST_1002",
@@ -28,6 +31,10 @@
      "Connect to a RoT Service", {0} },
     {&tfm_ipc_test_1004, "TFM_IPC_TEST_1004",
      "Call a RoT Service", {0} }
+#else /* TFM_PARTITION_TEST_CORE_IPC */
+    {&tfm_ipc_test_1001, "TFM_IPC_TEST_1001",
+     "Deprecated", {0} },
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 };
 
 void register_testsuite_ns_ipc_interface(struct test_suite_t *p_test_suite)
@@ -49,6 +56,7 @@
  */
 static void tfm_ipc_test_1001(struct test_result_t *ret)
 {
+#ifdef TFM_PARTITION_TEST_CORE_IPC
     uint32_t version;
 
     version = psa_framework_version();
@@ -58,8 +66,12 @@
         TEST_FAIL("The version of the PSA Framework API is not valid!\r\n");
         return;
     }
+#else /* TFM_PARTITION_TEST_CORE_IPC */
+    TEST_LOG("Running IPC tests in this config is deprecated\r\n");
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
 }
 
+#ifdef TFM_PARTITION_TEST_CORE_IPC
 /**
  * \brief Retrieve the minor version of a RoT Service.
  */
@@ -131,3 +143,4 @@
     psa_close(handle);
     ret->val = TEST_PASSED;
 }
+#endif /* TFM_PARTITION_TEST_CORE_IPC */
diff --git a/tools/tfm_manifest_list.yaml b/tools/tfm_manifest_list.yaml
index 1fea8fa..ff3db72 100644
--- a/tools/tfm_manifest_list.yaml
+++ b/tools/tfm_manifest_list.yaml
@@ -85,7 +85,7 @@
       "short_name": "TFM_IPC_Service",
       "manifest": "test/test_services/tfm_ipc_service/tfm_ipc_service_partition.yaml",
       "tfm_extensions": true,
-      "conditional": "TFM_PSA_API",
+      "conditional": "TFM_PARTITION_TEST_CORE_IPC",
       "version_major": 0,
       "version_minor": 1
     },
@@ -94,7 +94,7 @@
       "short_name": "TFM_IPC_Client",
       "manifest": "test/test_services/tfm_ipc_client/tfm_ipc_client_partition.yaml",
       "tfm_extensions": true,
-      "conditional": "TFM_PSA_API",
+      "conditional": "TFM_PARTITION_TEST_CORE_IPC",
       "version_major": 0,
       "version_minor": 1
     }