diff options
-rw-r--r-- | firmware/lib/vboot_api_kernel.c | 1 | ||||
-rw-r--r-- | tests/vboot_api_kernel4_tests.c | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c index 85a8f4b4..9e896208 100644 --- a/firmware/lib/vboot_api_kernel.c +++ b/firmware/lib/vboot_api_kernel.c @@ -253,6 +253,7 @@ vb2_error_t VbSelectAndLoadKernel(struct vb2_context *ctx, * GBB flag disables software sync. */ if (!(gbb_flags & VB2_GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC) + && (ctx->flags & VB2_CONTEXT_EC_SYNC_SUPPORTED) && (ctx->flags & VB2_CONTEXT_NO_BOOT)) { VB2_DEBUG("Blocking escape from NO_BOOT mode.\n"); vb2api_fail(ctx, VB2_RECOVERY_ESCAPE_NO_BOOT, 0); diff --git a/tests/vboot_api_kernel4_tests.c b/tests/vboot_api_kernel4_tests.c index e3f19a8c..60d87c60 100644 --- a/tests/vboot_api_kernel4_tests.c +++ b/tests/vboot_api_kernel4_tests.c @@ -262,12 +262,14 @@ static void select_and_load_kernel_tests(void) /* Recovery - VB2_ERROR_ESCAPE_NO_BOOT */ reset_common_data(); ctx->flags |= VB2_CONTEXT_NO_BOOT; + ctx->flags |= VB2_CONTEXT_EC_SYNC_SUPPORTED; test_slk(VB2_ERROR_ESCAPE_NO_BOOT, VB2_RECOVERY_ESCAPE_NO_BOOT, "Recovery for NO_BOOT escape"); /* Boot normal - VB2_ERROR_ESCAPE_NO_BOOT */ reset_common_data(); ctx->flags |= VB2_CONTEXT_NO_BOOT; + ctx->flags |= VB2_CONTEXT_EC_SYNC_SUPPORTED; gbb.flags |= VB2_GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC; test_slk(VB2_SUCCESS, 0, "DISABLE_EC_SOFTWARE_SYNC ignores NO_BOOT"); |