deployment: Disable dev mode only when we know new firmware is bootable
BUG=None
TEST=None
Change-Id: I13add9f41137491d4ed4a4b77c9a84c8030f1179
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/2504889
Reviewed-by: Otabek Kasimov <otabek@google.com>
Commit-Queue: Garry Wang <xianuowang@chromium.org>
Tested-by: Garry Wang <xianuowang@chromium.org>
diff --git a/site_utils/deployment/prepare/dut.py b/site_utils/deployment/prepare/dut.py
index 5e8e3f3..42c4481 100644
--- a/site_utils/deployment/prepare/dut.py
+++ b/site_utils/deployment/prepare/dut.py
@@ -379,8 +379,15 @@
_wait_firmware_update_process(host, pid)
_check_firmware_update_result(host, fw_update_log)
- # Get us out of dev-mode and clear GBB flags. GBB flags are
- # non-zero because boot from USB was enabled.
+ try:
+ host.reboot()
+ except Exception as e:
+ logging.debug('Failed to reboot the DUT after update firmware; %s', e)
+ try_reset_by_servo(host)
+
+ # Once we confirmed DUT can boot from new firmware, get us out of
+ # dev-mode and clear GBB flags. GBB flags are non-zero because
+ # boot from USB was enabled.
logging.info("Resting gbb flags and disable dev mode.")
host.run('/usr/share/vboot/bin/set_gbb_flags.sh 0',
ignore_status=True)
@@ -391,9 +398,10 @@
try:
host.reboot()
except Exception as e:
- logging.debug('Failed to reboot from host side; %s', e)
+ logging.debug(
+ 'Failed to reboot the DUT after switch to'
+ ' non-dev mode; %s', e)
try_reset_by_servo(host)
-
logging.info("Install firmware completed successfully.")