Jonathan Zhang has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/53931 )
Change subject: GIA ......................................................................
GIA
Change-Id: Icb5c1447d1f92fbbeb3f77db4f3de8172fe40dfa --- M src/acpi/acpi.c M src/include/acpi/acpi.h 2 files changed, 14 insertions(+), 6 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/31/53931/1
diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c index cdf49d4..0840b2c 100644 --- a/src/acpi/acpi.c +++ b/src/acpi/acpi.c @@ -508,17 +508,18 @@ return mem->length; }
-int acpi_create_srat_git_pci(acpi_srat_gia_t *gia, u32 proximity_domain, - u16 seg, u8 bus, u8 dev, u8 func, u32 flags); +int acpi_create_srat_gia_pci(acpi_srat_gia_t *gia, u32 proximity_domain, + u16 seg, u8 bus, u8 dev, u8 func, u32 flags) { - gia->type = 5; /* Generic Initiator Affinity structure */ + gia->type = ACPI_SRAT_STRUCTURE_GIA; gia->length = sizeof(acpi_srat_gia_t); gia->proximity_domain = proximity_domain; - gia->dev_handle_type = 1; /* PCIe device handle */ - memcpy(gia->devhandle, seg, sizeof(seg)); /* First two bytes has segment number */ + gia->dev_handle_type = ACPI_SRAT_GIA_DEV_HANDLE_PCI; + /* First two bytes has segment number */ + memcpy(gia->dev_handle, &seg, sizeof(seg)); gia->dev_handle[2] = bus; /* Byte 2 has bus number */ /* Byte 3 has bits 7:3 for dev, bits 2:0 for func */ - gia->dev_handle[3] = (((dev) & 0x1F) << 3) | ((func) & 0x07); + gia->dev_handle[3] = PCI_SLOT(dev) | PCI_FUNC(func); gia->flags = flags;
return gia->length; diff --git a/src/include/acpi/acpi.h b/src/include/acpi/acpi.h index af0adad..d6b0136 100644 --- a/src/include/acpi/acpi.h +++ b/src/include/acpi/acpi.h @@ -276,6 +276,10 @@ /* Followed by static resource allocation structure[n] */ } __packed acpi_srat_t;
+#define ACPI_SRAT_STRUCTURE_LAPIC 0 +#define ACPI_SRAT_STRUCTURE_MEM 1 +#define ACPI_SRAT_STRUCTURE_GIA 5 + /* SRAT: Processor Local APIC/SAPIC Affinity Structure */ typedef struct acpi_srat_lapic { u8 type; /* Type (0) */ @@ -317,6 +321,9 @@ u32 resv1; } __packed acpi_srat_gia_t;
+#define ACPI_SRAT_GIA_DEV_HANDLE_ACPI 0 +#define ACPI_SRAT_GIA_DEV_HANDLE_PCI 1 + /* SLIT (System Locality Distance Information Table) */ typedef struct acpi_slit { acpi_header_t header;