summaryrefslogtreecommitdiff
path: root/firmware/lib/vboot_api_kernel.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2018-01-02 12:32:16 -0800
committerchrome-bot <chrome-bot@chromium.org>2018-01-09 14:14:16 -0800
commit39427240693b31942f89385d3b01083fea1b0678 (patch)
treee1a8dad5e269bd8f6b1530ab307841b486957b47 /firmware/lib/vboot_api_kernel.c
parent46b7e0dae409ad83797a0b2feff314417bbb7b1c (diff)
downloadvboot-39427240693b31942f89385d3b01083fea1b0678.tar.gz
ec_sync: Use vboot2 context instead of cparams
Copy sync-related flags from cparams / vboot1 shared data to the equivalent vboot2 structs. This removes the need for ec_sync to access the old structs, which are on their way out. No change in functionality. BUG=chromium:611535 BRANCH=none TEST=make -j runtests; build bob firmware and boot it Change-Id: I50ee76cf275a7fba894c2ec2c3dd83b9a8d91b53 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/852489 Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
Diffstat (limited to 'firmware/lib/vboot_api_kernel.c')
-rw-r--r--firmware/lib/vboot_api_kernel.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c
index fd0556b5..44b537d9 100644
--- a/firmware/lib/vboot_api_kernel.c
+++ b/firmware/lib/vboot_api_kernel.c
@@ -268,11 +268,28 @@ static VbError_t vb2_kernel_setup(VbCommonParams *cparams,
VbExNvStorageRead(ctx.nvdata);
vb2_nv_init(&ctx);
+ /* Translate vboot1 flags back to vboot2 */
if (shared->recovery_reason)
ctx.flags |= VB2_CONTEXT_RECOVERY_MODE;
if (shared->flags & VBSD_BOOT_DEV_SWITCH_ON)
ctx.flags |= VB2_CONTEXT_DEVELOPER_MODE;
+ /*
+ * The following flags are set by depthcharge.
+ *
+ * TODO: Some of these are set at compile-time, so could be #defines
+ * instead of flags. That would save on firmware image size because
+ * features that won't be used in an image could be compiled out.
+ */
+ if (shared->flags & VBSD_EC_SOFTWARE_SYNC)
+ ctx.flags |= VB2_CONTEXT_EC_SYNC_SUPPORTED;
+ if (shared->flags & VBSD_EC_SLOW_UPDATE)
+ ctx.flags |= VB2_CONTEXT_EC_SYNC_SLOW;
+ if (shared->flags & VBSD_EC_EFS)
+ ctx.flags |= VB2_CONTEXT_EC_EFS;
+ if (shared->flags & VBSD_BOOT_FIRMWARE_SW_WP_ENABLED)
+ ctx.flags |= VB2_CONTEXT_SW_WP_ENABLED;
+
ctx.workbuf_size = VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE +
VB2_WORKBUF_ALIGN;