From 112c2277f51684157f5c46a06b3b038b5b730679 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Fri, 26 Jan 2024 15:33:59 +0100 Subject: [PATCH] soc/amd: move acpi_add_fsp_tables implementation to common FSP code Since the acpi_add_fsp_tables implementation is identical for all SoCs, factor it out and move it to the common AMD FSP code. Also guard the acpi_add_fsp_tables call in soc_acpi_write_tables with if (CONFIG(PLATFORM_USES_FSP2_0)) to properly handle the FSP dependency. Signed-off-by: Felix Held Change-Id: I8917a346f586e77b3b3278c73aed8cf61f3c9e6a Reviewed-on: https://review.coreboot.org/c/coreboot/+/80225 Reviewed-by: Matt DeVillier Tested-by: build bot (Jenkins) --- src/soc/amd/cezanne/Makefile.mk | 1 - src/soc/amd/cezanne/acpi.c | 3 ++- src/soc/amd/cezanne/agesa_acpi.c | 15 --------------- .../amd/common/block/include/amdblocks/acpi.h | 3 --- src/soc/amd/common/fsp/fsp-acpi.c | 14 ++++++++++++-- src/soc/amd/glinda/Makefile.mk | 1 - src/soc/amd/glinda/acpi.c | 3 ++- src/soc/amd/glinda/agesa_acpi.c | 17 ----------------- src/soc/amd/mendocino/Makefile.mk | 1 - src/soc/amd/mendocino/acpi.c | 3 ++- src/soc/amd/mendocino/agesa_acpi.c | 17 ----------------- src/soc/amd/phoenix/Makefile.mk | 1 - src/soc/amd/phoenix/acpi.c | 3 ++- src/soc/amd/phoenix/agesa_acpi.c | 18 ------------------ src/soc/amd/picasso/Makefile.mk | 1 - src/soc/amd/picasso/acpi.c | 3 ++- src/soc/amd/picasso/agesa_acpi.c | 15 --------------- 17 files changed, 22 insertions(+), 97 deletions(-) delete mode 100644 src/soc/amd/cezanne/agesa_acpi.c delete mode 100644 src/soc/amd/glinda/agesa_acpi.c delete mode 100644 src/soc/amd/mendocino/agesa_acpi.c delete mode 100644 src/soc/amd/phoenix/agesa_acpi.c delete mode 100644 src/soc/amd/picasso/agesa_acpi.c diff --git a/src/soc/amd/cezanne/Makefile.mk b/src/soc/amd/cezanne/Makefile.mk index dedf98c4bd..163f777dab 100644 --- a/src/soc/amd/cezanne/Makefile.mk +++ b/src/soc/amd/cezanne/Makefile.mk @@ -19,7 +19,6 @@ bootblock-y += espi_util.c romstage-y += fsp_m_params.c ramstage-y += acpi.c -ramstage-y += agesa_acpi.c ramstage-y += chip.c ramstage-y += cpu.c ramstage-y += fch.c diff --git a/src/soc/amd/cezanne/acpi.c b/src/soc/amd/cezanne/acpi.c index 417d5f9aa4..c99159a866 100644 --- a/src/soc/amd/cezanne/acpi.c +++ b/src/soc/amd/cezanne/acpi.c @@ -63,7 +63,8 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c /* IVRS */ current = acpi_add_ivrs_table(current, rsdp); - current = acpi_add_fsp_tables(current, rsdp); + if (CONFIG(PLATFORM_USES_FSP2_0)) + current = acpi_add_fsp_tables(current, rsdp); return current; } diff --git a/src/soc/amd/cezanne/agesa_acpi.c b/src/soc/amd/cezanne/agesa_acpi.c deleted file mode 100644 index a5057bf59f..0000000000 --- a/src/soc/amd/cezanne/agesa_acpi.c +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include -#include -#include -#include - -unsigned long acpi_add_fsp_tables(unsigned long current, acpi_rsdp_t *rsdp) -{ - /* add ALIB SSDT from HOB */ - current = acpi_align_current(current); - current = add_agesa_fsp_acpi_table(AMD_FSP_ACPI_ALIB_HOB_GUID, "ALIB", rsdp, current); - - return current; -} diff --git a/src/soc/amd/common/block/include/amdblocks/acpi.h b/src/soc/amd/common/block/include/amdblocks/acpi.h index 4db077668c..e2d1c32159 100644 --- a/src/soc/amd/common/block/include/amdblocks/acpi.h +++ b/src/soc/amd/common/block/include/amdblocks/acpi.h @@ -60,9 +60,6 @@ unsigned long acpi_add_fsp_tables(unsigned long current, acpi_rsdp_t *rsdp); unsigned long southbridge_write_acpi_tables(const struct device *device, unsigned long current, struct acpi_rsdp *rsdp); -unsigned long add_agesa_fsp_acpi_table(guid_t guid, const char *name, acpi_rsdp_t *rsdp, - unsigned long current); - void acpi_log_events(const struct chipset_power_state *ps); unsigned long acpi_add_crat_table(unsigned long current, acpi_rsdp_t *rsdp); diff --git a/src/soc/amd/common/fsp/fsp-acpi.c b/src/soc/amd/common/fsp/fsp-acpi.c index 6c65b3edfa..d30456ddf4 100644 --- a/src/soc/amd/common/fsp/fsp-acpi.c +++ b/src/soc/amd/common/fsp/fsp-acpi.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -15,8 +16,8 @@ struct amd_fsp_acpi_hob_info { uint16_t hob_payload[0xffc8]; /* maximum payload size */ } __packed; -unsigned long add_agesa_fsp_acpi_table(guid_t guid, const char *name, acpi_rsdp_t *rsdp, - unsigned long current) +static unsigned long add_agesa_fsp_acpi_table(guid_t guid, const char *name, acpi_rsdp_t *rsdp, + unsigned long current) { const struct amd_fsp_acpi_hob_info *data; void *table = (void *)current; @@ -44,3 +45,12 @@ unsigned long add_agesa_fsp_acpi_table(guid_t guid, const char *name, acpi_rsdp_ return current; } + +unsigned long acpi_add_fsp_tables(unsigned long current, acpi_rsdp_t *rsdp) +{ + /* add ALIB SSDT from HOB */ + current = acpi_align_current(current); + current = add_agesa_fsp_acpi_table(AMD_FSP_ACPI_ALIB_HOB_GUID, "ALIB", rsdp, current); + + return current; +} diff --git a/src/soc/amd/glinda/Makefile.mk b/src/soc/amd/glinda/Makefile.mk index bc217d36d1..4570e07086 100644 --- a/src/soc/amd/glinda/Makefile.mk +++ b/src/soc/amd/glinda/Makefile.mk @@ -24,7 +24,6 @@ verstage-y += espi_util.c romstage-y += fsp_m_params.c ramstage-y += acpi.c -ramstage-y += agesa_acpi.c ramstage-y += chip.c ramstage-y += cpu.c ramstage-y += fch.c diff --git a/src/soc/amd/glinda/acpi.c b/src/soc/amd/glinda/acpi.c index 86e9aec766..8b6031c2b1 100644 --- a/src/soc/amd/glinda/acpi.c +++ b/src/soc/amd/glinda/acpi.c @@ -66,7 +66,8 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c /* IVRS */ current = acpi_add_ivrs_table(current, rsdp); - current = acpi_add_fsp_tables(current, rsdp); + if (CONFIG(PLATFORM_USES_FSP2_0)) + current = acpi_add_fsp_tables(current, rsdp); return current; } diff --git a/src/soc/amd/glinda/agesa_acpi.c b/src/soc/amd/glinda/agesa_acpi.c deleted file mode 100644 index 114fdd8095..0000000000 --- a/src/soc/amd/glinda/agesa_acpi.c +++ /dev/null @@ -1,17 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -/* TODO: Make common? */ - -#include -#include -#include -#include - -unsigned long acpi_add_fsp_tables(unsigned long current, acpi_rsdp_t *rsdp) -{ - /* add ALIB SSDT from HOB */ - current = acpi_align_current(current); - current = add_agesa_fsp_acpi_table(AMD_FSP_ACPI_ALIB_HOB_GUID, "ALIB", rsdp, current); - - return current; -} diff --git a/src/soc/amd/mendocino/Makefile.mk b/src/soc/amd/mendocino/Makefile.mk index 5b9216e638..cc44358158 100644 --- a/src/soc/amd/mendocino/Makefile.mk +++ b/src/soc/amd/mendocino/Makefile.mk @@ -21,7 +21,6 @@ verstage-y += espi_util.c romstage-y += fsp_m_params.c ramstage-y += acpi.c -ramstage-y += agesa_acpi.c ramstage-y += chip.c ramstage-y += cpu.c ramstage-y += fch.c diff --git a/src/soc/amd/mendocino/acpi.c b/src/soc/amd/mendocino/acpi.c index 328a2f9b4d..898e75eef5 100644 --- a/src/soc/amd/mendocino/acpi.c +++ b/src/soc/amd/mendocino/acpi.c @@ -65,7 +65,8 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c /* IVRS */ current = acpi_add_ivrs_table(current, rsdp); - current = acpi_add_fsp_tables(current, rsdp); + if (CONFIG(PLATFORM_USES_FSP2_0)) + current = acpi_add_fsp_tables(current, rsdp); return current; } diff --git a/src/soc/amd/mendocino/agesa_acpi.c b/src/soc/amd/mendocino/agesa_acpi.c deleted file mode 100644 index da0f9a1e1a..0000000000 --- a/src/soc/amd/mendocino/agesa_acpi.c +++ /dev/null @@ -1,17 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -/* TODO: Check if this is still correct */ - -#include -#include -#include -#include - -unsigned long acpi_add_fsp_tables(unsigned long current, acpi_rsdp_t *rsdp) -{ - /* add ALIB SSDT from HOB */ - current = acpi_align_current(current); - current = add_agesa_fsp_acpi_table(AMD_FSP_ACPI_ALIB_HOB_GUID, "ALIB", rsdp, current); - - return current; -} diff --git a/src/soc/amd/phoenix/Makefile.mk b/src/soc/amd/phoenix/Makefile.mk index 82ce54d91e..26e91028f6 100644 --- a/src/soc/amd/phoenix/Makefile.mk +++ b/src/soc/amd/phoenix/Makefile.mk @@ -25,7 +25,6 @@ romstage-$(CONFIG_SOC_AMD_PHOENIX_FSP) += fsp_m_params.c romstage-y += soc_util.c ramstage-y += acpi.c -ramstage-y += agesa_acpi.c ramstage-y += chip.c ramstage-y += cpu.c ramstage-y += fch.c diff --git a/src/soc/amd/phoenix/acpi.c b/src/soc/amd/phoenix/acpi.c index 663a322ff0..a8be10e986 100644 --- a/src/soc/amd/phoenix/acpi.c +++ b/src/soc/amd/phoenix/acpi.c @@ -66,7 +66,8 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c /* IVRS */ current = acpi_add_ivrs_table(current, rsdp); - current = acpi_add_fsp_tables(current, rsdp); + if (CONFIG(PLATFORM_USES_FSP2_0)) + current = acpi_add_fsp_tables(current, rsdp); return current; } diff --git a/src/soc/amd/phoenix/agesa_acpi.c b/src/soc/amd/phoenix/agesa_acpi.c deleted file mode 100644 index 67a112e350..0000000000 --- a/src/soc/amd/phoenix/agesa_acpi.c +++ /dev/null @@ -1,18 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -/* TODO: Make common? */ - -#include -#include -#include -#include -#include - -unsigned long acpi_add_fsp_tables(unsigned long current, acpi_rsdp_t *rsdp) -{ - /* add ALIB SSDT from HOB */ - current = acpi_align_current(current); - current = add_agesa_fsp_acpi_table(AMD_FSP_ACPI_ALIB_HOB_GUID, "ALIB", rsdp, current); - - return current; -} diff --git a/src/soc/amd/picasso/Makefile.mk b/src/soc/amd/picasso/Makefile.mk index 52f1ab0911..94d7f7bb73 100644 --- a/src/soc/amd/picasso/Makefile.mk +++ b/src/soc/amd/picasso/Makefile.mk @@ -20,7 +20,6 @@ romstage-y += fsp_m_params.c ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi.c ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi_crat.c -ramstage-$(CONFIG_HAVE_ACPI_TABLES) += agesa_acpi.c ramstage-y += chip.c ramstage-y += cpu.c ramstage-y += fch.c diff --git a/src/soc/amd/picasso/acpi.c b/src/soc/amd/picasso/acpi.c index 94721073cf..b95db5de94 100644 --- a/src/soc/amd/picasso/acpi.c +++ b/src/soc/amd/picasso/acpi.c @@ -70,7 +70,8 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c /* Add SRAT, MSCT, SLIT if needed in the future */ - current = acpi_add_fsp_tables(current, rsdp); + if (CONFIG(PLATFORM_USES_FSP2_0)) + current = acpi_add_fsp_tables(current, rsdp); return current; } diff --git a/src/soc/amd/picasso/agesa_acpi.c b/src/soc/amd/picasso/agesa_acpi.c deleted file mode 100644 index a5057bf59f..0000000000 --- a/src/soc/amd/picasso/agesa_acpi.c +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include -#include -#include -#include - -unsigned long acpi_add_fsp_tables(unsigned long current, acpi_rsdp_t *rsdp) -{ - /* add ALIB SSDT from HOB */ - current = acpi_align_current(current); - current = add_agesa_fsp_acpi_table(AMD_FSP_ACPI_ALIB_HOB_GUID, "ALIB", rsdp, current); - - return current; -}