From 4911dc7ca90cfe758227e7a86b8c950a48c6ff6e Mon Sep 17 00:00:00 2001 From: Raul E Rangel Date: Fri, 5 Nov 2021 10:29:24 -0600 Subject: drivers/intel/fsp2_0: Allow FSP-M to be relocated AMD platforms pass in the base address to cbfs tool: fspm.bin-options: -b $(CONFIG_FSP_M_ADDR) There is no technical reason not to allow FSP-M to be relocated when !XIP. By allowing this, we no longer need to pass in the base address into cbfstool when adding fspm.bin. This enables passing in the `--alignment` argument to cbfs tool instead. cbfstool currently has a check that prevents both `-b` and `-a` from being passed in. BUG=b:179699789 TEST=Boot guybrush to OS Signed-off-by: Raul E Rangel Change-Id: I797fb319333c53ad0bbf7340924f7d07dfc7de30 Reviewed-on: https://review.coreboot.org/c/coreboot/+/58984 Tested-by: build bot (Jenkins) Reviewed-by: Tim Wawrzynczak --- src/commonlib/Makefile.inc | 3 +++ src/drivers/intel/fsp2_0/util.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/commonlib/Makefile.inc b/src/commonlib/Makefile.inc index 53975bcad8..9347f88f9c 100644 --- a/src/commonlib/Makefile.inc +++ b/src/commonlib/Makefile.inc @@ -22,6 +22,9 @@ smm-y += region.c postcar-y += region.c ramstage-$(CONFIG_PLATFORM_USES_FSP1_1) += fsp_relocate.c +ifeq ($(CONFIG_FSP_M_XIP),) +romstage-$(CONFIG_PLATFORM_USES_FSP2_0) += fsp_relocate.c +endif ramstage-$(CONFIG_PLATFORM_USES_FSP2_0) += fsp_relocate.c bootblock-y += cbfs.c diff --git a/src/drivers/intel/fsp2_0/util.c b/src/drivers/intel/fsp2_0/util.c index 112801333f..49934fe6de 100644 --- a/src/drivers/intel/fsp2_0/util.c +++ b/src/drivers/intel/fsp2_0/util.c @@ -163,8 +163,8 @@ enum cb_err fsp_load_component(struct fsp_load_descriptor *fspld, struct fsp_hea if (!dest) return CB_ERR; - /* Don't allow FSP-M relocation. */ - if (!fspm_env() && fsp_component_relocate((uintptr_t)dest, dest, output_size) < 0) { + /* Don't allow FSP-M relocation when XIP. */ + if (!fspm_xip() && fsp_component_relocate((uintptr_t)dest, dest, output_size) < 0) { printk(BIOS_ERR, "Unable to relocate FSP component!\n"); return CB_ERR; } -- cgit v1.2.3