diff options
author | Mary Ruthven <mruthven@google.com> | 2018-09-05 16:48:02 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-09-26 10:33:11 -0700 |
commit | 9e50f35372b8a351e9ca4f0b8159deeedb2bd00a (patch) | |
tree | 9e7ae3696618389e90d31ec4f3d22d3994fec3e3 /extra | |
parent | 56d600bb39433f804db4cc45e2b32fd6523b2316 (diff) | |
download | chrome-ec-9e50f35372b8a351e9ca4f0b8159deeedb2bd00a.tar.gz |
cr50_rma_open: check ccd open capabilities
OpenNoDevMode and OpenFromUSB will be set to Always during rma unlock.
This will make open accessible from usb without dev mode. Update the
testlab enable part of the script to check these before telling the user
to enter dev mode.
BUG=none
BRANCH=none
TEST=none
Change-Id: I69fb7cdb9e33aa21ae1537e935046529c987edbc
Signed-off-by: Mary Ruthven <mruthven@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1208228
Commit-Ready: Mary Ruthven <mruthven@chromium.org>
Tested-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-by: Wai-Hong Tam <waihong@google.com>
Diffstat (limited to 'extra')
-rw-r--r-- | extra/cr50_rma_open/cr50_rma_open.py | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/extra/cr50_rma_open/cr50_rma_open.py b/extra/cr50_rma_open/cr50_rma_open.py index 9f26f6ac90..4a83232911 100644 --- a/extra/cr50_rma_open/cr50_rma_open.py +++ b/extra/cr50_rma_open/cr50_rma_open.py @@ -13,7 +13,7 @@ import subprocess import sys import time -SCRIPT_VERSION = 4 +SCRIPT_VERSION = 5 CCD_IS_UNRESTRICTED = 1 << 0 WP_IS_DISABLED = 1 << 1 TESTLAB_IS_ENABLED = 1 << 2 @@ -24,6 +24,7 @@ RMA_SUPPORT_PROD = '0.3.3' RMA_SUPPORT_PREPVT = '0.4.5' DEV_MODE_OPEN_PROD = '0.3.9' DEV_MODE_OPEN_PREPVT = '0.4.7' +TESTLAB_PROD = '0.3.10' CR50_USB = '18d1:5014' ERASED_BID = 'ffffffff' @@ -375,8 +376,16 @@ class RMAOpen(object): return not self._running_version_is_older(DEV_MODE_OPEN_PROD) + def _capabilities_allow_open_from_console(self): + """Return True if ccd open is Always allowed from usb""" + output = self.send_cmd_get_output('ccd') + return (re.search('OpenNoDevMode.*Always', output) and + re.search('OpenFromUSB.*Always', output)) + def _requires_dev_mode_open(self): """Return True if the image requires dev mode to open""" + if self._capabilities_allow_open_from_console(): + return False # All prod images that support 'open' require dev mode if not self.is_prepvt: return True @@ -395,7 +404,8 @@ class RMAOpen(object): if 'State: Open' not in output: # Verify the device is in devmode before trying to run open. if 'dev_mode' not in output: - debug('Enter dev mode to open ccd') + debug('Enter dev mode to open ccd or update to %s' % + TESTLAB_PROD) raise ValueError('DUT not in dev mode') if not self.ip: debug("If your DUT doesn't have ssh support, run 'gsctool -a " @@ -494,8 +504,10 @@ class RMAOpen(object): print 'prePVT' if self.is_prepvt else 'prod', print 'RMA support added in:', rma_support - if not self.is_prepvt: - debug('No testlab support in prod images') + if (not self.is_prepvt and + self._running_version_is_older(TESTLAB_PROD)): + debug('No testlab support in old prod images') + debug('Update to %s to enable testlab' % TESTLAB_PROD) if self._running_version_is_older(rma_support): raise ValueError('%s does not have RMA support. Update to at ' 'least %s' % (version, rma_support)) |