summaryrefslogtreecommitdiff
path: root/scripts/image_signing/gbb_flags_common.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/image_signing/gbb_flags_common.sh')
-rw-r--r--scripts/image_signing/gbb_flags_common.sh58
1 files changed, 58 insertions, 0 deletions
diff --git a/scripts/image_signing/gbb_flags_common.sh b/scripts/image_signing/gbb_flags_common.sh
new file mode 100644
index 00000000..9a8d1cb4
--- /dev/null
+++ b/scripts/image_signing/gbb_flags_common.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# Copyright 2017 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+#
+# This script provides tools to read or change GBB flags on a live system.
+
+SCRIPT_BASE="$(dirname "$0")"
+. "${SCRIPT_BASE}/common_minimal.sh"
+load_shflags || exit 1
+
+# Globals
+# ----------------------------------------------------------------------------
+
+# Values from vboot_reference/firmware/include/gbb_header.h
+GBBFLAGS_DESCRIPTION_PREFIX="
+ Defined flags (some values may be not supported by all systems):
+
+ "
+GBBFLAGS_LIST="
+ 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_FLAG_ENTER_TRIGGERS_TONORM 0x00000040
+ GBB_FLAG_FORCE_DEV_BOOT_LEGACY 0x00000080
+ GBB_FLAG_FAFT_KEY_OVERIDE 0x00000100
+ GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC 0x00000200
+ GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY 0x00000400
+ GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC 0x00000800
+ GBB_FLAG_DISABLE_LID_SHUTDOWN 0x00001000
+ GBB_FLAG_FORCE_DEV_BOOT_FASTBOOT_FULL_CAP 0x00002000
+ GBB_FLAG_ENABLE_SERIAL 0x00004000
+ "
+
+GBBFLAGS_DESCRIPTION_SUFFIX="
+ To get a developer-friendly device, try 0x11 (short_delay + boot_usb).
+ For factory-related tests (always DEV), try 0x39.
+ For early development (disable EC/PD software sync), try 0xa39.
+ "
+GBBFLAGS_DESCRIPTION="${GBBFLAGS_DESCRIPTION_PREFIX}${GBBFLAGS_LIST}"
+GBBFLAGS_DESCRIPTION="${GBBFLAGS_DESCRIPTION}${GBBFLAGS_DESCRIPTION_SUFFIX}"
+
+FLAGS_HELP="Manages Chrome OS Firmware GBB Flags value.
+
+ Usage: $0 [option_flags] GBB_FLAGS_VALUE
+ ${GBBFLAGS_DESCRIPTION}"
+
+flashrom_read() {
+ flashrom -p host -i GBB -r "$@"
+}
+
+flashrom_write() {
+ flashrom -p host -i GBB --fast-verify -w "$@"
+}