diff options
author | Hung-Te Lin <hungte@chromium.org> | 2016-04-07 12:21:03 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-04-12 05:49:26 -0700 |
commit | aee6bd69fefac653cfc4a5679eb387d7c3280d14 (patch) | |
tree | f2756467870078563b99904eebf32e6d93211b1f /utility | |
parent | eb0c8cc39bb268a7dc88ed616a564f4d46f77a2c (diff) | |
download | vboot-aee6bd69fefac653cfc4a5679eb387d7c3280d14.tar.gz |
Support doing battery cut-off in firmware stage.
Add a new crossystem value "battery_cutoff_request" to indicate that
next reboot should cut-off battery and shutdown during firmware stage.
This request is primarily for factories to ship devices in an safe
state. Previously we have done same thing by running "ectool battery-cutoff"
but that creates a problem which "ectool" (and the one to request for
cut-off) must live in developer mode while the device must be shipped
in normal mode. The mode transition was solved by setting
"disable_dev_request=1", but that flag is may get lost on x86 systems
(having NV storage in CMOS) when the battery is cut-off .
From the experience from Ryu, such settings (dev mode transition and
battery cut-off) should be done together inside firmware execution so we
can create a new flag, battery_cutoff_request, to finalize device
properly.
BRANCH=none
BUG=chromium:601705
TEST=emerge-chell depthcharge vboot_reference chromeos-bootimage
crossystem battery_cutoff_request=1
# Unplug AC adapter
reboot
# See device rebooted and then shutdown immediately.
# Press power button and system won't boot.
# Attach AC adapter and now system boots.
CQ-DEPEND=CL:337596,CL:338193
Change-Id: I73ccae15b337cd65786106646546c67c155b8fa6
Reviewed-on: https://chromium-review.googlesource.com/337602
Commit-Ready: Hung-Te Lin <hungte@chromium.org>
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Diffstat (limited to 'utility')
-rw-r--r-- | utility/crossystem.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/utility/crossystem.c b/utility/crossystem.c index 330a3fd5..c88a444d 100644 --- a/utility/crossystem.c +++ b/utility/crossystem.c @@ -34,6 +34,8 @@ const Param sys_param_list[] = { {"arch", IS_STRING, "Platform architecture"}, {"backup_nvram_request", CAN_WRITE, "Backup the nvram somewhere at the next boot. Cleared on success."}, + {"battery_cutoff_request", CAN_WRITE, + "Cut off battery and shutdown on next boot."}, {"block_devmode", CAN_WRITE, "Block all use of developer mode"}, {"clear_tpm_owner_request", CAN_WRITE, "Clear TPM owner on next boot"}, {"clear_tpm_owner_done", CAN_WRITE, "Clear TPM owner done"}, |