faft: Ensure blocking sync is called before reboot
Ensure blocking sync is called before all of servo-triggered reset,
whether warm or cold.
Also, add command 'hdparm' to blocking_sync() to make sure that TUR
has to be sent to SSD for checking the status.
BUG=chrome-os-partner:31300
TEST=Ran FAFT
Change-Id: Ic5e4d98e4b0d6246106f6de94a153562793dde71
Signed-off-by: Ryan Lin <ryan.lin@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/218560
Reviewed-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-by: danny chan <dchan@chromium.org>
diff --git a/server/cros/faft/firmware_test.py b/server/cros/faft/firmware_test.py
index 45bb073..e2f1efe 100644
--- a/server/cros/faft/firmware_test.py
+++ b/server/cros/faft/firmware_test.py
@@ -477,7 +477,7 @@
self.faft_client.bios.reload()
# If changing FORCE_DEV_SWITCH_ON flag, reboot to get a clear state
if ((gbb_flags ^ new_flags) & vboot.GBB_FLAG_FORCE_DEV_SWITCH_ON):
- self.reboot_warm_trigger()
+ self.sync_and_warm_reboot()
self.wait_dev_screen_and_ctrl_d()
self.wait_for_kernel_up()
@@ -900,6 +900,7 @@
i.e. switch ON + reboot + switch OFF, and the new keyboard controlled
recovery mode, i.e. just press Power + Esc + Refresh.
"""
+ self.blocking_sync()
psc = self.servo.get_power_state_controller()
psc.power_off()
psc.power_on(psc.REC_ON)
@@ -966,7 +967,7 @@
if (not self.faft_config.chrome_ec and
not self.faft_config.broken_rec_mode):
self.servo.disable_recovery_mode()
- self.reboot_cold_trigger()
+ self.sync_and_cold_reboot()
self.wait_for_client_offline()
self.wait_fw_screen_and_switch_keyboard_dev_mode(dev=False)
@@ -1071,6 +1072,11 @@
self.faft_client.system.run_shell_command('sync')
self.faft_client.system.run_shell_command('sync')
+ # sync only sends SYNCHRONIZE_CACHE but doesn't
+ # check the status. hdparm sends TUR to check if
+ # a device is ready for transfer operation.
+ root_dev = self.faft_client.system.get_root_dev()
+ self.faft_client.system.run_shell_command('hdparm -f %s' % root_dev)
################################################
# Reboot APIs