diff options
author | Aaron Durbin <adurbin@chromium.org> | 2015-05-12 16:43:10 -0500 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2015-05-13 00:23:27 +0200 |
commit | 09560facd4a599afbc8f2ed47f48a97aabf40579 (patch) | |
tree | 6b73362c0df2a4c8feb5ee31eabb6aaba2c2b84a | |
parent | 3dad489cac181381b211a0fbf3a6538e32cd5dc2 (diff) |
vboot: handle RELOCATABLE_RAMSTAGE
The support for RELOCATABLE_RAMSTAGE was accidentally omitted in
the vboot loader. Add said support.
Change-Id: I569918823253c33f698acefd6a619133543c7aef
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/10184
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: build bot (Jenkins)
-rw-r--r-- | src/vendorcode/google/chromeos/vboot2/vboot_loader.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/vendorcode/google/chromeos/vboot2/vboot_loader.c b/src/vendorcode/google/chromeos/vboot2/vboot_loader.c index 505c9c0090..9e60472152 100644 --- a/src/vendorcode/google/chromeos/vboot2/vboot_loader.c +++ b/src/vendorcode/google/chromeos/vboot2/vboot_loader.c @@ -18,8 +18,10 @@ */ #include <cbfs.h> +#include <cbmem.h> #include <console/console.h> #include <program_loading.h> +#include <rmodule.h> #include <rules.h> #include <string.h> #include "misc.h" @@ -231,7 +233,15 @@ static int vboot_prepare(struct prog *prog) if (stage == 0) die("Vboot stage load failed."); - if (cbfs_load_prog_stage_by_offset(CBFS_DEFAULT_MEDIA, + if (ENV_ROMSTAGE && IS_ENABLED(CONFIG_RELOCATABLE_RAMSTAGE)) { + struct rmod_stage_load rmod_ram = { + .cbmem_id = CBMEM_ID_RAMSTAGE, + .prog = prog, + }; + + if (rmodule_stage_load(&rmod_ram, (void *)stage)) + die("Vboot couldn't load stage"); + } else if (cbfs_load_prog_stage_by_offset(CBFS_DEFAULT_MEDIA, prog, stage) < 0) die("Vboot couldn't load stage"); } |