diff options
author | Nico Huber <nico.huber@secunet.com> | 2020-07-06 11:02:53 +0200 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2020-07-06 09:36:15 +0000 |
commit | 06b68d1097b31f55883b4f8ad9503783dfff239a (patch) | |
tree | e3777894dae86cbf96499db8e43d1c1a47dabce2 | |
parent | 8008c530e77d7dfbf656cc85ffa9d76491c15f1e (diff) | |
download | coreboot-06b68d1097b31f55883b4f8ad9503783dfff239a.tar.xz |
prog_loaders: Fix ramstage loading on x86
A regression sneaked in with 18a8ba41cc (arch/x86: Remove RELOCATABLE_
RAMSTAGE). We want to call load_relocatable_ramstage() on x86, and
cbfs_prog_stage_load() on other architectures. But with the current
code the latter is also called on x86 if the former succeeded. Fix
that and also balance the if structure to make it more obvious.
TEST=qemu-system-x86_64 boots to payload again.
Change-Id: I5b1db5aac772b9b3a388a1a8ae490fa627334320
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/43142
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | src/lib/prog_loaders.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/lib/prog_loaders.c b/src/lib/prog_loaders.c index 419f4cd834..93efc0a280 100644 --- a/src/lib/prog_loaders.c +++ b/src/lib/prog_loaders.c @@ -129,10 +129,13 @@ void run_ramstage(void) timestamp_add_now(TS_START_COPYRAM); - if (ENV_X86 && load_relocatable_ramstage(&ramstage)) - goto fail; - else if (cbfs_prog_stage_load(&ramstage)) - goto fail; + if (ENV_X86) { + if (load_relocatable_ramstage(&ramstage)) + goto fail; + } else { + if (cbfs_prog_stage_load(&ramstage)) + goto fail; + } stage_cache_add(STAGE_RAMSTAGE, &ramstage); |