security/vboot: Remove selected_region from struct vboot_working_data
Since we already have pre-RAM cache for FMAP (CB:36657), calling load_firmware() multiple times is no longer a problem. This patch replaces vboot_get_selected_region() usage with vboot_locate_firmware(), which locates the firmware by reading from the CBMEM cache. In addition, returning false from vboot_is_slot_selected() implies the recovery path was requested, i.e., vb2_shared_data.recovery_reason was set. Therefore, we simply remove the vboot_is_slot_selected() check from vboot_check_recovery_request(). BRANCH=none BUG=chromium:1021452 TEST=emerge-kukui coreboot Change-Id: I27cb1a2175beb189053fc3e44b17b60aba474bb0 Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/36845 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
committed by
Patrick Georgi
parent
ea544574d0
commit
aeb652a4a0
@@ -73,17 +73,23 @@ void vboot_run_logic(void)
|
||||
|
||||
static int vboot_locate(struct cbfs_props *props)
|
||||
{
|
||||
struct region selected_region;
|
||||
const struct vb2_context *ctx;
|
||||
struct region_device fw_main;
|
||||
|
||||
/* Don't honor vboot results until the vboot logic has run. */
|
||||
if (!vboot_logic_executed())
|
||||
return -1;
|
||||
|
||||
if (vboot_get_selected_region(&selected_region))
|
||||
ctx = vboot_get_context();
|
||||
|
||||
if (ctx->flags & VB2_CONTEXT_RECOVERY_MODE)
|
||||
return -1;
|
||||
|
||||
props->offset = region_offset(&selected_region);
|
||||
props->size = region_sz(&selected_region);
|
||||
if (vboot_locate_firmware(ctx, &fw_main))
|
||||
return -1;
|
||||
|
||||
props->offset = region_device_offset(&fw_main);
|
||||
props->size = region_device_sz(&fw_main);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user