diff options
Diffstat (limited to 'firmware')
-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 |
3 files changed, 11 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. */ |