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()
