firmware_Cr50RMAOpen: open cr50 before 'ccd reset'
If only some of the capabilities are enabled 'gsctool -a -r disable'
will fail unless cr50 is open. Open cr50 to ensure we reset all of the
capabilities
BUG=b:80258608
BRANCH=none
TEST=run firmware_Cr50RMAOpen
Change-Id: I832eb3154a9d54adc9f9749c80e3ffd727ae42c7
Signed-off-by: Mary Ruthven <mruthven@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1081614
Tested-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-by: Kevin Shelton <kmshelton@chromium.org>
Commit-Queue: Mary Ruthven <mruthven@chromium.org>
diff --git a/server/cros/servo/chrome_cr50.py b/server/cros/servo/chrome_cr50.py
index f4d844e..f2b5cc3 100644
--- a/server/cros/servo/chrome_cr50.py
+++ b/server/cros/servo/chrome_cr50.py
@@ -472,6 +472,18 @@
return state.lower() in self.ON_STRINGS
+ def fast_open(self, enable_testlab=False):
+ """Try to use testlab open. If that fails do regular open
+
+ Args:
+ enable_testlab: If True enable testlab after device is open
+ """
+ self.send_command('ccd testlab open')
+ self.set_ccd_level('open')
+ if enable_testlab:
+ self.set_ccd_testlab('on')
+
+
def testlab_is_on(self):
"""Returns True of testlab mode is on"""
return self._state_to_bool(self._servo.get('cr50_testlab'))
diff --git a/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py b/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py
index aecb64b..eecaac0 100644
--- a/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py
+++ b/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py
@@ -65,8 +65,11 @@
if self.host.run('rma_reset -h', ignore_status=True).exit_status == 127:
raise error.TestNAError('Cannot test RMA open without rma_reset')
- # Disable all capabilities at the start of the test
- self.host.run('gsctool -a -r disable', ignore_status=True)
+ # Disable all capabilities at the start of the test. Go ahead and enable
+ # testlab mode if it isn't enabled.
+ self.cr50.fast_open(enable_testlab=True)
+ self.cr50.send_command('ccd reset')
+ self.cr50.set_ccd_level('lock')
self.check_ccd_cap_settings(False)
self.is_prod_mp = self.get_prod_mp_status()