firmware_Cr50RMAOpen: use ccd_lockout

We can't open cr50 if ccd is locked out. Modify init to check
ccd_lockout before trying to open cr50. If we can't set all capabilities
to default during init, raise an error before running the test.

BUG=none
BRANCH=none
TEST=run firmware_Cr50RMAOpen on mp and premp image. Set a capability to
Always and make sure the test fails if it can't set it to Default.

Change-Id: I48ac6a9e61c5db43100c6af4ff77d8d01216f23b
Signed-off-by: Mary Ruthven <mruthven@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1096364
Tested-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-by: Kevin Shelton <kmshelton@chromium.org>
diff --git a/server/site_tests/firmware_Cr50RMAOpen/control b/server/site_tests/firmware_Cr50RMAOpen/control
index 7585ff2..db10575 100644
--- a/server/site_tests/firmware_Cr50RMAOpen/control
+++ b/server/site_tests/firmware_Cr50RMAOpen/control
@@ -35,8 +35,9 @@
     host = hosts.create_host(machine, servo_args=servo_args)
 
     iterations = int(args_dict.get("iterations", 1))
+    ccd_lockout = args_dict.get("ccd_lockout", "").lower() == "true"
 
     job.run_test("firmware_Cr50RMAOpen", host=host, cmdline_args=args,
-                 iterations=iterations)
+                 iterations=iterations, ccd_lockout=ccd_lockout)
 
 parallel_simple(run, machines)
diff --git a/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py b/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py
index 156271f..70597b6 100644
--- a/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py
+++ b/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py
@@ -46,7 +46,7 @@
     # behave the same and be interchangeable
     CMD_INTERFACES = ['ap', 'cli']
 
-    def initialize(self, host, cmdline_args):
+    def initialize(self, host, cmdline_args, ccd_lockout):
         """Initialize the test"""
         super(firmware_Cr50RMAOpen, self).initialize(host, cmdline_args)
         self.host = host
@@ -72,10 +72,17 @@
                 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)
+        if not ccd_lockout:
+            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)
+
+        # Make sure all capabilities are set to default.
+        try:
+            self.check_ccd_cap_settings(False)
+        except error.TestFail:
+            raise error.TestError('Could not disable rma mode')
 
         self.is_prod_mp = self.get_prod_mp_status()