Enabling Stout on FAFT
BUG=chrome-os-partner:13970
TEST=most FAFT tests pass when running control.faft_bios
Change-Id: I364919e4ff47ccc434b3396673e849e3bf9c1305
Reviewed-on: https://gerrit.chromium.org/gerrit/37944
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Ready: Gediminas Ramanauskas <gedis@chromium.org>
Tested-by: Gediminas Ramanauskas <gedis@chromium.org>
diff --git a/server/cros/faftsequence.py b/server/cros/faftsequence.py
index c560814..23ac54b 100644
--- a/server/cros/faftsequence.py
+++ b/server/cros/faftsequence.py
@@ -18,6 +18,7 @@
from autotest_lib.server.cros.faft_client_attribute import FAFTClientAttribute
from autotest_lib.server.cros.faft_delay_constants import FAFTDelayConstants
from autotest_lib.server.cros.servo_test import ServoTest
+from autotest_lib.server import hosts
from autotest_lib.site_utils import lab_test
from autotest_lib.site_utils.chromeos_test.common_util import ChromeOSTestError
@@ -175,6 +176,8 @@
# Setting up key matrix mapping
self.servo.set_key_matrix(self.client_attr.key_matrix_layout)
+ self._host = hosts.create_host(self.servo.get_target_hostname())
+
def setup(self, ec_wp=None):
"""Autotest setup function."""
@@ -875,7 +878,8 @@
vboot.GBB_FLAG_FORCE_DEV_SWITCH_ON |
vboot.GBB_FLAG_FORCE_DEV_BOOT_USB |
vboot.GBB_FLAG_DISABLE_FW_ROLLBACK_CHECK,
- vboot.GBB_FLAG_ENTER_TRIGGERS_TONORM)
+ vboot.GBB_FLAG_ENTER_TRIGGERS_TONORM |
+ vboot.GBB_FLAG_FAFT_KEY_OVERIDE)
self.mark_setup_done('gbb_flags')
@@ -922,6 +926,15 @@
time.sleep(self.delay.ec_boot_to_console)
self.ec.set_hostevent(chrome_ec.HOSTEVENT_KEYBOARD_RECOVERY)
self.servo.power_short_press()
+ elif self.client_attr.broken_rec_mode:
+ if self._host.has_power():
+ self._host.power_cycle()
+ else:
+ logging.info('You have %d seconds to power cycle this device.',
+ self.delay.user_power_cycle)
+ time.sleep(self.delay.user_power_cycle)
+ logging.info('Booting to recovery mode.')
+ self.servo.custom_recovery_mode()
else:
self.servo.enable_recovery_mode()
self.cold_reboot()
@@ -976,7 +989,8 @@
def disable_keyboard_dev_mode(self):
logging.info("Disabling keyboard controlled developer mode")
- if not self.client_attr.chrome_ec:
+ if (not self.client_attr.chrome_ec and
+ not self.client_attr.broken_rec_mode):
self.servo.disable_recovery_mode()
self.cold_reboot()
self.wait_for_client_offline()