SPM: Sort out secure_fw/include

Move 'tfm_core_get_boot_data' into SPRTL since it is an API
for SP usage.

Change-Id: Ieeb029a990305cade72583ee5defe531af0ef5a5
Signed-off-by: Summer Qin <summer.qin@arm.com>
diff --git a/secure_fw/include/tfm/tfm_spm_services.h b/secure_fw/include/tfm/tfm_spm_services.h
index 43e7e81..69e66cd 100644
--- a/secure_fw/include/tfm/tfm_spm_services.h
+++ b/secure_fw/include/tfm/tfm_spm_services.h
@@ -9,7 +9,6 @@
 #define __TFM_SPM_SERVICES_H__
 
 #include "psa/service.h"
-#include "tfm_boot_status.h"
 
 enum tfm_spm_request_type_t {
     TFM_SPM_REQUEST_RESET_VOTE,
@@ -21,9 +20,6 @@
  * \return Returns 0 if request is accepted, any other value means reject
  */
 int32_t tfm_spm_request_reset_vote(void);
-int32_t tfm_core_get_boot_data(uint8_t major_type,
-                               struct tfm_boot_data *boot_data,
-                               uint32_t len);
 
 void tfm_enable_irq(psa_signal_t irq_signal);
 void tfm_disable_irq(psa_signal_t irq_signal);
diff --git a/secure_fw/partitions/initial_attestation/CMakeLists.inc b/secure_fw/partitions/initial_attestation/CMakeLists.inc
index f525000..587f632 100644
--- a/secure_fw/partitions/initial_attestation/CMakeLists.inc
+++ b/secure_fw/partitions/initial_attestation/CMakeLists.inc
@@ -79,7 +79,7 @@
 embedded_include_directories(PATH ${TFM_ROOT_DIR}/platform/ext/common ABSOLUTE)
 embedded_include_directories(PATH ${TFM_ROOT_DIR}/platform/include ABSOLUTE)
 embedded_include_directories(PATH ${TFM_ROOT_DIR}/bl2/include ABSOLUTE)
-embedded_include_directories(PATH ${TFM_ROOT_DIR}/secure_fw/core/include ABSOLUTE)
+embedded_include_directories(PATH ${TFM_ROOT_DIR}/secure_fw/partitions/lib/sprt/include ABSOLUTE)
 embedded_include_directories(PATH ${TFM_ROOT_DIR}/secure_fw/spm ABSOLUTE)
 embedded_include_directories(PATH ${TFM_ROOT_DIR}/lib/ext/qcbor/inc ABSOLUTE)
 embedded_include_directories(PATH ${TFM_ROOT_DIR}/lib/ext/t_cose/inc ABSOLUTE)
diff --git a/secure_fw/partitions/initial_attestation/tfm_attestation.c b/secure_fw/partitions/initial_attestation/tfm_attestation.c
index a49714b..27bd3a1 100644
--- a/secure_fw/partitions/initial_attestation/tfm_attestation.c
+++ b/secure_fw/partitions/initial_attestation/tfm_attestation.c
@@ -7,7 +7,7 @@
 
 #include "tfm_api.h"
 #include "tfm_secure_api.h"
-#include "tfm/tfm_spm_services.h"
+#include "service_api.h"
 #include "attestation.h"
 #include "psa/initial_attestation.h"
 #include "tfm_boot_status.h"
diff --git a/secure_fw/partitions/lib/sprt/CMakeLists.inc b/secure_fw/partitions/lib/sprt/CMakeLists.inc
index 23b725a..3f2b798 100644
--- a/secure_fw/partitions/lib/sprt/CMakeLists.inc
+++ b/secure_fw/partitions/lib/sprt/CMakeLists.inc
@@ -28,6 +28,7 @@
     "${LIBSPRT_DIR}/tfm_libsprt_c_memcpy.c"
     "${LIBSPRT_DIR}/tfm_libsprt_c_memmove.c"
     "${LIBSPRT_DIR}/tfm_libsprt_c_memcmp.c"
+    "${LIBSPRT_DIR}/service_api.c"
     "${TFM_ROOT_DIR}/interface/src/log/tfm_log_raw.c")
 
 if (TFM_PSA_API)
@@ -44,3 +45,4 @@
 
 #Setting include directories
 embedded_include_directories(PATH ${TFM_ROOT_DIR}/interface/include ABSOLUTE)
+embedded_include_directories(PATH ${LIBSPRT_DIR}/include ABSOLUTE)
diff --git a/secure_fw/partitions/lib/sprt/include/service_api.h b/secure_fw/partitions/lib/sprt/include/service_api.h
new file mode 100644
index 0000000..57f3e3d
--- /dev/null
+++ b/secure_fw/partitions/lib/sprt/include/service_api.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+#ifndef __SERVICE_API_H__
+#define __SERVICE_API_H__
+
+#include <stdint.h>
+#include "tfm_boot_status.h"
+
+/**
+ * \brief Retrieve secure partition related data from shared memory area, which
+ *        stores shared data between bootloader and runtime firmware.
+ *
+ * \param[in]  major_type  Major type.
+ * \param[out] boot_data   Pointer to boot data.
+ * \param[in]  len         The length of the boot data.
+ */
+int32_t tfm_core_get_boot_data(uint8_t major_type,
+                               struct tfm_boot_data *boot_data,
+                               uint32_t len);
+
+#endif /* __SERVICE_API_H__ */
diff --git a/secure_fw/partitions/lib/sprt/service_api.c b/secure_fw/partitions/lib/sprt/service_api.c
new file mode 100644
index 0000000..09d48fd
--- /dev/null
+++ b/secure_fw/partitions/lib/sprt/service_api.c
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2020, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include "cmsis_compiler.h"
+#include "service_api.h"
+#include "tfm/tfm_core_svc.h"
+
+__attribute__((naked))
+int32_t tfm_core_get_boot_data(uint8_t major_type,
+                               struct tfm_boot_data *boot_status,
+                               uint32_t len)
+{
+    __ASM volatile(
+        "SVC    %0\n"
+        "BX     lr\n"
+        : : "I" (TFM_SVC_GET_BOOT_DATA));
+}
diff --git a/secure_fw/spm/runtime/tfm_spm_services.c b/secure_fw/spm/runtime/tfm_spm_services.c
index 9d23442..033bbb1 100644
--- a/secure_fw/spm/runtime/tfm_spm_services.c
+++ b/secure_fw/spm/runtime/tfm_spm_services.c
@@ -53,17 +53,6 @@
 }
 
 __attribute__((naked))
-int32_t tfm_core_get_boot_data(uint8_t major_type,
-                               struct tfm_boot_data *boot_status,
-                               uint32_t len)
-{
-    __ASM volatile(
-        "SVC    %0\n"
-        "BX     lr\n"
-        : : "I" (TFM_SVC_GET_BOOT_DATA));
-}
-
-__attribute__((naked))
 void tfm_enable_irq(psa_signal_t irq_signal)
 {
     __ASM("SVC %0\n"