Add support for dev_boot_usb flag
BUG=chromium-os:17433
TEST=make && make runtests. Additional manual tests:
0. Insert a valid dev-signed USB key.
1. Boot with dev switch off.
`crossystem dev_boot_usb` should print 0.
2. Flip dev switch on.
`crossystem dev_boot_usb` should print 0.
Ctrl+U at dev screen should beep, but not boot USB.
3. Type `crossystem dev_boot_usb=1`. Should succeed.
`crossystem dev_boot_usb` should print 1.
4. Reboot system.
At the dev mode warning, press Ctrl+U
System should boot from USB key
`crossystem dev_boot_usb` should print 0.
5. Flip dev switch off.
`crossystem dev_boot_usb` should print 0.
6. Flip dev switch on.
`crossystem dev_boot_usb` should print 0.
Note that this does not apply to Cr-48, Alex, or ZGB.
Change-Id: Idf85fdd642f38f531c89e5fa5b1679e84936d4da
Reviewed-on: http://gerrit.chromium.org/gerrit/3875
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Tested-by: Randall Spangler <rspangler@chromium.org>
diff --git a/host/lib/crossystem.c b/host/lib/crossystem.c
index 88afde2..eea4899 100644
--- a/host/lib/crossystem.c
+++ b/host/lib/crossystem.c
@@ -367,6 +367,8 @@
value &= KERN_NV_FWUPDATE_TRIES_MASK;
} else if (!strcasecmp(name,"loc_idx")) {
value = VbGetNvStorage(VBNV_LOCALIZATION_INDEX);
+ } else if (!strcasecmp(name,"dev_boot_usb")) {
+ value = VbGetNvStorage(VBNV_DEV_BOOT_USB);
}
/* Other parameters */
else if (!strcasecmp(name,"cros_debug")) {
@@ -444,6 +446,8 @@
return VbSetNvStorage(VBNV_KERNEL_FIELD, kern_nv);
} else if (!strcasecmp(name,"loc_idx")) {
return VbSetNvStorage(VBNV_LOCALIZATION_INDEX, value);
+ } else if (!strcasecmp(name,"dev_boot_usb")) {
+ return VbSetNvStorage(VBNV_DEV_BOOT_USB, value);
}
return -1;