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>
This commit is contained in:
Marc Jones 2020-10-31 15:29:14 -06:00 committed by Marc Jones
parent 995a7e25a1
commit 2c707160a9
3 changed files with 9 additions and 1 deletions

View File

@ -69,7 +69,7 @@ MAKE_IIO_DEV(01, 10)
MAKE_IIO_DEV(02, 20) MAKE_IIO_DEV(02, 20)
MAKE_IIO_DEV(03, 28) MAKE_IIO_DEV(03, 28)
#if MAX_SOCKET > 1 #if (CONFIG_MAX_SOCKET > 1)
MAKE_IIO_DEV(06, 40) MAKE_IIO_DEV(06, 40)
MAKE_IIO_DEV(07, 50) MAKE_IIO_DEV(07, 50)
MAKE_IIO_DEV(08, 60) MAKE_IIO_DEV(08, 60)

View File

@ -60,6 +60,10 @@ void uncore_inject_dsdt(const struct device *device)
{ {
struct iiostack_resource stack_info = {0}; struct iiostack_resource stack_info = {0};
/* Only add RTxx entries once. */
if (device->bus->secondary != 0)
return;
get_iiostack_info(&stack_info); get_iiostack_info(&stack_info);
acpigen_write_scope("\\_SB"); acpigen_write_scope("\\_SB");

View File

@ -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); const IIO_UDS *hob = fsp_find_extension_hob_by_guid(uds_guid, &hob_size);
assert(hob != NULL && hob_size != 0); assert(hob != NULL && hob_size != 0);
/* Only add RTxx entries once. */
if (device->bus->secondary != 0)
return;
acpigen_write_scope("\\_SB"); acpigen_write_scope("\\_SB");
for (int socket = 0; socket < hob->PlatformData.numofIIO; ++socket) { for (int socket = 0; socket < hob->PlatformData.numofIIO; ++socket) {
IIO_RESOURCE_INSTANCE iio_resource = IIO_RESOURCE_INSTANCE iio_resource =