vboot2: avoid fall through when hard_reset is not implemented
this change makes prevent execution from falling through to unverified code when hard_reset is not implemented. it also includes a few touch-ups. BUG=None TEST=Booted Veyron Pinky. Verified firmware selection in the log. BRANCH=None Original-Change-Id: I9b02ab766172a62c98b434c29f310bc4a44f342d Original-Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/219625 Original-Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org> Original-Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org> Original-Tested-by: Daisuke Nojiri <dnojiri@chromium.org> (cherry picked from commit d1f5207d83d2247b55f2bb9d02ac843305fc3ded) Change-Id: I99dd5a2ca3a5369accb14408ea9d266bf60e7132 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/8884 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
35890170b5
commit
6abe7c6996
|
@ -100,7 +100,7 @@ config VBOOT_VERIFY_FIRMWARE
|
||||||
config VBOOT2_VERIFY_FIRMWARE
|
config VBOOT2_VERIFY_FIRMWARE
|
||||||
bool "Firmware Verification with vboot2"
|
bool "Firmware Verification with vboot2"
|
||||||
default n
|
default n
|
||||||
depends on CHROMEOS
|
depends on CHROMEOS && HAVE_HARD_RESET
|
||||||
help
|
help
|
||||||
Enabling VBOOT2_VERIFY_FIRMWARE will use vboot2 to verify the romstage
|
Enabling VBOOT2_VERIFY_FIRMWARE will use vboot2 to verify the romstage
|
||||||
and boot loader.
|
and boot loader.
|
||||||
|
|
|
@ -104,7 +104,7 @@ verstage-c-ccopts += -D__PRE_RAM__ -D__VER_STAGE__
|
||||||
verstage-S-ccopts += -D__PRE_RAM__ -D__VER_STAGE__
|
verstage-S-ccopts += -D__PRE_RAM__ -D__VER_STAGE__
|
||||||
|
|
||||||
ifeq ($(CONFIG_RETURN_FROM_VERSTAGE),y)
|
ifeq ($(CONFIG_RETURN_FROM_VERSTAGE),y)
|
||||||
bootblock-y += verstub.c
|
bootblock-y += verstub.c chromeos.c
|
||||||
else
|
else
|
||||||
verstage-y += verstub.c
|
verstage-y += verstub.c
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -173,7 +173,7 @@ struct vboot_components *vboot_locate_components(struct vboot_region *region)
|
||||||
size_t req_size;
|
size_t req_size;
|
||||||
struct vboot_components *vbc;
|
struct vboot_components *vbc;
|
||||||
|
|
||||||
req_size = sizeof(*region);
|
req_size = sizeof(*vbc);
|
||||||
req_size += sizeof(struct vboot_component_entry) *
|
req_size += sizeof(struct vboot_component_entry) *
|
||||||
MAX_PARSED_FW_COMPONENTS;
|
MAX_PARSED_FW_COMPONENTS;
|
||||||
|
|
||||||
|
@ -259,6 +259,7 @@ struct vb2_working_data * const vboot_get_working_data(void)
|
||||||
void vboot_reboot(void)
|
void vboot_reboot(void)
|
||||||
{
|
{
|
||||||
hard_reset();
|
hard_reset();
|
||||||
|
die("failed to reboot");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -118,9 +118,10 @@ static inline void chromeos_ram_oops_init(chromeos_acpi_t *chromeos) {}
|
||||||
static inline void chromeos_reserve_ram_oops(struct device *dev, int idx) {}
|
static inline void chromeos_reserve_ram_oops(struct device *dev, int idx) {}
|
||||||
#endif /* CONFIG_CHROMEOS_RAMOOPS */
|
#endif /* CONFIG_CHROMEOS_RAMOOPS */
|
||||||
|
|
||||||
|
void vboot2_verify_firmware(void);
|
||||||
|
|
||||||
#if CONFIG_VBOOT2_VERIFY_FIRMWARE
|
#if CONFIG_VBOOT2_VERIFY_FIRMWARE
|
||||||
void *vboot_load_ramstage(void);
|
void *vboot_load_ramstage(void);
|
||||||
void vboot2_verify_firmware(void);
|
|
||||||
void verstage_main(void);
|
void verstage_main(void);
|
||||||
void *vboot_load_stage(int stage_index,
|
void *vboot_load_stage(int stage_index,
|
||||||
struct vboot_region *fw_main,
|
struct vboot_region *fw_main,
|
||||||
|
|
|
@ -61,7 +61,7 @@ void vboot2_verify_firmware(void)
|
||||||
/* load verstage from RO */
|
/* load verstage from RO */
|
||||||
entry = cbfs_load_stage(CBFS_DEFAULT_MEDIA,
|
entry = cbfs_load_stage(CBFS_DEFAULT_MEDIA,
|
||||||
CONFIG_CBFS_PREFIX "/verstage");
|
CONFIG_CBFS_PREFIX "/verstage");
|
||||||
if (entry == -1)
|
if (entry == (void *)-1)
|
||||||
die("failed to load verstage");
|
die("failed to load verstage");
|
||||||
|
|
||||||
/* verify and select a slot */
|
/* verify and select a slot */
|
||||||
|
|
Loading…
Reference in New Issue