summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorMary Ruthven <mruthven@google.com>2018-09-05 16:48:02 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-09-26 10:33:11 -0700
commit9e50f35372b8a351e9ca4f0b8159deeedb2bd00a (patch)
tree9e7ae3696618389e90d31ec4f3d22d3994fec3e3 /extra
parent56d600bb39433f804db4cc45e2b32fd6523b2316 (diff)
downloadchrome-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.py20
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))