Make FAFT use standard interfaces for recovery mode.
This changes the FAFT enable_rec_mode_and_reboot() method for
booting devices in recovery mode to use the standard servod
interface for the operation.
BUG=chrome-os-partner:29974,chrome-os-partner:29473,chromium:326738
TEST=FAFTSetup on link, quawks
Change-Id: I73a5b30f81a5c9b2592bc9bbe5285b3dd8f750a5
Reviewed-on: https://chromium-review.googlesource.com/202721
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Yusuf Mohsinally <mohsinally@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
diff --git a/server/cros/faft/firmware_test.py b/server/cros/faft/firmware_test.py
index a5020aa..3cfdd75 100644
--- a/server/cros/faft/firmware_test.py
+++ b/server/cros/faft/firmware_test.py
@@ -15,8 +15,8 @@
from autotest_lib.server import autotest
from autotest_lib.server.cros import vboot_constants as vboot
from autotest_lib.server.cros.faft.config.config import Config as FAFTConfig
-from autotest_lib.server.cros.faft.utils.faft_checkers import FAFTCheckers
from autotest_lib.server.cros.faft.rpc_proxy import RPCProxy
+from autotest_lib.server.cros.faft.utils.faft_checkers import FAFTCheckers
from autotest_lib.server.cros.servo import chrome_ec
from autotest_lib.server.cros.servo_test import ServoTest
@@ -898,33 +898,9 @@
i.e. switch ON + reboot + switch OFF, and the new keyboard controlled
recovery mode, i.e. just press Power + Esc + Refresh.
"""
- if self.faft_config.chrome_ec:
- # Reset twice to emulate a long recovery-key-combo hold.
- cold_reset_num = 2 if self.faft_config.long_rec_combo else 1
- for i in range(cold_reset_num):
- if i:
- time.sleep(self.faft_config.ec_boot_to_console)
- # Cold reset to clear EC_IN_RW signal
- self.servo.set('cold_reset', 'on')
- time.sleep(self.faft_config.hold_cold_reset)
- self.servo.set('cold_reset', 'off')
- # Make sure AP stays off while entering EC console commands.
- self.servo.set('warm_reset', 'on')
- time.sleep(self.faft_config.ec_boot_to_console)
- self.ec.set_hostevent(chrome_ec.HOSTEVENT_KEYBOARD_RECOVERY)
- # Allow some time for EC to receive and process command
- time.sleep(0.2)
- self.servo.set_nocheck('warm_reset', 'off')
- self.servo.power_short_press()
- elif self.faft_config.broken_rec_mode:
- self.power_cycle()
- logging.info('Booting to recovery mode.')
- self.servo.custom_recovery_mode()
- else:
- self.servo.enable_recovery_mode()
- self.reboot_cold_trigger()
- time.sleep(self.faft_config.ec_boot_to_console)
- self.servo.disable_recovery_mode()
+ psc = self.servo.get_power_state_controller()
+ psc.power_off()
+ psc.power_on(psc.REC_ON)
def enable_dev_mode_and_reboot(self):
"""Switch to developer mode and reboot."""