summaryrefslogtreecommitdiff
path: root/extra/cr50_rma_open
diff options
context:
space:
mode:
authorMary Ruthven <mruthven@google.com>2018-09-05 16:48:02 -0700
committerMartin Roth <martinroth@chromium.org>2018-10-01 21:42:39 +0000
commit77cf2be096aaeb89025debfe9b6849463741dce1 (patch)
treed521994c924e1616550f6849a33c56972bf7fadb /extra/cr50_rma_open
parente3923ab68e56bd8d2f978b237e4382376b5c7c9b (diff)
downloadchrome-ec-77cf2be096aaeb89025debfe9b6849463741dce1.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> (cherry picked from commit 9e50f35372b8a351e9ca4f0b8159deeedb2bd00a) Reviewed-on: https://chromium-review.googlesource.com/1256044 Reviewed-by: Martin Roth <martinroth@chromium.org> Commit-Queue: Martin Roth <martinroth@chromium.org> Tested-by: Martin Roth <martinroth@chromium.org>
Diffstat (limited to 'extra/cr50_rma_open')
-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))