FAFT: Fake rec mode support
Add support of triggering recovery mode from EC console so that recovery
mode can be tested on devices without recovery signal connected.
BUG=chrome-os-partner:12104
TEST=Tested on snow
Change-Id: I4170e912263d19ab1ca903c858db2668d4fa992d
Reviewed-on: https://gerrit.chromium.org/gerrit/29126
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Commit-Ready: Vic Yang <victoryang@chromium.org>
Tested-by: Vic Yang <victoryang@chromium.org>
diff --git a/server/cros/faftsequence.py b/server/cros/faftsequence.py
index d3b8026..bc1540f 100644
--- a/server/cros/faftsequence.py
+++ b/server/cros/faftsequence.py
@@ -106,6 +106,8 @@
POWER_BTN_DELAY = 0.5
# Delay of EC software sync hash calculating time
SOFTWARE_SYNC_DELAY = 6
+ # Delay between EC boot and EC console functional
+ EC_BOOT_DELAY = 2
# The developer screen timeouts fit our spec.
DEV_SCREEN_TIMEOUT = 30
@@ -598,7 +600,6 @@
return self.root_part_checker(part) and \
self.crossystem_checker({
'mainfw_type': ('normal', 'developer'),
- 'recoverysw_boot': '0',
})
@@ -772,6 +773,11 @@
if self._customized_rec_reboot_command:
logging.info('running the customized rec reboot command')
os.system(self._customized_rec_reboot_command)
+ elif self.client_attr.ec_fake_rec_mode:
+ self.send_uart_command("reboot hard ap-off")
+ time.sleep(self.EC_BOOT_DELAY)
+ self.send_uart_command("hostevent set 0x4000")
+ self.servo.power_short_press()
else:
self.servo.enable_recovery_mode()
self.cold_reboot()
@@ -832,7 +838,8 @@
def disable_keyboard_dev_mode(self):
logging.info("Disabling keyboard controlled developer mode")
- self.servo.disable_recovery_mode()
+ if not self.client_attr.ec_fake_rec_mode:
+ self.servo.disable_recovery_mode()
self.cold_reboot()
self.wait_for_client_offline()
self.wait_fw_screen_and_switch_keyboard_dev_mode(dev=False)