summaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2024-01-31 11:38:38 +0100
committerFelix Held <felix-coreboot@felixheld.de>2024-02-09 13:47:00 +0000
commit344ebf1f81db4219ad44b5d578c464b4bd8820a5 (patch)
tree306a71ba491897b70e8aaa42f75b37e348678e03 /src/soc/intel
parentf25d58c9a59aa5ccdc5a8b6afeccc7afa0d9d364 (diff)
acpi/acpi: Pass struct device to acpi_create_srat_gia_pci
Instead of S:B:D:F numbers pass the struct device to acpi_create_srat_gia_pci and let it extract the information needed. This also adds support for PCI multi segment groups. Change-Id: Iafe32e98f0c85f14347695ccaa0225e43fad99e7 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/80258 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-by: Shuo Liu <shuo.liu@intel.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/xeon_sp/uncore_acpi_cxl.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/src/soc/intel/xeon_sp/uncore_acpi_cxl.c b/src/soc/intel/xeon_sp/uncore_acpi_cxl.c
index 5bd13d0211..40a5f12496 100644
--- a/src/soc/intel/xeon_sp/uncore_acpi_cxl.c
+++ b/src/soc/intel/xeon_sp/uncore_acpi_cxl.c
@@ -1,6 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
-#include <device/pci_ops.h>
#include <soc/acpi.h>
#include <soc/numa.h>
#include <soc/util.h>
@@ -13,19 +12,14 @@ unsigned long cxl_fill_srat(unsigned long current)
* In the pds (Proximity Domains structure), Generic Initiator domains
* are after processor domains.
*/
- uint16_t seg = 0;
- uint8_t bus, dev, func;
uint32_t base, size;
for (uint8_t i = soc_get_num_cpus(); i < pds.num_pds; i++) {
- bus = PCI_BDF(pds.pds[i].dev) >> 20;
- dev = (PCI_BDF(pds.pds[i].dev) >> 15) & 0x1f;
- func = (PCI_BDF(pds.pds[i].dev) >> 12) & 0x07;
- printk(BIOS_DEBUG,
- "adding srat GIA ID: %d, seg: 0x%x, bus: 0x%x, dev: 0x%x, func: 0x%x\n",
- i, seg, bus, dev, func);
+ if (!pds.pds[i].dev)
+ continue;
+
+ printk(BIOS_DEBUG, "adding srat GIA ID: %d, dev: %s\n", i, dev_path(pds.pds[i].dev));
/* flags: 1 (enabled) */
- current += acpi_create_srat_gia_pci((acpi_srat_gia_t *)current, i, seg, bus,
- dev, func, 1);
+ current += acpi_create_srat_gia_pci((acpi_srat_gia_t *)current, i, pds.pds[i].dev, 1);
base = pds.pds[i].base << 16;
size = pds.pds[i].size << 16;
printk(BIOS_DEBUG,