summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/2lib/include/2struct.h3
-rw-r--r--firmware/include/gbb_header.h2
-rw-r--r--firmware/lib/vboot_api_kernel.c10
-rwxr-xr-xscripts/image_signing/set_gbb_flags.sh1
4 files changed, 12 insertions, 4 deletions
diff --git a/firmware/2lib/include/2struct.h b/firmware/2lib/include/2struct.h
index 646d0915..560d5672 100644
--- a/firmware/2lib/include/2struct.h
+++ b/firmware/2lib/include/2struct.h
@@ -362,6 +362,9 @@ enum vb2_gbb_flag {
/* Default to booting legacy OS when dev screen times out */
VB2_GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY = (1 << 10),
+
+ /* Disable PD software sync */
+ VB2_GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC = (1 << 11),
};
struct vb2_gbb_header {
diff --git a/firmware/include/gbb_header.h b/firmware/include/gbb_header.h
index 86aa12a6..8a1b2aae 100644
--- a/firmware/include/gbb_header.h
+++ b/firmware/include/gbb_header.h
@@ -62,6 +62,8 @@
#define GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC 0x00000200
/* Default to booting legacy OS when dev screen times out */
#define GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY 0x00000400
+/* Disable PD software sync */
+#define GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC 0x00000800
#ifdef __cplusplus
extern "C" {
diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c
index 448e6963..4f013117 100644
--- a/firmware/lib/vboot_api_kernel.c
+++ b/firmware/lib/vboot_api_kernel.c
@@ -944,11 +944,13 @@ VbError_t VbSelectAndLoadKernel(VbCommonParams *cparams,
goto VbSelectAndLoadKernel_exit;
#ifdef PD_SYNC
- retval = VbEcSoftwareSync(1, cparams);
- if (retval != VBERROR_SUCCESS)
- goto VbSelectAndLoadKernel_exit;
+ if (!(cparams->gbb->flags &
+ GBB_FLAG_DISABLE_PD_SOFTWARE_SYNC)) {
+ retval = VbEcSoftwareSync(1, cparams);
+ if (retval != VBERROR_SUCCESS)
+ goto VbSelectAndLoadKernel_exit;
+ }
#endif
-
}
/* Read kernel version from the TPM. Ignore errors in recovery mode. */
diff --git a/scripts/image_signing/set_gbb_flags.sh b/scripts/image_signing/set_gbb_flags.sh
index f114d413..4d5925c1 100755
--- a/scripts/image_signing/set_gbb_flags.sh
+++ b/scripts/image_signing/set_gbb_flags.sh
@@ -34,6 +34,7 @@ GBBFLAGS_DESCRIPTION="
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
To get a developer-friendly device, try 0x11 (short_delay + boot_usb).
For factory-related tests (always DEV), try 0x39.