Lines Matching full:manifest

37 # Summary of manifest attributes defined by FFM for use in the Secure Partition manifest file.
98 def manifest_validation(manifest, pid): argument
100 This function validates FF-M compliance for partition manifest, and sets
105 service_list = manifest.get('services', [])
106 irq_list = manifest.get('irqs', [])
109 if manifest['psa_framework_version'] not in [1.0, 1.1]:
110 raise Exception('Invalid psa_framework_version of {}'.format(manifest['name']))
113 if manifest['type'] not in ['PSA-ROT', 'APPLICATION-ROT']:
114 raise Exception('Invalid type of {}'.format(manifest['name']))
117 if manifest['priority'] not in ['HIGH', 'NORMAL', 'LOW']:
118 raise Exception('Invalid priority of {}'.format(manifest['name']))
120 if 'ns_agent' not in manifest:
121 manifest['ns_agent'] = False
127 .format(manifest['name']))
129 if manifest['psa_framework_version'] == 1.0:
131 manifest['model'] = 'IPC'
134 model = manifest.get('model', None)
136 raise Exception('{} is missing the "model" attribute'.format(manifest['name']))
141 if 'entry_point' not in manifest.keys():
142 raise Exception('{} is missing the "entry_point" attribute'.format(manifest['name']))
143 manifest['entry'] = manifest['entry_point']
145 if 'entry_init' in manifest.keys():
146 manifest['entry'] = manifest['entry_init']
148 manifest['entry'] = 0
150 raise Exception('Invalid "model" of {}'.format(manifest['name']))
152 # Service FF-M manifest validation
154 if manifest['psa_framework_version'] == 1.0:
170 return manifest
184 manifest = partition['manifest']
185 dependencies = manifest['dependencies'].copy() \
186 if 'dependencies' in manifest else []
187 dependencies += manifest['weak_dependencies'].copy() \
188 if 'weak_dependencies' in manifest else []
189 dependency_table[manifest['name']] = {
225 def manifest_attribute_check(manifest, manifest_item): argument
227 Check whether Non-FF-M compliant attributes are explicitly registered in manifest lists.
230 - manifest: next manifest to be checked
231 - manifest_item: the manifest items in manifest lists
234 for keyword in manifest.keys():
236 …r('The Non-FFM attribute {} is used by {} without registration.'.format(keyword, manifest['name']))
241 Parse the input manifest lists, check if manifest settings are valid,
243 and generate manifest header files.
248 A list of Secure Partition manifest lists
252 The manifest data base.
291 logging.error('Manifest list item [{}] must be a file'.format(i))
294 # The manifest list file generated by configure_file()
298 # Replace environment variables in the manifest path.
299 expanded_path = os.path.expandvars(dict['manifest']).replace('\\', '/')
301 # If the manifest exists relative to the manifest list, then use
304 … path_relative_to_manifest_list = os.path.join(os.path.dirname(item), # path of manifest list
310 dict['manifest'] = manifest_path
355 manifest_path = manifest_item['manifest']
357 manifest = yaml.safe_load(manifest_file)
358 # Check manifest attribute validity
359 manifest_attribute_check(manifest, manifest_item)
361 if manifest.get('model', None) == 'dual':
364 manifest['model'] = backend
365 manifest = manifest_validation(manifest, pid)
368 numbered_priority = priority_map[manifest['priority']]
370 if (pid == None or pid >= TFM_PID_BASE) and not manifest['ns_agent']:
373 if manifest['model'] == 'IPC':
374 partition_statistics['ipc_partitions'].append(manifest['name'])
379 for srv_idx, service in enumerate(manifest.get('services', [])):
380 service_partition_map[service['name']] = manifest['name']
381 if manifest['model'] == 'IPC':
390 logging.debug('{} has {} services'.format(manifest['name'], srv_idx +1))
393 mmio_region_list = manifest.get('mmio_regions', [])
399 for irq_idx, irq in enumerate(manifest.get('irqs', [])):
406 logging.debug('{} has {} IRQS'.format(manifest['name'], irq_idx +1))
410 .format(manifest['name']))
430 partition_list.append({'manifest': manifest, 'attr': manifest_item,
502 partition_context['manifest'] = one_partition['manifest']
588 if partition['manifest']['psa_framework_version'] < 1.1:
591 service_list = partition['manifest'].get('services', [])
666 …parser = argparse.ArgumentParser(description='Parse secure partition manifest list and generate fi…
675 parser.add_argument('-m', '--manifest-lists'
679 , metavar='manifest list'
680 … , help='A list of Secure Partition manifest lists and their original paths.\n\
681 The manifest lists might be processed by CMake and\n\
739 …and default value of manifest list and generated file list are relative to TF-M root folder as wel…