summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/coreboot_table.c9
-rw-r--r--src/security/vboot/common.c14
-rw-r--r--src/security/vboot/misc.h1
3 files changed, 11 insertions, 13 deletions
diff --git a/src/lib/coreboot_table.c b/src/lib/coreboot_table.c
index d3576e6a32..241d8e1550 100644
--- a/src/lib/coreboot_table.c
+++ b/src/lib/coreboot_table.c
@@ -227,7 +227,14 @@ static void lb_vboot_workbuf(struct lb_header *header)
vbwb->tag = LB_TAG_VBOOT_WORKBUF;
vbwb->size = sizeof(*vbwb);
vbwb->range_start = (uintptr_t)wd + wd->buffer_offset;
- vbwb->range_size = wd->buffer_size;
+ /*
+ * TODO(chromium:1021452): Since cbmem size of vboot workbuf is now
+ * always a known value, we hardcode the value of range_size here.
+ * Ultimately we'll want to move this to add_cbmem_pointers() below,
+ * but we'll have to get rid of the vboot_working_data struct first.
+ */
+ vbwb->range_size = VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE -
+ wd->buffer_offset;
}
__weak uint32_t board_id(void) { return UNDEFINED_STRAPPING_ID; }
diff --git a/src/security/vboot/common.c b/src/security/vboot/common.c
index 043748cbef..3f57602cb1 100644
--- a/src/security/vboot/common.c
+++ b/src/security/vboot/common.c
@@ -73,11 +73,11 @@ struct vb2_context *vboot_get_context(void)
*/
memset(wd, 0, sizeof(*wd));
wd->buffer_offset = ALIGN_UP(sizeof(*wd), 16);
- wd->buffer_size = VB2_FIRMWARE_WORKBUF_RECOMMENDED_SIZE
- - wd->buffer_offset;
/* Initialize vb2_shared_data and friends. */
- assert(vb2api_init(vboot_get_workbuf(wd), wd->buffer_size,
+ assert(vb2api_init(vboot_get_workbuf(wd),
+ VB2_FIRMWARE_WORKBUF_RECOMMENDED_SIZE -
+ wd->buffer_offset,
vboot_ctx_ptr) == VB2_SUCCESS);
return *vboot_ctx_ptr;
@@ -137,14 +137,6 @@ static void vboot_migrate_cbmem(int unused)
cbmem_add(CBMEM_ID_VBOOT_WORKBUF, cbmem_size);
assert(wd_cbmem != NULL);
memcpy(wd_cbmem, wd_preram, sizeof(struct vboot_working_data));
- /*
- * TODO(chromium:1021452): buffer_size is uint16_t and not large enough
- * to hold the kernel verification workbuf size. The only code which
- * reads this value is in lb_vboot_workbuf() for lb_range->range_size.
- * This value being zero doesn't cause any problems, since it is never
- * read downstream. Fix or deprecate vboot_working_data.
- */
- wd_cbmem->buffer_size = 0;
vb2api_relocate(vboot_get_workbuf(wd_cbmem),
vboot_get_workbuf(wd_preram),
cbmem_size - wd_cbmem->buffer_offset,
diff --git a/src/security/vboot/misc.h b/src/security/vboot/misc.h
index 812bbe7267..e438848635 100644
--- a/src/security/vboot/misc.h
+++ b/src/security/vboot/misc.h
@@ -39,7 +39,6 @@ struct vboot_working_data {
struct selected_region selected_region;
/* offset of the buffer from the start of this struct */
uint16_t buffer_offset;
- uint16_t buffer_size;
};
/*