FAFT: Add option to EC reboot
This enables us to do different kind of EC reboot.
Signed-off-by: Vic Yang <victoryang@chromium.org>
BUG=chrome-os-partner:13229
TEST=Tried cold reboot.
Change-Id: I08a5d725b35e9f9488db7dcdb4fdd863d1faee96
Reviewed-on: https://gerrit.chromium.org/gerrit/31550
Reviewed-by: Tom Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: Mike Truty <truty@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 4ff9592..f9911d1 100644
--- a/server/cros/faftsequence.py
+++ b/server/cros/faftsequence.py
@@ -1065,12 +1065,21 @@
self.cold_reboot()
- def sync_and_ec_reboot(self):
- """Request the client sync and do a EC triggered reboot."""
+ def sync_and_ec_reboot(self, args=''):
+ """Request the client sync and do a EC triggered reboot.
+
+ Args:
+ args: Arguments passed to "ectool reboot_ec". Including:
+ RO: jump to EC RO firmware.
+ RW: jump to EC RW firmware.
+ cold: Cold/hard reboot.
+ """
self.faft_client.run_shell_command('sync')
time.sleep(self.SYNC_DELAY)
- self.faft_client.run_shell_command('(sleep %d; ectool reboot_ec)&' %
- self.EC_REBOOT_DELAY)
+ # Since EC reboot happens immediately, delay before actual reboot to
+ # allow FAFT client returning.
+ self.faft_client.run_shell_command('(sleep %d; ectool reboot_ec %s)&' %
+ (self.EC_REBOOT_DELAY, args))
time.sleep(self.EC_REBOOT_DELAY)
self.check_lid_and_power_on()