summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/vendorcode/google/chromeos/vboot2/vboot_loader.c12
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");
}