lib/coreboot_table: Add CBMEM_ID_VBOOT_WORKBUF pointer to coreboot table
Since struct vb2_shared_data already contains workbuf_size and vboot_workbuf_size is never used in depthcharge, remove it from struct sysinfo_t. In addition, remove lb_vboot_workbuf() and add CBMEM_ID_VBOOT_WORKBUF pointer to coreboot table with add_cbmem_pointers(). Parsing of coreboot table in libpayload is modified accordingly. BRANCH=none BUG=chromium:1021452 TEST=emerge-nami coreboot libpayload depthcharge; Akali booted correctly Change-Id: I890df3ff93fa44ed6d3f9ad05f9c6e49780a8ecb Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/37234 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Joel Kitching <kitching@google.com> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
parent
a2962daf6f
commit
63b9700b2c
|
@ -96,7 +96,6 @@ struct sysinfo_t {
|
||||||
struct cb_mainboard *mainboard;
|
struct cb_mainboard *mainboard;
|
||||||
|
|
||||||
void *vboot_workbuf;
|
void *vboot_workbuf;
|
||||||
uint32_t vboot_workbuf_size;
|
|
||||||
|
|
||||||
#if CONFIG(LP_ARCH_X86)
|
#if CONFIG(LP_ARCH_X86)
|
||||||
int x86_rom_var_mtrr_index;
|
int x86_rom_var_mtrr_index;
|
||||||
|
|
|
@ -86,10 +86,7 @@ static void cb_parse_serial(void *ptr, struct sysinfo_t *info)
|
||||||
|
|
||||||
static void cb_parse_vboot_workbuf(unsigned char *ptr, struct sysinfo_t *info)
|
static void cb_parse_vboot_workbuf(unsigned char *ptr, struct sysinfo_t *info)
|
||||||
{
|
{
|
||||||
struct lb_range *vbwb = (struct lb_range *)ptr;
|
info->vboot_workbuf = get_cbmem_ptr(ptr);
|
||||||
|
|
||||||
info->vboot_workbuf = (void *)(uintptr_t)vbwb->range_start;
|
|
||||||
info->vboot_workbuf_size = vbwb->range_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cb_parse_vbnv(unsigned char *ptr, struct sysinfo_t *info)
|
static void cb_parse_vbnv(unsigned char *ptr, struct sysinfo_t *info)
|
||||||
|
|
|
@ -218,23 +218,6 @@ static void lb_vbnv(struct lb_header *header)
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_CHROMEOS */
|
#endif /* CONFIG_CHROMEOS */
|
||||||
|
|
||||||
static void lb_vboot_workbuf(struct lb_header *header)
|
|
||||||
{
|
|
||||||
struct lb_range *vbwb;
|
|
||||||
void *wb = vboot_get_workbuf();
|
|
||||||
|
|
||||||
vbwb = (struct lb_range *)lb_new_record(header);
|
|
||||||
vbwb->tag = LB_TAG_VBOOT_WORKBUF;
|
|
||||||
vbwb->size = sizeof(*vbwb);
|
|
||||||
vbwb->range_start = (uintptr_t)wb;
|
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
vbwb->range_size = VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE;
|
|
||||||
}
|
|
||||||
|
|
||||||
__weak uint32_t board_id(void) { return UNDEFINED_STRAPPING_ID; }
|
__weak uint32_t board_id(void) { return UNDEFINED_STRAPPING_ID; }
|
||||||
__weak uint32_t ram_code(void) { return UNDEFINED_STRAPPING_ID; }
|
__weak uint32_t ram_code(void) { return UNDEFINED_STRAPPING_ID; }
|
||||||
__weak uint32_t sku_id(void) { return UNDEFINED_STRAPPING_ID; }
|
__weak uint32_t sku_id(void) { return UNDEFINED_STRAPPING_ID; }
|
||||||
|
@ -349,6 +332,7 @@ static void add_cbmem_pointers(struct lb_header *header)
|
||||||
{CBMEM_ID_WIFI_CALIBRATION, LB_TAG_WIFI_CALIBRATION},
|
{CBMEM_ID_WIFI_CALIBRATION, LB_TAG_WIFI_CALIBRATION},
|
||||||
{CBMEM_ID_TCPA_LOG, LB_TAG_TCPA_LOG},
|
{CBMEM_ID_TCPA_LOG, LB_TAG_TCPA_LOG},
|
||||||
{CBMEM_ID_FMAP, LB_TAG_FMAP},
|
{CBMEM_ID_FMAP, LB_TAG_FMAP},
|
||||||
|
{CBMEM_ID_VBOOT_WORKBUF, LB_TAG_VBOOT_WORKBUF},
|
||||||
};
|
};
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -558,11 +542,6 @@ static uintptr_t write_coreboot_table(uintptr_t rom_table_end)
|
||||||
lb_vbnv(head);
|
lb_vbnv(head);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (CONFIG(VBOOT)) {
|
|
||||||
/* pass along the vboot workbuf address. */
|
|
||||||
lb_vboot_workbuf(head);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add strapping IDs if available */
|
/* Add strapping IDs if available */
|
||||||
lb_board_id(head);
|
lb_board_id(head);
|
||||||
lb_ram_code(head);
|
lb_ram_code(head);
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
static struct vb2_context *vboot_ctx;
|
static struct vb2_context *vboot_ctx;
|
||||||
|
|
||||||
void *vboot_get_workbuf(void)
|
static void *vboot_get_workbuf(void)
|
||||||
{
|
{
|
||||||
void *wb = NULL;
|
void *wb = NULL;
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@ struct vb2_shared_data;
|
||||||
/*
|
/*
|
||||||
* Source: security/vboot/common.c
|
* Source: security/vboot/common.c
|
||||||
*/
|
*/
|
||||||
void *vboot_get_workbuf(void);
|
|
||||||
struct vb2_context *vboot_get_context(void);
|
struct vb2_context *vboot_get_context(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue