Build: Add psa_framework_version attribute
- Add "psa_framework_version" attribute in manifest files.
- Support psa_framework_version check.
Change-Id: I1b2a9bb63124bf8f45ac93c95bb8fdb687f9561f
Signed-off-by: Edison Ai <edison.ai@arm.com>
diff --git a/secure_fw/spm/spm_api_ipc.c b/secure_fw/spm/spm_api_ipc.c
index 987002f..7b08682 100644
--- a/secure_fw/spm/spm_api_ipc.c
+++ b/secure_fw/spm/spm_api_ipc.c
@@ -489,6 +489,14 @@
/* Init partition first for it will be used when init service */
for (i = 0; i < g_spm_partition_db.partition_count; i++) {
partition = &g_spm_partition_db.partitions[i];
+
+ /* Check if the PSA framework version matches. */
+ if (partition->static_data->psa_framework_version !=
+ PSA_FRAMEWORK_VERSION) {
+ ERROR_MSG("Warning: PSA Framework Verison is not matched!");
+ continue;
+ }
+
tfm_spm_hal_configure_default_isolation(partition->platform_data);
if ((tfm_spm_partition_get_flags(i) & SPM_PART_FLAG_IPC) == 0) {
continue;
diff --git a/secure_fw/spm/spm_db.h b/secure_fw/spm/spm_db.h
index 34e9693..14e5074 100644
--- a/secure_fw/spm/spm_db.h
+++ b/secure_fw/spm/spm_db.h
@@ -34,6 +34,9 @@
* phase.
*/
struct spm_partition_static_data_t {
+#ifdef TFM_PSA_API
+ uint32_t psa_framework_version;
+#endif /* defined(TFM_PSA_API) */
uint32_t partition_id;
uint32_t partition_flags;
uint32_t partition_priority;