From 5b94f9a663b08ff73466c0ee97594367729ae919 Mon Sep 17 00:00:00 2001 From: Felix Held <felix-coreboot@felixheld.de> Date: Thu, 18 Jan 2024 21:10:59 +0100 Subject: soc/amd/*/romstage: factor out FSP-M call Move the call into the FSP code to a file in the common AMD FSP code to isolate the FSP-specific parts of the code and a preparation to make the romstage of all non-CAR AMD SoCs common. Without isolating the call into the FSP-M code, building the common romstage would fail for genoa_poc due to fsp/api.h not being in the include path. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: I30cf1bee2ec1a507dc8e61eaf44067663e2505ae Reviewed-on: https://review.coreboot.org/c/coreboot/+/80002 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com> Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com> --- src/soc/amd/cezanne/romstage.c | 5 ++--- src/soc/amd/common/block/include/amdblocks/fsp.h | 8 ++++++++ src/soc/amd/common/fsp/Makefile.inc | 1 + src/soc/amd/common/fsp/fsp_romstage.c | 10 ++++++++++ src/soc/amd/glinda/romstage.c | 5 ++--- src/soc/amd/mendocino/romstage.c | 5 ++--- src/soc/amd/phoenix/romstage.c | 5 ++--- src/soc/amd/picasso/romstage.c | 5 ++--- 8 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 src/soc/amd/common/block/include/amdblocks/fsp.h create mode 100644 src/soc/amd/common/fsp/fsp_romstage.c (limited to 'src/soc/amd') diff --git a/src/soc/amd/cezanne/romstage.c b/src/soc/amd/cezanne/romstage.c index 63a6b07dc6..6b84728ad1 100644 --- a/src/soc/amd/cezanne/romstage.c +++ b/src/soc/amd/cezanne/romstage.c @@ -1,13 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#include <acpi/acpi.h> #include <amdblocks/acpimmio.h> +#include <amdblocks/fsp.h> #include <amdblocks/memmap.h> #include <amdblocks/pmlib.h> #include <amdblocks/post_codes.h> #include <console/console.h> #include <cpu/cpu.h> -#include <fsp/api.h> #include <program_loading.h> #include <romstage_common.h> @@ -18,7 +17,7 @@ void __noreturn romstage_main(void) /* Snapshot chipset state prior to any FSP call */ fill_chipset_state(); - fsp_memory_init(acpi_is_wakeup_s3()); + amd_fsp_early_init(); /* Fixup settings FSP-M should not be changing */ fch_disable_legacy_dma_io(); diff --git a/src/soc/amd/common/block/include/amdblocks/fsp.h b/src/soc/amd/common/block/include/amdblocks/fsp.h new file mode 100644 index 0000000000..a7b664f498 --- /dev/null +++ b/src/soc/amd/common/block/include/amdblocks/fsp.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef AMD_BLOCK_FSP_H +#define AMD_BLOCK_FSP_H + +void amd_fsp_early_init(void); + +#endif /* AMD_BLOCK_FSP_H */ diff --git a/src/soc/amd/common/fsp/Makefile.inc b/src/soc/amd/common/fsp/Makefile.inc index 14f1f8510b..2517f0c6fe 100644 --- a/src/soc/amd/common/fsp/Makefile.inc +++ b/src/soc/amd/common/fsp/Makefile.inc @@ -2,6 +2,7 @@ ifeq ($(CONFIG_PLATFORM_USES_FSP2_0),y) romstage-y += fsp_memmap.c romstage-y += fsp_reset.c +romstage-y += fsp_romstage.c romstage-y += fsp_validate.c ramstage-y += fsp_graphics.c ramstage-y += fsp_memmap.c diff --git a/src/soc/amd/common/fsp/fsp_romstage.c b/src/soc/amd/common/fsp/fsp_romstage.c new file mode 100644 index 0000000000..26778f1922 --- /dev/null +++ b/src/soc/amd/common/fsp/fsp_romstage.c @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <acpi/acpi.h> +#include <amdblocks/fsp.h> +#include <fsp/api.h> + +void amd_fsp_early_init(void) +{ + fsp_memory_init(acpi_is_wakeup_s3()); +} diff --git a/src/soc/amd/glinda/romstage.c b/src/soc/amd/glinda/romstage.c index 63a6b07dc6..6b84728ad1 100644 --- a/src/soc/amd/glinda/romstage.c +++ b/src/soc/amd/glinda/romstage.c @@ -1,13 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#include <acpi/acpi.h> #include <amdblocks/acpimmio.h> +#include <amdblocks/fsp.h> #include <amdblocks/memmap.h> #include <amdblocks/pmlib.h> #include <amdblocks/post_codes.h> #include <console/console.h> #include <cpu/cpu.h> -#include <fsp/api.h> #include <program_loading.h> #include <romstage_common.h> @@ -18,7 +17,7 @@ void __noreturn romstage_main(void) /* Snapshot chipset state prior to any FSP call */ fill_chipset_state(); - fsp_memory_init(acpi_is_wakeup_s3()); + amd_fsp_early_init(); /* Fixup settings FSP-M should not be changing */ fch_disable_legacy_dma_io(); diff --git a/src/soc/amd/mendocino/romstage.c b/src/soc/amd/mendocino/romstage.c index 83a8bf9750..f1ee595c84 100644 --- a/src/soc/amd/mendocino/romstage.c +++ b/src/soc/amd/mendocino/romstage.c @@ -1,14 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#include <acpi/acpi.h> #include <amdblocks/acpimmio.h> +#include <amdblocks/fsp.h> #include <amdblocks/memmap.h> #include <amdblocks/pmlib.h> #include <amdblocks/post_codes.h> #include <amdblocks/stb.h> #include <console/console.h> #include <cpu/cpu.h> -#include <fsp/api.h> #include <program_loading.h> #include <romstage_common.h> @@ -22,7 +21,7 @@ void __noreturn romstage_main(void) /* Snapshot chipset state prior to any FSP call */ fill_chipset_state(); - fsp_memory_init(acpi_is_wakeup_s3()); + amd_fsp_early_init(); /* Fixup settings FSP-M should not be changing */ fch_disable_legacy_dma_io(); diff --git a/src/soc/amd/phoenix/romstage.c b/src/soc/amd/phoenix/romstage.c index 63a6b07dc6..6b84728ad1 100644 --- a/src/soc/amd/phoenix/romstage.c +++ b/src/soc/amd/phoenix/romstage.c @@ -1,13 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#include <acpi/acpi.h> #include <amdblocks/acpimmio.h> +#include <amdblocks/fsp.h> #include <amdblocks/memmap.h> #include <amdblocks/pmlib.h> #include <amdblocks/post_codes.h> #include <console/console.h> #include <cpu/cpu.h> -#include <fsp/api.h> #include <program_loading.h> #include <romstage_common.h> @@ -18,7 +17,7 @@ void __noreturn romstage_main(void) /* Snapshot chipset state prior to any FSP call */ fill_chipset_state(); - fsp_memory_init(acpi_is_wakeup_s3()); + amd_fsp_early_init(); /* Fixup settings FSP-M should not be changing */ fch_disable_legacy_dma_io(); diff --git a/src/soc/amd/picasso/romstage.c b/src/soc/amd/picasso/romstage.c index c43b249487..5159061b9a 100644 --- a/src/soc/amd/picasso/romstage.c +++ b/src/soc/amd/picasso/romstage.c @@ -1,13 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#include <acpi/acpi.h> +#include <amdblocks/fsp.h> #include <amdblocks/memmap.h> #include <amdblocks/pmlib.h> #include <amdblocks/post_codes.h> #include <commonlib/helpers.h> #include <console/console.h> #include <cpu/cpu.h> -#include <fsp/api.h> #include <program_loading.h> #include <romstage_common.h> #include <types.h> @@ -19,7 +18,7 @@ void __noreturn romstage_main(void) /* Snapshot chipset state prior to any FSP call. */ fill_chipset_state(); - fsp_memory_init(acpi_is_wakeup_s3()); + amd_fsp_early_init(); memmap_stash_early_dram_usage(); -- cgit v1.2.3