pci: add domain identifier - Add identifier for PCI domain. - The field is declared as "int"; refer Linux source: include/asm-x86_64/pci.h - Legacy domain field used to be 16-bits. Signed-off-by: Aditya Basu <mitthu@google.com> Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
diff --git a/kern/arch/x86/pci.c b/kern/arch/x86/pci.c index ed90424..600cdab 100644 --- a/kern/arch/x86/pci.c +++ b/kern/arch/x86/pci.c
@@ -202,7 +202,7 @@ { physaddr_t paddr; - paddr = acpi_pci_get_mmio_cfg_addr(0 /* segment for legacy PCI enum*/, + paddr = acpi_pci_get_mmio_cfg_addr(pcidev->domain, pcidev->bus, pcidev->dev, pcidev->func); if (!paddr) @@ -243,6 +243,9 @@ /* we don't need to lock it til we post the * pcidev to the list*/ spinlock_init_irqsave(&pcidev->lock); + /* we only discover domain 0 during legacy + * PCI enumeration */ + pcidev->domain = 0; pcidev->bus = i; pcidev->dev = j; pcidev->func = k;
diff --git a/kern/arch/x86/pci.h b/kern/arch/x86/pci.h index 55bfb93..9c2ab71 100644 --- a/kern/arch/x86/pci.h +++ b/kern/arch/x86/pci.h
@@ -175,6 +175,7 @@ void *dev_data; /* device private pointer */ struct device device; bool in_use; /* prevent double discovery */ + int domain; /* legacy size was 16-bits */ uint8_t bus; uint8_t dev; uint8_t func;