1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-01-19 04:21:17 +00:00

fw/TargetManager: Fix Target Manger parameters not being used

The target manager parameters have not been previously been used
as they have been missing the required plumbing. Allow configuration
of the TargetManager via the `device_config` section.
This commit is contained in:
Marc Bonnici 2020-06-23 14:47:23 +01:00
parent 7086fa6b48
commit 7f1aae6e4c
4 changed files with 16 additions and 4 deletions

View File

@ -105,6 +105,7 @@ def generate_target_documentation(outdir):
text += get_params_rst(td.platform_params) text += get_params_rst(td.platform_params)
text += get_params_rst(td.target_params) text += get_params_rst(td.target_params)
text += get_params_rst(td.assistant_params) text += get_params_rst(td.assistant_params)
text += get_params_rst(td.tm_params)
wfh.write(text) wfh.write(text)

View File

@ -109,6 +109,7 @@ def get_rst_from_target(target):
text += get_params_rst(target.platform_params) text += get_params_rst(target.platform_params)
text += get_params_rst(target.target_params) text += get_params_rst(target.target_params)
text += get_params_rst(target.assistant_params) text += get_params_rst(target.assistant_params)
text += get_params_rst(target.tm_params)
text += '.. Note: For available runtime parameters please see the documentation' text += '.. Note: For available runtime parameters please see the documentation'
return text + '\n' return text + '\n'

View File

@ -175,7 +175,8 @@ class PluginCache(object):
def _get_target_params(self, name): def _get_target_params(self, name):
td = self.targets[name] td = self.targets[name]
return get_config_point_map(chain(td.target_params, td.platform_params, td.conn_params, td.assistant_params)) return get_config_point_map(chain(td.target_params, td.platform_params,
td.conn_params, td.assistant_params, td.tm_params))
# pylint: disable=too-many-nested-blocks, too-many-branches # pylint: disable=too-many-nested-blocks, too-many-branches
def _merge_using_priority_specificity(self, specific_name, def _merge_using_priority_specificity(self, specific_name,

View File

@ -14,6 +14,7 @@
# #
import inspect import inspect
from itertools import chain
from devlib import (LinuxTarget, AndroidTarget, LocalLinuxTarget, from devlib import (LinuxTarget, AndroidTarget, LocalLinuxTarget,
ChromeOsTarget, Platform, Juno, TC2, Gem5SimulationPlatform, ChromeOsTarget, Platform, Juno, TC2, Gem5SimulationPlatform,
@ -57,6 +58,7 @@ def instantiate_target(tdesc, params, connect=None, extra_platform_params=None):
platform_params = get_config_point_map(tdesc.platform_params) platform_params = get_config_point_map(tdesc.platform_params)
conn_params = get_config_point_map(tdesc.conn_params) conn_params = get_config_point_map(tdesc.conn_params)
assistant_params = get_config_point_map(tdesc.assistant_params) assistant_params = get_config_point_map(tdesc.assistant_params)
tm_params = get_config_point_map(tdesc.tm_params)
tp, pp, cp = {}, {}, {} tp, pp, cp = {}, {}, {}
@ -75,7 +77,7 @@ def instantiate_target(tdesc, params, connect=None, extra_platform_params=None):
elif name in conn_params: elif name in conn_params:
if not conn_params[name].deprecated: if not conn_params[name].deprecated:
cp[name] = value cp[name] = value
elif name in assistant_params: elif name in chain(assistant_params, tm_params):
pass pass
else: else:
msg = 'Unexpected parameter for {}: {}' msg = 'Unexpected parameter for {}: {}'
@ -111,7 +113,7 @@ class TargetDescription(object):
def __init__(self, name, source, description=None, target=None, platform=None, def __init__(self, name, source, description=None, target=None, platform=None,
conn=None, assistant=None, target_params=None, platform_params=None, conn=None, assistant=None, target_params=None, platform_params=None,
conn_params=None, assistant_params=None): conn_params=None, assistant_params=None, tm_params=None):
self.name = name self.name = name
self.source = source self.source = source
self.description = description self.description = description
@ -123,10 +125,12 @@ class TargetDescription(object):
self._set('platform_params', platform_params) self._set('platform_params', platform_params)
self._set('conn_params', conn_params) self._set('conn_params', conn_params)
self._set('assistant_params', assistant_params) self._set('assistant_params', assistant_params)
self._set('tm_params', tm_params)
def get_default_config(self): def get_default_config(self):
param_attrs = ['target_params', 'platform_params', param_attrs = ['target_params', 'platform_params',
'conn_params', 'assistant_params'] 'conn_params', 'assistant_params',
'tm_params']
config = {} config = {}
for pattr in param_attrs: for pattr in param_attrs:
for p in getattr(self, pattr): for p in getattr(self, pattr):
@ -610,6 +614,10 @@ class DefaultTargetDescriptor(TargetDescriptor):
def get_descriptions(self): def get_descriptions(self):
# pylint: disable=attribute-defined-outside-init,too-many-locals # pylint: disable=attribute-defined-outside-init,too-many-locals
# pylint: disable=wrong-import-position,cyclic-import
# Import here to prevent circular import
from wa.framework.target.manager import TargetManager
result = [] result = []
for target_name, target_tuple in TARGETS.items(): for target_name, target_tuple in TARGETS.items():
(target, conn, unsupported_platforms), target_params = self._get_item(target_tuple) (target, conn, unsupported_platforms), target_params = self._get_item(target_tuple)
@ -631,6 +639,7 @@ class DefaultTargetDescriptor(TargetDescriptor):
td.target_params = target_params td.target_params = target_params
td.platform_params = platform_params td.platform_params = platform_params
td.assistant_params = assistant.parameters td.assistant_params = assistant.parameters
td.tm_params = TargetManager.parameters
if plat_conn: if plat_conn:
td.conn = plat_conn td.conn = plat_conn