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 +#include #include #include +#include #include #include #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"); }