haswell: vboot path support in romstage

Take the vboot path in romstage. This will complete the haswell
support for vboot firmware selection.

Built and booted. Noted firmware select worked on an image with
RW firmware support. Also checked that recovery mode worked as
well by choosing the RO path.

Change-Id: Ie2b0a34e6c5c45e6f0d25f77a5fdbaef0324cb09
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/2856
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Aaron Durbin 2013-03-01 17:40:49 -06:00 committed by Stefan Reinauer
parent 0df4de9e96
commit d02bb62a4f
1 changed files with 11 additions and 4 deletions

View File

@ -297,13 +297,11 @@ void romstage_common(const struct romstage_params *params)
#endif #endif
} }
static inline void prepare_for_resume(void) static inline void prepare_for_resume(struct romstage_handoff *handoff)
{ {
/* Only need to save memory when ramstage isn't relocatable. */ /* Only need to save memory when ramstage isn't relocatable. */
#if !CONFIG_RELOCATABLE_RAMSTAGE #if !CONFIG_RELOCATABLE_RAMSTAGE
#if CONFIG_HAVE_ACPI_RESUME #if CONFIG_HAVE_ACPI_RESUME
struct romstage_handoff *handoff = romstage_handoff_find_or_add();
/* Back up the OS-controlled memory where ramstage will be loaded. */ /* Back up the OS-controlled memory where ramstage will be loaded. */
if (handoff != NULL && handoff->s3_resume) { if (handoff != NULL && handoff->s3_resume) {
void *src = (void *)CONFIG_RAMBASE; void *src = (void *)CONFIG_RAMBASE;
@ -317,7 +315,16 @@ static inline void prepare_for_resume(void)
void romstage_after_car(void) void romstage_after_car(void)
{ {
prepare_for_resume(); struct romstage_handoff *handoff;
handoff = romstage_handoff_find_or_add();
prepare_for_resume(handoff);
#if CONFIG_VBOOT_VERIFY_FIRMWARE
vboot_verify_firmware(handoff);
#endif
/* Load the ramstage. */ /* Load the ramstage. */
copy_and_run(0); copy_and_run(0);
} }