bundle_firmware: support more GBB flags.
BUG=chrome-os-partner:11423
TEST=emerge chromeos-bootimage
Change-Id: I512ed102c503cf68a139d7a74b1488fd646aeffc
Reviewed-on: https://gerrit.chromium.org/gerrit/27749
Tested-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Reinauer <reinauer@google.com>
Commit-Ready: Hung-Te Lin <hungte@chromium.org>
diff --git a/host/lib/bundle_firmware.py b/host/lib/bundle_firmware.py
index dc82e5e..e8038ca 100644
--- a/host/lib/bundle_firmware.py
+++ b/host/lib/bundle_firmware.py
@@ -233,11 +233,23 @@
odir = self._tools.outdir
chromeos_config = self.fdt.GetProps("/chromeos-config")
- if 'fast-developer-mode' not in chromeos_config:
- gbb_flags = 0
- else:
- self._out.Notice("Enabling fast-developer-mode.")
- gbb_flags = 1
+ # Build GBB flags.
+ # (src/platform/vboot_reference/firmware/include/gbb_header.h)
+ flag_properties = {
+ 'fast-developer-mode': 0x01,
+ 'gbb-flag-dev-screen-short-delay': 0x00000001,
+ 'gbb-flag-load-option-roms': 0x00000002,
+ 'gbb-flag-enable-alternate-os': 0x00000004,
+ 'gbb-flag-force-dev-switch-on': 0x00000008,
+ 'gbb-flag-force-dev-boot-usb': 0x00000010,
+ 'gbb-flag-disable-fw-rollback-check': 0x00000020,
+ }
+ gbb_flags = 0
+ for flag_name, flag_value in flag_properties.items():
+ if flag_name not in chromeos_config:
+ continue
+ gbb_flags |= flag_value
+ self._out.Notice("Enabling %s." % flag_name)
self._out.Progress('Creating GBB')
sizes = [0x100, 0x1000, gbb_size - 0x2180, 0x1000]