diff options
-rw-r--r-- | firmware/2lib/include/2struct.h | 6 | ||||
-rw-r--r-- | firmware/lib/ec_sync_all.c | 6 | ||||
-rw-r--r-- | firmware/lib/include/ec_sync.h | 3 | ||||
-rw-r--r-- | firmware/lib/vboot_api_kernel.c | 58 | ||||
-rw-r--r-- | firmware/lib/vboot_display.c | 3 | ||||
-rw-r--r-- | firmware/lib/vboot_kernel.c | 3 | ||||
-rw-r--r-- | firmware/lib/vboot_ui.c | 11 | ||||
-rw-r--r-- | firmware/lib/vboot_ui_menu.c | 7 | ||||
-rw-r--r-- | tests/ec_sync_tests.c | 4 | ||||
-rw-r--r-- | tests/vboot_api_devmode_tests.c | 4 | ||||
-rw-r--r-- | tests/vboot_api_kernel2_tests.c | 4 | ||||
-rw-r--r-- | tests/vboot_api_kernel4_tests.c | 9 | ||||
-rw-r--r-- | tests/vboot_api_kernel5_tests.c | 9 | ||||
-rw-r--r-- | tests/vboot_detach_menu_tests.c | 4 | ||||
-rw-r--r-- | tests/vboot_display_tests.c | 5 | ||||
-rw-r--r-- | tests/vboot_kernel_tests.c | 4 | ||||
-rw-r--r-- | tests/verify_kernel.c | 3 | ||||
-rw-r--r-- | utility/load_kernel_test.c | 3 |
18 files changed, 92 insertions, 54 deletions
diff --git a/firmware/2lib/include/2struct.h b/firmware/2lib/include/2struct.h index 9ae1f540..589e7c9b 100644 --- a/firmware/2lib/include/2struct.h +++ b/firmware/2lib/include/2struct.h @@ -195,6 +195,12 @@ struct vb2_shared_data { */ /* + * Vboot1 shared data header. This data should eventually get folded + * directly into the kernel portion of this struct. + */ + struct VbSharedDataHeader *vbsd; + + /* * Offset and size of packed kernel key in work buffer. Size is 0 if * subkey is not stored in the work buffer. Note that kernel key may * be inside the firmware preamble. diff --git a/firmware/lib/ec_sync_all.c b/firmware/lib/ec_sync_all.c index 9d236290..68e0a9af 100644 --- a/firmware/lib/ec_sync_all.c +++ b/firmware/lib/ec_sync_all.c @@ -17,10 +17,10 @@ #include "vboot_display.h" #include "vboot_kernel.h" -VbError_t ec_sync_all(struct vb2_context *ctx, struct VbCommonParams *cparams) +VbError_t ec_sync_all(struct vb2_context *ctx) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; + struct vb2_shared_data *sd = vb2_get_sd(ctx); + VbSharedDataHeader *shared = sd->vbsd; VbAuxFwUpdateSeverity_t fw_update; VbError_t rv; diff --git a/firmware/lib/include/ec_sync.h b/firmware/lib/include/ec_sync.h index f95b500f..573c94cb 100644 --- a/firmware/lib/include/ec_sync.h +++ b/firmware/lib/include/ec_sync.h @@ -80,9 +80,8 @@ VbError_t ec_sync_phase3(struct vb2_context *ctx); * This is a high-level function which calls the functions above. * * @param ctx Vboot context - * @param cparams Vboot common params * @return VBERROR_SUCCESS, or non-zero if error. */ -VbError_t ec_sync_all(struct vb2_context *ctx, struct VbCommonParams *cparams); +VbError_t ec_sync_all(struct vb2_context *ctx); #endif /* VBOOT_REFERENCE_EC_SYNC_H_ */ diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c index b07e5334..5bda94f9 100644 --- a/firmware/lib/vboot_api_kernel.c +++ b/firmware/lib/vboot_api_kernel.c @@ -168,8 +168,8 @@ uint32_t VbTryLoadKernel(struct vb2_context *ctx, VbCommonParams *cparams, VbError_t VbBootNormal(struct vb2_context *ctx, VbCommonParams *cparams) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; + struct vb2_shared_data *sd = vb2_get_sd(ctx); + VbSharedDataHeader *shared = sd->vbsd; uint32_t max_rollforward = vb2_nv_get(ctx, VB2_NV_KERNEL_MAX_ROLLFORWARD); @@ -315,10 +315,19 @@ static VbError_t vb2_kernel_setup(VbCommonParams *cparams, sd->recovery_reason = shared->recovery_reason; /* + * Save a pointer to the old vboot1 shared data, since we haven't + * finished porting the library to use the new vb2 context and shared + * data. + * + * TODO: replace this with fields directly in vb2 shared data. + */ + sd->vbsd = shared; + + /* * If we're in recovery mode just to do memory retraining, all we * need to do is reboot. */ - if (shared->recovery_reason == VB2_RECOVERY_TRAIN_AND_REBOOT) { + if (sd->recovery_reason == VB2_RECOVERY_TRAIN_AND_REBOOT) { VB2_DEBUG("Reboot after retraining in recovery.\n"); return VBERROR_REBOOT_REQUIRED; } @@ -346,9 +355,8 @@ static VbError_t vb2_kernel_setup(VbCommonParams *cparams, /* Read kernel version from the TPM. Ignore errors in recovery mode. */ if (RollbackKernelRead(&shared->kernel_version_tpm)) { VB2_DEBUG("Unable to get kernel versions from TPM\n"); - if (!shared->recovery_reason) { - VbSetRecoveryRequest(&ctx, - VB2_RECOVERY_RW_TPM_R_ERROR); + if (!(ctx.flags & VB2_CONTEXT_RECOVERY_MODE)) { + VbSetRecoveryRequest(&ctx, VB2_RECOVERY_RW_TPM_R_ERROR); return VBERROR_TPM_READ_KERNEL; } } @@ -360,9 +368,8 @@ static VbError_t vb2_kernel_setup(VbCommonParams *cparams, memset(&fwmp, 0, sizeof(fwmp)); } else if (RollbackFwmpRead(&fwmp)) { VB2_DEBUG("Unable to get FWMP from TPM\n"); - if (!shared->recovery_reason) { - VbSetRecoveryRequest(&ctx, - VB2_RECOVERY_RW_TPM_R_ERROR); + if (!(ctx.flags & VB2_CONTEXT_RECOVERY_MODE)) { + VbSetRecoveryRequest(&ctx, VB2_RECOVERY_RW_TPM_R_ERROR); return VBERROR_TPM_READ_FWMP; } } @@ -370,11 +377,9 @@ static VbError_t vb2_kernel_setup(VbCommonParams *cparams, return VBERROR_SUCCESS; } -static VbError_t vb2_kernel_phase4(VbCommonParams *cparams, - VbSelectAndLoadKernelParams *kparams) +static VbError_t vb2_kernel_phase4(VbSelectAndLoadKernelParams *kparams) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; + struct vb2_shared_data *sd = vb2_get_sd(&ctx); /* Save disk parameters */ kparams->disk_handle = lkp.disk_handle; @@ -388,8 +393,8 @@ static VbError_t vb2_kernel_phase4(VbCommonParams *cparams, sizeof(kparams->partition_guid)); /* Lock the kernel versions if not in recovery mode */ - if (!shared->recovery_reason && - RollbackKernelLock(shared->recovery_reason)) { + if (!(ctx.flags & VB2_CONTEXT_RECOVERY_MODE) && + RollbackKernelLock(sd->recovery_reason)) { VB2_DEBUG("Error locking kernel versions.\n"); VbSetRecoveryRequest(&ctx, VB2_RECOVERY_RW_TPM_L_ERROR); return VBERROR_TPM_LOCK_KERNEL; @@ -400,8 +405,13 @@ static VbError_t vb2_kernel_phase4(VbCommonParams *cparams, static void vb2_kernel_cleanup(struct vb2_context *ctx, VbCommonParams *cparams) { + /* + * This must directly access cparams for now because we could have had + * an error setting up the vboot2 context. In that case + * vb2_shared_data is not available. + */ VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; + (VbSharedDataHeader *)cparams->shared_data_blob; /* * Clean up vboot context. @@ -422,9 +432,6 @@ static void vb2_kernel_cleanup(struct vb2_context *ctx, VbCommonParams *cparams) VbError_t VbSelectAndLoadKernel(VbCommonParams *cparams, VbSelectAndLoadKernelParams *kparams) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; - VbError_t retval = vb2_kernel_setup(cparams, kparams); if (retval) goto VbSelectAndLoadKernel_exit; @@ -433,21 +440,21 @@ VbError_t VbSelectAndLoadKernel(VbCommonParams *cparams, * Do EC software sync unless we're in recovery mode. This has UI but * it's just a single non-interactive WAIT screen. */ - if (shared->recovery_reason == VB2_RECOVERY_NOT_REQUESTED) { - retval = ec_sync_all(&ctx, cparams); + if (!(ctx.flags & VB2_CONTEXT_RECOVERY_MODE)) { + retval = ec_sync_all(&ctx); if (retval) goto VbSelectAndLoadKernel_exit; } /* Select boot path */ - if (shared->recovery_reason) { + if (ctx.flags & VB2_CONTEXT_RECOVERY_MODE) { /* Recovery boot. This has UI. */ if (kparams->inflags & VB_SALK_INFLAGS_ENABLE_DETACHABLE_UI) retval = VbBootRecoveryMenu(&ctx, cparams); else retval = VbBootRecovery(&ctx, cparams); VbExEcEnteringMode(0, VB_EC_RECOVERY); - } else if (shared->flags & VBSD_BOOT_DEV_SWITCH_ON) { + } else if (ctx.flags & VB2_CONTEXT_DEVELOPER_MODE) { /* Developer boot. This has UI. */ if (kparams->inflags & VB_SALK_INFLAGS_ENABLE_DETACHABLE_UI) retval = VbBootDeveloperMenu(&ctx, cparams); @@ -463,7 +470,7 @@ VbError_t VbSelectAndLoadKernel(VbCommonParams *cparams, VbSelectAndLoadKernel_exit: if (VBERROR_SUCCESS == retval) - retval = vb2_kernel_phase4(cparams, kparams); + retval = vb2_kernel_phase4(kparams); vb2_kernel_cleanup(&ctx, cparams); @@ -480,8 +487,6 @@ VbError_t VbVerifyMemoryBootImage(VbCommonParams *cparams, VbPublicKey* kernel_subkey = NULL; uint8_t *kbuf; VbKeyBlockHeader *key_block; - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; VbKernelPreambleHeader *preamble; uint64_t body_offset; int hash_only = 0; @@ -494,6 +499,7 @@ VbError_t VbVerifyMemoryBootImage(VbCommonParams *cparams, goto fail; struct vb2_shared_data *sd = vb2_get_sd(&ctx); + VbSharedDataHeader *shared = sd->vbsd; if ((boot_image == NULL) || (image_size == 0)) { retval = VBERROR_INVALID_PARAMETER; diff --git a/firmware/lib/vboot_display.c b/firmware/lib/vboot_display.c index 3d12244d..d3e3a6a2 100644 --- a/firmware/lib/vboot_display.c +++ b/firmware/lib/vboot_display.c @@ -276,9 +276,8 @@ const char *RecoveryReasonString(uint8_t code) VbError_t VbDisplayDebugInfo(struct vb2_context *ctx, VbCommonParams *cparams) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; struct vb2_shared_data *sd = vb2_get_sd(ctx); + VbSharedDataHeader *shared = sd->vbsd; char buf[DEBUG_INFO_SIZE] = ""; char sha1sum[VB2_SHA1_DIGEST_SIZE * 2 + 1]; char hwid[256]; diff --git a/firmware/lib/vboot_kernel.c b/firmware/lib/vboot_kernel.c index c5030ef8..d298e68d 100644 --- a/firmware/lib/vboot_kernel.c +++ b/firmware/lib/vboot_kernel.c @@ -431,7 +431,8 @@ int vb2_load_partition(struct vb2_context *ctx, VbError_t LoadKernel(struct vb2_context *ctx, LoadKernelParams *params, VbCommonParams *cparams) { - VbSharedDataHeader *shared = cparams->shared_data_blob; + struct vb2_shared_data *sd = vb2_get_sd(ctx); + VbSharedDataHeader *shared = sd->vbsd; VbSharedDataKernelCall *shcall = NULL; struct vb2_packed_key *recovery_key = NULL; int found_partitions = 0; diff --git a/firmware/lib/vboot_ui.c b/firmware/lib/vboot_ui.c index 1776e4f6..36c7cdf1 100644 --- a/firmware/lib/vboot_ui.c +++ b/firmware/lib/vboot_ui.c @@ -94,8 +94,8 @@ uint32_t VbTryUsb(struct vb2_context *ctx, VbCommonParams *cparams) int VbUserConfirms(struct vb2_context *ctx, VbCommonParams *cparams, uint32_t confirm_flags) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; + struct vb2_shared_data *sd = vb2_get_sd(ctx); + VbSharedDataHeader *shared = sd->vbsd; uint32_t key; uint32_t key_flags; uint32_t btn; @@ -162,9 +162,8 @@ static const char dev_disable_msg[] = VbError_t vb2_developer_ui(struct vb2_context *ctx, VbCommonParams *cparams) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; struct vb2_shared_data *sd = vb2_get_sd(ctx); + VbSharedDataHeader *shared = sd->vbsd; uint32_t disable_dev_boot = 0; uint32_t use_usb = 0; @@ -399,8 +398,8 @@ VbError_t VbBootDeveloper(struct vb2_context *ctx, VbCommonParams *cparams) static VbError_t recovery_ui(struct vb2_context *ctx, VbCommonParams *cparams) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; + struct vb2_shared_data *sd = vb2_get_sd(ctx); + VbSharedDataHeader *shared = sd->vbsd; uint32_t retval; uint32_t key; int i; diff --git a/firmware/lib/vboot_ui_menu.c b/firmware/lib/vboot_ui_menu.c index aad03a2d..a8247a2c 100644 --- a/firmware/lib/vboot_ui_menu.c +++ b/firmware/lib/vboot_ui_menu.c @@ -589,9 +589,8 @@ void vb2_update_selection(uint32_t key) { */ VbError_t vb2_developer_menu(struct vb2_context *ctx, VbCommonParams *cparams) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; struct vb2_shared_data *sd = vb2_get_sd(ctx); + VbSharedDataHeader *shared = sd->vbsd; uint32_t use_usb = 0; uint32_t use_legacy = 0; @@ -897,8 +896,8 @@ VbError_t VbBootDeveloperMenu(struct vb2_context *ctx, VbCommonParams *cparams) */ static VbError_t recovery_ui(struct vb2_context *ctx, VbCommonParams *cparams) { - VbSharedDataHeader *shared = - (VbSharedDataHeader *)cparams->shared_data_blob; + struct vb2_shared_data *sd = vb2_get_sd(ctx); + VbSharedDataHeader *shared = sd->vbsd; uint32_t retval; uint32_t key; uint32_t key_flags; diff --git a/tests/ec_sync_tests.c b/tests/ec_sync_tests.c index 8a2ecd82..332290ae 100644 --- a/tests/ec_sync_tests.c +++ b/tests/ec_sync_tests.c @@ -83,7 +83,9 @@ static void ResetMocks(void) ctx.flags = VB2_CONTEXT_EC_SYNC_SUPPORTED; vb2_init_context(&ctx); vb2_nv_init(&ctx); + sd = vb2_get_sd(&ctx); + sd->vbsd = shared; memset(&shared_data, 0, sizeof(shared_data)); VbSharedDataInit(shared, sizeof(shared_data)); @@ -235,7 +237,7 @@ VbError_t VbExUpdateAuxFw() static void test_ssync(VbError_t retval, int recovery_reason, const char *desc) { - TEST_EQ(ec_sync_all(&ctx, &cparams), retval, desc); + TEST_EQ(ec_sync_all(&ctx), retval, desc); TEST_EQ(vb2_nv_get(&ctx, VB2_NV_RECOVERY_REQUEST), recovery_reason, " recovery reason"); } diff --git a/tests/vboot_api_devmode_tests.c b/tests/vboot_api_devmode_tests.c index 0a336d90..330a89ac 100644 --- a/tests/vboot_api_devmode_tests.c +++ b/tests/vboot_api_devmode_tests.c @@ -118,8 +118,6 @@ extern int audio_open_count; static void ResetMocks(void) { memset(&cparams, 0, sizeof(cparams)); - cparams.shared_data_size = sizeof(shared_data); - cparams.shared_data_blob = shared_data; cparams.gbb_data = &gbb; cparams.gbb = &gbb; @@ -128,7 +126,9 @@ static void ResetMocks(void) ctx.workbuf_size = sizeof(workbuf); vb2_init_context(&ctx); vb2_nv_init(&ctx); + sd = vb2_get_sd(&ctx); + sd->vbsd = shared; memset(&shared_data, 0, sizeof(shared_data)); VbSharedDataInit(shared, sizeof(shared_data)); diff --git a/tests/vboot_api_kernel2_tests.c b/tests/vboot_api_kernel2_tests.c index 64fca37f..04e64667 100644 --- a/tests/vboot_api_kernel2_tests.c +++ b/tests/vboot_api_kernel2_tests.c @@ -59,8 +59,6 @@ extern struct RollbackSpaceFwmp *VbApiKernelGetFwmp(void); static void ResetMocks(void) { memset(&cparams, 0, sizeof(cparams)); - cparams.shared_data_size = sizeof(shared_data); - cparams.shared_data_blob = shared_data; cparams.gbb_data = &gbb; cparams.gbb = &gbb; @@ -81,7 +79,9 @@ static void ResetMocks(void) ctx.workbuf_size = sizeof(workbuf); vb2_init_context(&ctx); vb2_nv_init(&ctx); + sd = vb2_get_sd(&ctx); + sd->vbsd = shared; shutdown_request_calls_left = -1; audio_looping_calls_left = 30; diff --git a/tests/vboot_api_kernel4_tests.c b/tests/vboot_api_kernel4_tests.c index e239192c..07bbfcec 100644 --- a/tests/vboot_api_kernel4_tests.c +++ b/tests/vboot_api_kernel4_tests.c @@ -11,6 +11,7 @@ #include "2sysincludes.h" #include "2api.h" +#include "2misc.h" #include "2nvstorage.h" #include "ec_sync.h" #include "gbb_header.h" @@ -24,7 +25,9 @@ #include "vboot_struct.h" /* Mock data */ +static uint8_t workbuf[VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE]; static struct vb2_context ctx; +static struct vb2_shared_data *sd; static VbCommonParams cparams; static VbSelectAndLoadKernelParams kparams; static uint8_t shared_data[VB_SHARED_DATA_MIN_SIZE]; @@ -54,9 +57,15 @@ static void ResetMocks(void) gbb.flags = 0; memset(&ctx, 0, sizeof(ctx)); + ctx.workbuf = workbuf; + ctx.workbuf_size = sizeof(workbuf); + vb2_init_context(&ctx); vb2_nv_init(&ctx); vb2_nv_set(&ctx, VB2_NV_KERNEL_MAX_ROLLFORWARD, 0xffffffff); + sd = vb2_get_sd(&ctx); + sd->vbsd = shared; + memset(&shared_data, 0, sizeof(shared_data)); VbSharedDataInit(shared, sizeof(shared_data)); diff --git a/tests/vboot_api_kernel5_tests.c b/tests/vboot_api_kernel5_tests.c index 2d7c2e76..fc54eb7a 100644 --- a/tests/vboot_api_kernel5_tests.c +++ b/tests/vboot_api_kernel5_tests.c @@ -13,6 +13,7 @@ #include "2sysincludes.h" #include "2api.h" #include "2common.h" +#include "2misc.h" #include "2nvstorage.h" #include "2rsa.h" #include "gbb_header.h" @@ -26,7 +27,9 @@ #include "vboot_struct.h" /* Mock data */ +static uint8_t workbuf[VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE]; static struct vb2_context ctx; +static struct vb2_shared_data *sd; static VbCommonParams cparams; static VbSelectAndLoadKernelParams kparams; static uint8_t shared_data[VB_SHARED_DATA_MIN_SIZE]; @@ -63,8 +66,14 @@ static void ResetMocks(void) gbb.flags = 0; memset(&ctx, 0, sizeof(ctx)); + ctx.workbuf = workbuf; + ctx.workbuf_size = sizeof(workbuf); + vb2_init_context(&ctx); vb2_nv_init(&ctx); + sd = vb2_get_sd(&ctx); + sd->vbsd = shared; + memset(&shared_data, 0, sizeof(shared_data)); VbSharedDataInit(shared, sizeof(shared_data)); diff --git a/tests/vboot_detach_menu_tests.c b/tests/vboot_detach_menu_tests.c index 3857c68d..0e3cc3b0 100644 --- a/tests/vboot_detach_menu_tests.c +++ b/tests/vboot_detach_menu_tests.c @@ -61,8 +61,6 @@ extern struct RollbackSpaceFwmp *VbApiKernelGetFwmp(void); static void ResetMocks(void) { memset(&cparams, 0, sizeof(cparams)); - cparams.shared_data_size = sizeof(shared_data); - cparams.shared_data_blob = shared_data; cparams.gbb_data = &gbb; cparams.gbb = &gbb; @@ -83,7 +81,9 @@ static void ResetMocks(void) ctx.workbuf_size = sizeof(workbuf); vb2_init_context(&ctx); vb2_nv_init(&ctx); + sd = vb2_get_sd(&ctx); + sd->vbsd = shared; shutdown_request_calls_left = -1; audio_looping_calls_left = 30; diff --git a/tests/vboot_display_tests.c b/tests/vboot_display_tests.c index e5e0d00f..7ddc28e9 100644 --- a/tests/vboot_display_tests.c +++ b/tests/vboot_display_tests.c @@ -53,8 +53,6 @@ static void ResetMocks(void) mock_localization_count = 3; memset(&cparams, 0, sizeof(cparams)); - cparams.shared_data_size = sizeof(shared_data); - cparams.shared_data_blob = shared_data; cparams.gbb_data = gbb; cparams.gbb_size = sizeof(gbb_data); @@ -78,6 +76,9 @@ static void ResetMocks(void) vb2_init_context(&ctx); vb2_nv_init(&ctx); + struct vb2_shared_data *sd = vb2_get_sd(&ctx); + sd->vbsd = shared; + memset(&shared_data, 0, sizeof(shared_data)); VbSharedDataInit(shared, sizeof(shared_data)); diff --git a/tests/vboot_kernel_tests.c b/tests/vboot_kernel_tests.c index d581b373..a5919780 100644 --- a/tests/vboot_kernel_tests.c +++ b/tests/vboot_kernel_tests.c @@ -149,7 +149,6 @@ static void ResetMocks(void) cparams.gbb = gbb; cparams.gbb_data = gbb; cparams.gbb_size = sizeof(gbb_data); - cparams.shared_data_blob = shared; memset(&lkp, 0, sizeof(lkp)); lkp.bytes_per_lba = 512; @@ -184,6 +183,9 @@ static void ResetMocks(void) ctx.workbuf_size = sizeof(workbuf); vb2_nv_init(&ctx); + struct vb2_shared_data *sd = vb2_get_sd(&ctx); + sd->vbsd = shared; + // TODO: more workbuf fields - flags, secdata, secdatak } diff --git a/tests/verify_kernel.c b/tests/verify_kernel.c index 58c01ad9..01c4deee 100644 --- a/tests/verify_kernel.c +++ b/tests/verify_kernel.c @@ -132,6 +132,9 @@ int main(int argc, char *argv[]) return 1; } + struct vb2_shared_data *sd = vb2_get_sd(&ctx); + sd->vbsd = shared; + /* * LoadKernel() cares only about VBNV_DEV_BOOT_SIGNED_ONLY, and only in * dev mode. So just use defaults for nv storage. diff --git a/utility/load_kernel_test.c b/utility/load_kernel_test.c index 517a13ff..481e78ce 100644 --- a/utility/load_kernel_test.c +++ b/utility/load_kernel_test.c @@ -247,6 +247,9 @@ int main(int argc, char* argv[]) { return 1; } + struct vb2_shared_data *sd = vb2_get_sd(&ctx); + sd->vbsd = shared; + /* Call LoadKernel() */ rv = LoadKernel(&ctx, &lkp, &cparams); printf("LoadKernel() returned %d\n", rv); |