Skip to content

Commit

Permalink
fw/TargetManager: Fix Target Manger parameters not being used
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
marcbonnici committed Jun 23, 2020
1 parent b9d593e commit c0c213f
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 7 deletions.
1 change: 1 addition & 0 deletions doc/build_plugin_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ def generate_target_documentation(outdir):
text += get_params_rst(td.platform_params)
text += get_params_rst(td.target_params)
text += get_params_rst(td.assistant_params)
text += get_params_rst(td.tm_params)
wfh.write(text)


Expand Down
1 change: 1 addition & 0 deletions wa/commands/show.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ def get_rst_from_target(target):
text += get_params_rst(target.platform_params)
text += get_params_rst(target.target_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'
return text + '\n'

Expand Down
3 changes: 2 additions & 1 deletion wa/framework/configuration/plugin_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,8 @@ def _set_from_global_aliases(self, plugin_name, config):

def _get_target_params(self, 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
def _merge_using_priority_specificity(self, specific_name,
Expand Down
12 changes: 9 additions & 3 deletions wa/framework/target/descriptor.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#

import inspect
from itertools import chain

from devlib import (LinuxTarget, AndroidTarget, LocalLinuxTarget,
ChromeOsTarget, Platform, Juno, TC2, Gem5SimulationPlatform,
Expand All @@ -26,6 +27,7 @@
from wa.framework.exception import PluginLoaderError
from wa.framework.plugin import Plugin, Parameter
from wa.framework.target.assistant import LinuxAssistant, AndroidAssistant, ChromeOsAssistant
from wa.framework.target.manager import TargetManager
from wa.utils.types import list_of_strings, list_of_ints, regex, identifier, caseless_string
from wa.utils.misc import isiterable

Expand Down Expand Up @@ -57,6 +59,7 @@ def instantiate_target(tdesc, params, connect=None, extra_platform_params=None):
platform_params = get_config_point_map(tdesc.platform_params)
conn_params = get_config_point_map(tdesc.conn_params)
assistant_params = get_config_point_map(tdesc.assistant_params)
tm_params = get_config_point_map(tdesc.tm_params)

tp, pp, cp = {}, {}, {}

Expand All @@ -75,7 +78,7 @@ def instantiate_target(tdesc, params, connect=None, extra_platform_params=None):
elif name in conn_params:
if not conn_params[name].deprecated:
cp[name] = value
elif name in assistant_params:
elif name in chain(assistant_params, tm_params):
pass
else:
msg = 'Unexpected parameter for {}: {}'
Expand Down Expand Up @@ -111,7 +114,7 @@ class TargetDescription(object):

def __init__(self, name, source, description=None, target=None, platform=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.source = source
self.description = description
Expand All @@ -123,10 +126,12 @@ def __init__(self, name, source, description=None, target=None, platform=None,
self._set('platform_params', platform_params)
self._set('conn_params', conn_params)
self._set('assistant_params', assistant_params)
self._set('tm_params', tm_params)

def get_default_config(self):
param_attrs = ['target_params', 'platform_params',
'conn_params', 'assistant_params']
'conn_params', 'assistant_params',
'tm_params']
config = {}
for pattr in param_attrs:
for p in getattr(self, pattr):
Expand Down Expand Up @@ -631,6 +636,7 @@ def get_descriptions(self):
td.target_params = target_params
td.platform_params = platform_params
td.assistant_params = assistant.parameters
td.tm_params = TargetManager.parameters

if plat_conn:
td.conn = plat_conn
Expand Down
8 changes: 5 additions & 3 deletions wa/framework/target/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,6 @@
from wa.framework import signal
from wa.framework.exception import ExecutionError, TargetError, TargetNotRespondingError
from wa.framework.plugin import Parameter
from wa.framework.target.descriptor import (get_target_description,
instantiate_target,
instantiate_assistant)
from wa.framework.target.info import get_target_info, get_target_info_from_cache, cache_target_info
from wa.framework.target.runtime_parameter_manager import RuntimeParameterManager
from wa.utils.types import module_name_set
Expand Down Expand Up @@ -135,6 +132,11 @@ def verify_target_responsive(self, context):
raise TargetNotRespondingError('Target unresponsive and hard reset not supported; bailing.')

def _init_target(self):
# Import here to prevent circular import
# pylint: disable=wrong-import-position,cyclic-import
from wa.framework.target.descriptor import (get_target_description,
instantiate_target,
instantiate_assistant)
tdesc = get_target_description(self.target_name)

extra_plat_params = {}
Expand Down

0 comments on commit c0c213f

Please sign in to comment.