Core: Enhance manifest to align with PSA
Below enhancements need to be applied to follow PSA:
- IPC related parameters added in manifest file (such as signal, sid,
minor_version and minor_policy).
- IPC service partition manifest file added to generate secure partion
source.
- Remove "tfm_partition_name" from manifest file and use "name"
directly.
- Remove IPC unused template: tfm_sfid_list.inc.template
Note:
- Signal header also need to be added manually by hardcode for tool
cannot support it now.
Change-Id: I47c2c4058e99a0b278c7b05b1e8d80058bc185a1
Signed-off-by: Edison Ai <edison.ai@arm.com>
diff --git a/secure_fw/spm/spm_db.h b/secure_fw/spm/spm_db.h
index 4b3b413..cba1446 100644
--- a/secure_fw/spm/spm_db.h
+++ b/secure_fw/spm/spm_db.h
@@ -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
*
@@ -8,8 +8,36 @@
#ifndef __SPM_DB_H__
#define __SPM_DB_H__
+#ifdef TFM_PSA_API
+#include "tfm_thread.h"
+#endif
+
+struct spm_partition_desc_t;
+struct spm_partition_db_t;
+
+uint32_t get_partition_idx(uint32_t partition_id);
+
typedef int32_t(*sp_init_function)(void);
+#define TFM_PARTITION_TYPE_APP "APPLICATION-ROT"
+#define TFM_PARTITION_TYPE_PSA "PSA-ROT"
+
+#ifdef TFM_PSA_API
+enum tfm_partition_priority {
+ TFM_PRIORITY_LOW = THRD_PRIOR_LOWEST,
+ TFM_PRIORITY_NORMAL = THRD_PRIOR_MEDIUM,
+ TFM_PRIORITY_HIGH = THRD_PRIOR_HIGHEST,
+};
+#else
+enum tfm_partition_priority {
+ TFM_PRIORITY_LOW = 0xFF,
+ TFM_PRIORITY_NORMAL = 0x7F,
+ TFM_PRIORITY_HIGH = 0,
+};
+#endif
+
+#define TFM_PRIORITY(LEVEL) TFM_PRIORITY_##LEVEL
+
/**
* Holds the fields of the partition DB used by the SPM code. The values of
* these fields are calculated at compile time, and set during initialisation
@@ -18,6 +46,7 @@
struct spm_partition_static_data_t {
uint32_t partition_id;
uint32_t partition_flags;
+ uint32_t partition_priority;
sp_init_function partition_init;
};