summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Jones <marcjones@sysproconsulting.com>2020-10-31 15:29:14 -0600
committerMarc Jones <marc@marcjonesconsulting.com>2020-11-03 17:20:23 +0000
commit2c707160a92ebb36577b886db6dc9a5ac8770163 (patch)
tree17d1d25e6f1a81afdda7302985ab5f7085b149c6
parent995a7e25a1b84f01a07dacca043ec8cd17a5efd3 (diff)
soc/intel/xeon_sp/acpi: Fix uncore dsdt for multiple cpus
Fix the asl to use CONFIG_MAX_CPUS to create entries for multiple cpu uncores. Don't add the RTxx resource entries multiple times. The function is called for each CPUs. Change-Id: Ia4eb9716ae4bd72fb4eb98649105be629623cbef Signed-off-by: Marc Jones <marcjones@sysproconsulting.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/47060 Reviewed-by: Jay Talbott <JayTalbott@sysproconsulting.com> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/soc/intel/xeon_sp/acpi/iiostack.asl2
-rw-r--r--src/soc/intel/xeon_sp/cpx/soc_acpi.c4
-rw-r--r--src/soc/intel/xeon_sp/skx/soc_acpi.c4
3 files changed, 9 insertions, 1 deletions
diff --git a/src/soc/intel/xeon_sp/acpi/iiostack.asl b/src/soc/intel/xeon_sp/acpi/iiostack.asl
index dca5569559..4b2b65bbc5 100644
--- a/src/soc/intel/xeon_sp/acpi/iiostack.asl
+++ b/src/soc/intel/xeon_sp/acpi/iiostack.asl
@@ -69,7 +69,7 @@ MAKE_IIO_DEV(01, 10)
MAKE_IIO_DEV(02, 20)
MAKE_IIO_DEV(03, 28)
-#if MAX_SOCKET > 1
+#if (CONFIG_MAX_SOCKET > 1)
MAKE_IIO_DEV(06, 40)
MAKE_IIO_DEV(07, 50)
MAKE_IIO_DEV(08, 60)
diff --git a/src/soc/intel/xeon_sp/cpx/soc_acpi.c b/src/soc/intel/xeon_sp/cpx/soc_acpi.c
index d60684bccb..c35c2482f4 100644
--- a/src/soc/intel/xeon_sp/cpx/soc_acpi.c
+++ b/src/soc/intel/xeon_sp/cpx/soc_acpi.c
@@ -60,6 +60,10 @@ void uncore_inject_dsdt(const struct device *device)
{
struct iiostack_resource stack_info = {0};
+ /* Only add RTxx entries once. */
+ if (device->bus->secondary != 0)
+ return;
+
get_iiostack_info(&stack_info);
acpigen_write_scope("\\_SB");
diff --git a/src/soc/intel/xeon_sp/skx/soc_acpi.c b/src/soc/intel/xeon_sp/skx/soc_acpi.c
index df2550c54a..b3926193da 100644
--- a/src/soc/intel/xeon_sp/skx/soc_acpi.c
+++ b/src/soc/intel/xeon_sp/skx/soc_acpi.c
@@ -104,6 +104,10 @@ void uncore_inject_dsdt(const struct device *device)
const IIO_UDS *hob = fsp_find_extension_hob_by_guid(uds_guid, &hob_size);
assert(hob != NULL && hob_size != 0);
+ /* Only add RTxx entries once. */
+ if (device->bus->secondary != 0)
+ return;
+
acpigen_write_scope("\\_SB");
for (int socket = 0; socket < hob->PlatformData.numofIIO; ++socket) {
IIO_RESOURCE_INSTANCE iio_resource =