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>
This commit is contained in:
parent
26577d2ecb
commit
112c2277f5
|
@ -19,7 +19,6 @@ bootblock-y += espi_util.c
|
||||||
romstage-y += fsp_m_params.c
|
romstage-y += fsp_m_params.c
|
||||||
|
|
||||||
ramstage-y += acpi.c
|
ramstage-y += acpi.c
|
||||||
ramstage-y += agesa_acpi.c
|
|
||||||
ramstage-y += chip.c
|
ramstage-y += chip.c
|
||||||
ramstage-y += cpu.c
|
ramstage-y += cpu.c
|
||||||
ramstage-y += fch.c
|
ramstage-y += fch.c
|
||||||
|
|
|
@ -63,6 +63,7 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c
|
||||||
/* IVRS */
|
/* IVRS */
|
||||||
current = acpi_add_ivrs_table(current, rsdp);
|
current = acpi_add_ivrs_table(current, rsdp);
|
||||||
|
|
||||||
|
if (CONFIG(PLATFORM_USES_FSP2_0))
|
||||||
current = acpi_add_fsp_tables(current, rsdp);
|
current = acpi_add_fsp_tables(current, rsdp);
|
||||||
|
|
||||||
return current;
|
return current;
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -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,
|
unsigned long southbridge_write_acpi_tables(const struct device *device, unsigned long current,
|
||||||
struct acpi_rsdp *rsdp);
|
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);
|
void acpi_log_events(const struct chipset_power_state *ps);
|
||||||
|
|
||||||
unsigned long acpi_add_crat_table(unsigned long current, acpi_rsdp_t *rsdp);
|
unsigned long acpi_add_crat_table(unsigned long current, acpi_rsdp_t *rsdp);
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include <amdblocks/acpi.h>
|
#include <amdblocks/acpi.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <fsp/util.h>
|
#include <fsp/util.h>
|
||||||
|
#include <FspGuids.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <types.h>
|
#include <types.h>
|
||||||
|
|
||||||
|
@ -15,7 +16,7 @@ struct amd_fsp_acpi_hob_info {
|
||||||
uint16_t hob_payload[0xffc8]; /* maximum payload size */
|
uint16_t hob_payload[0xffc8]; /* maximum payload size */
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
unsigned long add_agesa_fsp_acpi_table(guid_t guid, const char *name, acpi_rsdp_t *rsdp,
|
static unsigned long add_agesa_fsp_acpi_table(guid_t guid, const char *name, acpi_rsdp_t *rsdp,
|
||||||
unsigned long current)
|
unsigned long current)
|
||||||
{
|
{
|
||||||
const struct amd_fsp_acpi_hob_info *data;
|
const struct amd_fsp_acpi_hob_info *data;
|
||||||
|
@ -44,3 +45,12 @@ unsigned long add_agesa_fsp_acpi_table(guid_t guid, const char *name, acpi_rsdp_
|
||||||
|
|
||||||
return current;
|
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;
|
||||||
|
}
|
||||||
|
|
|
@ -24,7 +24,6 @@ verstage-y += espi_util.c
|
||||||
romstage-y += fsp_m_params.c
|
romstage-y += fsp_m_params.c
|
||||||
|
|
||||||
ramstage-y += acpi.c
|
ramstage-y += acpi.c
|
||||||
ramstage-y += agesa_acpi.c
|
|
||||||
ramstage-y += chip.c
|
ramstage-y += chip.c
|
||||||
ramstage-y += cpu.c
|
ramstage-y += cpu.c
|
||||||
ramstage-y += fch.c
|
ramstage-y += fch.c
|
||||||
|
|
|
@ -66,6 +66,7 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c
|
||||||
/* IVRS */
|
/* IVRS */
|
||||||
current = acpi_add_ivrs_table(current, rsdp);
|
current = acpi_add_ivrs_table(current, rsdp);
|
||||||
|
|
||||||
|
if (CONFIG(PLATFORM_USES_FSP2_0))
|
||||||
current = acpi_add_fsp_tables(current, rsdp);
|
current = acpi_add_fsp_tables(current, rsdp);
|
||||||
|
|
||||||
return current;
|
return current;
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -21,7 +21,6 @@ verstage-y += espi_util.c
|
||||||
romstage-y += fsp_m_params.c
|
romstage-y += fsp_m_params.c
|
||||||
|
|
||||||
ramstage-y += acpi.c
|
ramstage-y += acpi.c
|
||||||
ramstage-y += agesa_acpi.c
|
|
||||||
ramstage-y += chip.c
|
ramstage-y += chip.c
|
||||||
ramstage-y += cpu.c
|
ramstage-y += cpu.c
|
||||||
ramstage-y += fch.c
|
ramstage-y += fch.c
|
||||||
|
|
|
@ -65,6 +65,7 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c
|
||||||
/* IVRS */
|
/* IVRS */
|
||||||
current = acpi_add_ivrs_table(current, rsdp);
|
current = acpi_add_ivrs_table(current, rsdp);
|
||||||
|
|
||||||
|
if (CONFIG(PLATFORM_USES_FSP2_0))
|
||||||
current = acpi_add_fsp_tables(current, rsdp);
|
current = acpi_add_fsp_tables(current, rsdp);
|
||||||
|
|
||||||
return current;
|
return current;
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -25,7 +25,6 @@ romstage-$(CONFIG_SOC_AMD_PHOENIX_FSP) += fsp_m_params.c
|
||||||
romstage-y += soc_util.c
|
romstage-y += soc_util.c
|
||||||
|
|
||||||
ramstage-y += acpi.c
|
ramstage-y += acpi.c
|
||||||
ramstage-y += agesa_acpi.c
|
|
||||||
ramstage-y += chip.c
|
ramstage-y += chip.c
|
||||||
ramstage-y += cpu.c
|
ramstage-y += cpu.c
|
||||||
ramstage-y += fch.c
|
ramstage-y += fch.c
|
||||||
|
|
|
@ -66,6 +66,7 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c
|
||||||
/* IVRS */
|
/* IVRS */
|
||||||
current = acpi_add_ivrs_table(current, rsdp);
|
current = acpi_add_ivrs_table(current, rsdp);
|
||||||
|
|
||||||
|
if (CONFIG(PLATFORM_USES_FSP2_0))
|
||||||
current = acpi_add_fsp_tables(current, rsdp);
|
current = acpi_add_fsp_tables(current, rsdp);
|
||||||
|
|
||||||
return current;
|
return current;
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -20,7 +20,6 @@ romstage-y += fsp_m_params.c
|
||||||
|
|
||||||
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi.c
|
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi.c
|
||||||
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi_crat.c
|
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += acpi_crat.c
|
||||||
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += agesa_acpi.c
|
|
||||||
ramstage-y += chip.c
|
ramstage-y += chip.c
|
||||||
ramstage-y += cpu.c
|
ramstage-y += cpu.c
|
||||||
ramstage-y += fch.c
|
ramstage-y += fch.c
|
||||||
|
|
|
@ -70,6 +70,7 @@ unsigned long soc_acpi_write_tables(const struct device *device, unsigned long c
|
||||||
|
|
||||||
/* Add SRAT, MSCT, SLIT if needed in the future */
|
/* Add SRAT, MSCT, SLIT if needed in the future */
|
||||||
|
|
||||||
|
if (CONFIG(PLATFORM_USES_FSP2_0))
|
||||||
current = acpi_add_fsp_tables(current, rsdp);
|
current = acpi_add_fsp_tables(current, rsdp);
|
||||||
|
|
||||||
return current;
|
return current;
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
Loading…
Reference in New Issue