1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-02-20 11:58:55 +00:00

fw/target/manager: Add verify_target_responsive()

Add a method to check that the target is still responsive, and cache
the value so that the target does not need to be repeatedly probed
during various stages of wrapping up execution.
This commit is contained in:
Sergei Trofimov 2018-02-28 10:20:24 +00:00 committed by Marc Bonnici
parent a9329554d1
commit fdb872d9cd

View File

@ -1,6 +1,7 @@
import logging
from wa.framework import signal
from wa.framework.exception import ExecutionError, TargetError
from wa.framework.plugin import Parameter
from wa.framework.target.descriptor import (get_target_description,
instantiate_target,
@ -10,7 +11,6 @@ from wa.framework.target.runtime_parameter_manager import RuntimeParameterManage
from devlib import Gem5SimulationPlatform
from devlib.utils.misc import memoized
from devlib.exception import TargetError
class TargetManager(object):
@ -33,6 +33,7 @@ class TargetManager(object):
self.target = None
self.assistant = None
self.platform_name = None
self.is_responsive = None
self.parameters = parameters
self.disconnect = parameters.get('disconnect')
@ -82,6 +83,16 @@ class TargetManager(object):
def commit_runtime_parameters(self, parameters):
self.rpm.commit_runtime_parameters(parameters)
def verify_target_responsive(self):
if not self.target.check_responsive(explode=False):
self.is_responsive = False
if self.target.has('hard_reset'):
self.logger.info('Target unresponsive; performing hard reset')
self.target.reboot(hard=True)
self.is_responsive = True
else:
raise ExecutionError('Target unresponsive and hard reset not supported; bailing.')
def _init_target(self):
tdesc = get_target_description(self.target_name)
@ -93,6 +104,8 @@ class TargetManager(object):
self.target = instantiate_target(tdesc, self.parameters, connect=False,
extra_platform_params=extra_plat_params)
self.is_responsive = True
with signal.wrap('TARGET_CONNECT'):
self.target.connect()
self.logger.info('Setting up target')