summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNico Huber <nico.huber@secunet.com>2020-07-06 11:02:53 +0200
committerNico Huber <nico.h@gmx.de>2020-07-06 09:36:15 +0000
commit06b68d1097b31f55883b4f8ad9503783dfff239a (patch)
treee3777894dae86cbf96499db8e43d1c1a47dabce2
parent8008c530e77d7dfbf656cc85ffa9d76491c15f1e (diff)
downloadcoreboot-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.c11
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);