Core: Add IPC Client and Service Secure Partition

Add Secure Partition for IPC Client and Service. Generate new partition
information by executing tfm_parse_manifest_list.py.

Change-Id: I8a0fe54113f9c5c2a32dd5d651a9722f0057dd2b
Signed-off-by: Summer Qin <summer.qin@arm.com>
diff --git a/secure_fw/CMakeLists.txt b/secure_fw/CMakeLists.txt
index 1f99ad1..cd8399d 100644
--- a/secure_fw/CMakeLists.txt
+++ b/secure_fw/CMakeLists.txt
@@ -199,6 +199,12 @@
 		embedded_set_target_link_defines(TARGET ${EXE_NAME} DEFINES "BL2")
 	endif()
 
+	if (NOT DEFINED TFM_PSA_API)
+		message(FATAL_ERROR "Incomplete build configuration: TFM_PSA_API is undefined. ")
+	elseif (TFM_PSA_API)
+		embedded_set_target_link_defines(TARGET ${PROJECT_NAME} DEFINES "TFM_PSA_API")
+	endif()
+
 	if(CORE_TEST)
 		set(SECURE_AXF_DIR_PREFIX "${CMAKE_BINARY_DIR}/unit_test/")
 		set_target_properties(${EXE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${SECURE_AXF_DIR_PREFIX})
diff --git a/secure_fw/services/tfm_partition_defs.inc b/secure_fw/services/tfm_partition_defs.inc
index a84c54b..b713839 100644
--- a/secure_fw/services/tfm_partition_defs.inc
+++ b/secure_fw/services/tfm_partition_defs.inc
@@ -36,6 +36,14 @@
 #define TFM_SP_SECURE_TEST_PARTITION_ID (TFM_SP_BASE + 8)
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
-#define TFM_MAX_USER_PARTITIONS (9)
+#ifdef TFM_PSA_API
+#define TFM_SP_IPC_SERVICE_TEST_ID (TFM_SP_BASE + 9)
+#endif /* TFM_PSA_API */
+
+#ifdef TFM_PSA_API
+#define TFM_SP_IPC_CLIENT_TEST_ID (TFM_SP_BASE + 10)
+#endif /* TFM_PSA_API */
+
+#define TFM_MAX_USER_PARTITIONS (11)
 
 #endif /* __TFM_PARTITION_DEFS_INC__ */
diff --git a/secure_fw/services/tfm_partition_list.inc b/secure_fw/services/tfm_partition_list.inc
index 57dd18f..f903edd 100644
--- a/secure_fw/services/tfm_partition_list.inc
+++ b/secure_fw/services/tfm_partition_list.inc
@@ -59,4 +59,16 @@
 PARTITION_ADD_PERIPHERAL(TFM_SP_SECURE_TEST_PARTITION, TFM_PERIPHERAL_STD_UART);
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
+#ifdef TFM_PSA_API
+/******** TFM_SP_IPC_SERVICE_TEST ********/
+PARTITION_DECLARE(TFM_SP_IPC_SERVICE_TEST, SPM_PART_FLAG_SECURE);
+PARTITION_ADD_INIT_FUNC(TFM_SP_IPC_SERVICE_TEST, ipc_service_test_main);
+#endif /* TFM_PSA_API */
+
+#ifdef TFM_PSA_API
+/******** TFM_SP_IPC_CLIENT_TEST ********/
+PARTITION_DECLARE(TFM_SP_IPC_CLIENT_TEST, SPM_PART_FLAG_SECURE);
+PARTITION_ADD_INIT_FUNC(TFM_SP_IPC_CLIENT_TEST, ipc_client_init);
+#endif /* TFM_PSA_API */
+
 #endif /* __TFM_PARTITION_LIST_INC__ */
diff --git a/secure_fw/services/tfm_sfid_list.inc b/secure_fw/services/tfm_sfid_list.inc
index e224dce..4681697 100644
--- a/secure_fw/services/tfm_sfid_list.inc
+++ b/secure_fw/services/tfm_sfid_list.inc
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  *
@@ -79,4 +79,14 @@
     {tfm_secure_client_service_sfn_run_tests, TFM_SECURE_CLIENT_SFN_RUN_TESTS_SFID},
 #endif /* TFM_PARTITION_TEST_SECURE_SERVICES */
 
+#ifdef TFM_PSA_API
+    /******** TFM_SP_IPC_SERVICE_TEST ********/
+    {ipc_service_call, IPC_SERVICE_CALL_SFID},
+#endif /* TFM_PSA_API */
+
+#ifdef TFM_PSA_API
+    /******** TFM_SP_IPC_CLIENT_TEST ********/
+    {False, False},
+#endif /* TFM_PSA_API */
+
 #endif /* __TFM_SFID_LIST_INC__ */
diff --git a/secure_fw/services/tfm_sfid_list.inc.template b/secure_fw/services/tfm_sfid_list.inc.template
index 08e5918..7f9bb92 100644
--- a/secure_fw/services/tfm_sfid_list.inc.template
+++ b/secure_fw/services/tfm_sfid_list.inc.template
@@ -1,5 +1,5 @@
 /*

- * Copyright (c) 2018, Arm Limited. All rights reserved.

+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.

  *

  * SPDX-License-Identifier: BSD-3-Clause

  *