summaryrefslogtreecommitdiff
path: root/src/cpu/intel/haswell
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2013-03-01 17:40:49 -0600
committerStefan Reinauer <stefan.reinauer@coreboot.org>2013-03-22 00:15:52 +0100
commitd02bb62a4fefcb39063bc058afb60521fe819bad (patch)
treece23846c026d70d64f4798fd9cf390e017bed4b7 /src/cpu/intel/haswell
parent0df4de9e96887ddc4b8c5f79064701e9d1448ea9 (diff)
downloadcoreboot-d02bb62a4fefcb39063bc058afb60521fe819bad.tar.xz
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>
Diffstat (limited to 'src/cpu/intel/haswell')
-rw-r--r--src/cpu/intel/haswell/romstage.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/cpu/intel/haswell/romstage.c b/src/cpu/intel/haswell/romstage.c
index 5dc45010d7..ff5758471f 100644
--- a/src/cpu/intel/haswell/romstage.c
+++ b/src/cpu/intel/haswell/romstage.c
@@ -297,13 +297,11 @@ void romstage_common(const struct romstage_params *params)
#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. */
#if !CONFIG_RELOCATABLE_RAMSTAGE
#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. */
if (handoff != NULL && handoff->s3_resume) {
void *src = (void *)CONFIG_RAMBASE;
@@ -317,7 +315,16 @@ static inline void prepare_for_resume(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. */
copy_and_run(0);
}