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"