summaryrefslogtreecommitdiff
path: root/src/soc/amd
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2024-01-26 15:33:59 +0100
committerFelix Held <felix-coreboot@felixheld.de>2024-01-27 16:40:34 +0000
commit112c2277f51684157f5c46a06b3b038b5b730679 (patch)
tree4ff3ced247ed5e7342f34c00b2314ee22d55bc40 /src/soc/amd
parent26577d2ecbb8c01635b959d296f70eb251743046 (diff)
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 <felix-coreboot@felixheld.de> Change-Id: I8917a346f586e77b3b3278c73aed8cf61f3c9e6a Reviewed-on: https://review.coreboot.org/c/coreboot/+/80225 Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/amd')
-rw-r--r--src/soc/amd/cezanne/Makefile.mk1
-rw-r--r--src/soc/amd/cezanne/acpi.c3
-rw-r--r--src/soc/amd/cezanne/agesa_acpi.c15
-rw-r--r--src/soc/amd/common/block/include/amdblocks/acpi.h3
-rw-r--r--src/soc/amd/common/fsp/fsp-acpi.c14
-rw-r--r--src/soc/amd/glinda/Makefile.mk1
-rw-r--r--src/soc/amd/glinda/acpi.c3
-rw-r--r--src/soc/amd/glinda/agesa_acpi.c17
-rw-r--r--src/soc/amd/mendocino/Makefile.mk1
-rw-r--r--src/soc/amd/mendocino/acpi.c3
-rw-r--r--src/soc/amd/mendocino/agesa_acpi.c17
-rw-r--r--src/soc/amd/phoenix/Makefile.mk1
-rw-r--r--src/soc/amd/phoenix/acpi.c3
-rw-r--r--src/soc/amd/phoenix/agesa_acpi.c18
-rw-r--r--src/soc/amd/picasso/Makefile.mk1
-rw-r--r--src/soc/amd/picasso/acpi.c3
-rw-r--r--src/soc/amd/picasso/agesa_acpi.c15
17 files changed, 22 insertions, 97 deletions
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 <acpi/acpi.h>
-#include <amdblocks/acpi.h>
-#include <FspGuids.h>
-#include <types.h>
-
-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 <amdblocks/acpi.h>
#include <console/console.h>
#include <fsp/util.h>
+#include <FspGuids.h>
#include <string.h>
#include <types.h>
@@ -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 <acpi/acpi.h>
-#include <amdblocks/acpi.h>
-#include <FspGuids.h>
-#include <types.h>
-
-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 <acpi/acpi.h>
-#include <amdblocks/acpi.h>
-#include <FspGuids.h>
-#include <types.h>
-
-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 <acpi/acpi.h>
-#include <amdblocks/acpi.h>
-#include <commonlib/bsd/helpers.h>
-#include <FspGuids.h>
-#include <types.h>
-
-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 <acpi/acpi.h>
-#include <amdblocks/acpi.h>
-#include <FspGuids.h>
-#include <types.h>
-
-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;
-}