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
@ -71,9 +71,8 @@ BOOT_STATE_INIT_ENTRY(BS_DEV_INIT, BS_ON_EXIT,
|
||||
* VB2_RECOVERY_RO_MANUAL.
|
||||
* 2. Checks if recovery request is present in VBNV and returns the code read
|
||||
* from it.
|
||||
* 3. Checks if vboot verification is done and looks up selected region
|
||||
* to identify if vboot_reference library has requested recovery path.
|
||||
* If yes, return the reason code from shared data.
|
||||
* 3. Checks if vboot verification is done. If yes, return the reason code from
|
||||
* shared data.
|
||||
* 4. If nothing applies, return 0 indicating no recovery request.
|
||||
*/
|
||||
int vboot_check_recovery_request(void)
|
||||
@ -88,11 +87,8 @@ int vboot_check_recovery_request(void)
|
||||
if ((reason = get_recovery_mode_from_vbnv()) != 0)
|
||||
return reason;
|
||||
|
||||
/*
|
||||
* Identify if vboot verification is already complete and no slot
|
||||
* was selected i.e. recovery path was requested.
|
||||
*/
|
||||
if (vboot_logic_executed() && !vboot_is_slot_selected())
|
||||
/* Identify if vboot verification is already complete. */
|
||||
if (vboot_logic_executed())
|
||||
return vboot_get_recovery_reason_shared_data();
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user