aboutsummaryrefslogtreecommitdiff
path: root/tools/tfm_parse_manifest_list.py
diff options
context:
space:
mode:
authorMingyang Sun <mingyang.sun@arm.com>2021-06-11 11:58:24 +0800
committerMingyang Sun <mingyang.sun@arm.com>2021-06-15 10:41:13 +0800
commit294ce2e55dfa9794f3d905a300200d9584ca8969 (patch)
treeca53097b06c8daab30212107090213a62ba26bc5 /tools/tfm_parse_manifest_list.py
parent8dfeefe282b5e4f7b705ced4d9ae6f894c9d1225 (diff)
downloadtrusted-firmware-m-294ce2e55dfa9794f3d905a300200d9584ca8969.tar.gz
Tool: Fix default service version setting
As mentioned in FF-M, if "version" attribute is not specified, default value is "1", if "version_policy" is not specified, default value is "STRICT". Change-Id: Iefc406d966a951e8e827c67abbecdf2522ba2cbb Signed-off-by: Mingyang Sun <mingyang.sun@arm.com>
Diffstat (limited to 'tools/tfm_parse_manifest_list.py')
-rw-r--r--tools/tfm_parse_manifest_list.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/tools/tfm_parse_manifest_list.py b/tools/tfm_parse_manifest_list.py
index 7a236218df..43fca1f5d8 100644
--- a/tools/tfm_parse_manifest_list.py
+++ b/tools/tfm_parse_manifest_list.py
@@ -50,6 +50,24 @@ class TemplateLoader(BaseLoader):
source = f.read()
return source, template, False
+def manifest_validation(partition_manifest):
+ """
+ This function validates FF-M compliance for partition manifest, and sets
+ default values for optional attributes.
+ More validation items will be added.
+ """
+ # Service FF-M manifest validation
+ if 'services' not in partition_manifest.keys():
+ return partition_manifest
+
+ for service in partition_manifest['services']:
+ if 'version' not in service.keys():
+ service['version'] = 1
+ if 'version_policy' not in service.keys():
+ service['version_policy'] = "STRICT"
+
+ return partition_manifest
+
def process_partition_manifests(manifest_list_files):
"""
Parse the input manifest, generate the data base for genereated files
@@ -97,7 +115,7 @@ def process_partition_manifests(manifest_list_files):
# Replace environment variables in the manifest path
manifest_path = os.path.expandvars(manifest_item['manifest'])
file = open(manifest_path)
- manifest = yaml.safe_load(file)
+ manifest = manifest_validation(yaml.safe_load(file))
file.close()
manifest_dir, manifest_name = os.path.split(manifest_path)