Core: Use separate '.inc' file and init function
- Remove the 'tfm_spm_db.inc', use separate files, separate SPM
initialization functions for different models.
- Remove unused inclusion of header file 'spm_db.h'.
Change-Id: I7427eaee691a02c9b25579972902974ac9d32fd7
Signed-off-by: Mingyang Sun <mingyang.sun@arm.com>
diff --git a/secure_fw/spm/model_ipc/spm_ipc.c b/secure_fw/spm/model_ipc/spm_ipc.c
index 780fc7a..ea1a368 100644
--- a/secure_fw/spm/model_ipc/spm_ipc.c
+++ b/secure_fw/spm/model_ipc/spm_ipc.c
@@ -31,18 +31,17 @@
#include "tfm_core_mem_check.h"
#include "tfm_list.h"
#include "tfm_pools.h"
+#include "region.h"
#include "region_defs.h"
#include "tfm/tfm_spm_services_api.h"
#include "secure_fw/partitions/tfm_service_list.inc"
+#include "tfm_spm_db_ipc.inc"
/* Extern service variable */
extern struct tfm_spm_service_t service[];
extern const struct tfm_spm_service_db_t service_db[];
-/* Extern SPM variable */
-extern struct spm_partition_db_t g_spm_partition_db;
-
/* Pools */
TFM_POOL_DECLARE(conn_handle_pool, sizeof(struct tfm_conn_handle_t),
TFM_CONN_HANDLE_MAX_NUM);
@@ -1658,3 +1657,20 @@
*res_ptr = (uint32_t)TFM_ERROR_INVALID_PARAMETER;
}
}
+
+enum spm_err_t tfm_spm_db_init(void)
+{
+ uint32_t i;
+
+ /* This function initialises partition db */
+
+ for (i = 0; i < g_spm_partition_db.partition_count; i++) {
+ g_spm_partition_db.partitions[i].static_data = &static_data_list[i];
+ g_spm_partition_db.partitions[i].platform_data_list =
+ platform_data_list_list[i];
+ g_spm_partition_db.partitions[i].memory_data = &memory_data_list[i];
+ }
+ g_spm_partition_db.is_init = 1;
+
+ return SPM_ERR_OK;
+}
diff --git a/secure_fw/spm/model_ipc/tfm_multi_core_mem_check.c b/secure_fw/spm/model_ipc/tfm_multi_core_mem_check.c
index 25a8632..ff97cf5 100644
--- a/secure_fw/spm/model_ipc/tfm_multi_core_mem_check.c
+++ b/secure_fw/spm/model_ipc/tfm_multi_core_mem_check.c
@@ -10,7 +10,6 @@
#include "region_defs.h"
#include "secure_utilities.h"
#include "tfm/spm_api.h"
-#include "tfm/spm_db.h"
#include "tfm_internal.h"
#include "tfm_multi_core.h"
#include "tfm_secure_api.h"