diff options
-rw-r--r-- | firmware/2lib/include/2struct.h | 3 | ||||
-rw-r--r-- | firmware/include/gbb_header.h | 2 | ||||
-rw-r--r-- | firmware/lib/vboot_api_kernel.c | 10 | ||||
-rwxr-xr-x | scripts/image_signing/set_gbb_flags.sh | 1 |
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. |