diff options
author | Mingyang Sun <mingyang.sun@arm.com> | 2021-06-11 11:58:24 +0800 |
---|---|---|
committer | Mingyang Sun <mingyang.sun@arm.com> | 2021-06-15 10:41:13 +0800 |
commit | 294ce2e55dfa9794f3d905a300200d9584ca8969 (patch) | |
tree | ca53097b06c8daab30212107090213a62ba26bc5 /tools/tfm_parse_manifest_list.py | |
parent | 8dfeefe282b5e4f7b705ced4d9ae6f894c9d1225 (diff) | |
download | trusted-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.py | 20 |
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) |