acpi: add SRAT Generic Initiator Affinity structure
Generic Initiator Affinity structure is introdcued in ACPI spec 6.3. This structure is used to define NUMA affinity domain which is established by generic initiator (such as by CXL device). Signed-off-by: Jonathan Zhang <jonzhang@fb.com> Change-Id: Ic6ef01c59e02f30dc290f27e741027e16f5d8359 Reviewed-on: https://review.coreboot.org/c/coreboot/+/52734 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lance Zhao
This commit is contained in:
committed by
Werner Zeh
parent
2de78e25a3
commit
3164b645ab
@@ -508,6 +508,23 @@ int acpi_create_srat_mem(acpi_srat_mem_t *mem, u8 node, u32 basek, u32 sizek,
|
||||
return mem->length;
|
||||
}
|
||||
|
||||
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 = ACPI_SRAT_STRUCTURE_GIA;
|
||||
gia->length = sizeof(acpi_srat_gia_t);
|
||||
gia->proximity_domain = proximity_domain;
|
||||
gia->dev_handle_type = ACPI_SRAT_GIA_DEV_HANDLE_PCI;
|
||||
/* First two bytes has segment number */
|
||||
memcpy(gia->dev_handle, &seg, 2);
|
||||
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] = PCI_SLOT(dev) | PCI_FUNC(func);
|
||||
gia->flags = flags;
|
||||
|
||||
return gia->length;
|
||||
}
|
||||
|
||||
/* http://www.microsoft.com/whdc/system/sysinternals/sratdwn.mspx */
|
||||
void acpi_create_srat(acpi_srat_t *srat,
|
||||
unsigned long (*acpi_fill_srat)(unsigned long current))
|
||||
|
Reference in New Issue
Block a user