[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH] plat/common: PCI bus probes the device identifier
While probing the devices on the pci bus, the device identifier are read from the configuration space. The pci device is identified with * class_id * vendor_id * device_id * subsystem_id * subsystemvendor_id Signed-off-by: Sharan Santhanam <sharan.santhanam@xxxxxxxxx> --- plat/common/pci_bus.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/plat/common/pci_bus.c b/plat/common/pci_bus.c index c653e81..71713c9 100644 --- a/plat/common/pci_bus.c +++ b/plat/common/pci_bus.c @@ -80,6 +80,22 @@ static struct pci_bus_handler ph; #define PCI_DEVICE_SHIFT (11) #define PCI_ENABLE_BIT (1 << 31) +#define PCI_CONF_CLASS_ID (0x08) +#define PCI_CONF_CLASS_ID_SHFT (8) +#define PCI_CONF_CLASS_ID_MASK (0x00FFFFFF) + +#define PCI_CONF_VENDOR_ID (0x00) +#define PCI_CONF_VENDOR_ID_SHFT (0) +#define PCI_CONF_VENDOR_ID_MASK (0x0000FFFF) + +#define PCI_CONF_DEVICE_ID (0x00) +#define PCI_CONF_DEVICE_ID_SHFT (16) +#define PCI_CONF_DEVICE_ID_MASK (0x0000FFFF) + +#define PCI_CONF_SUBSYSVEN_ID (0x2c) +#define PCI_CONF_SUBSYSVEN_ID_SHFT (0) +#define PCI_CONF_SUBSYSVEN_ID_MASK (0xFFFF) + #define PCI_CONF_SUBSYS_ID (0x2c) #define PCI_CONF_SUBSYS_ID_SHFT (16) #define PCI_CONF_SUBSYS_ID_MASK (0xFFFF) @@ -236,14 +252,16 @@ static int pci_probe(void) continue; } - /* TODO: Implement fetch more information from PCI */ - devid.class_id = PCI_CLASS_ANY_ID; - /* TODO: Implement fetch more information from PCI */ - devid.device_id = PCI_ANY_ID; - /* TODO: Implement fetch more information from PCI */ - devid.subsystem_vendor_id = PCI_ANY_ID; + PCI_CONF_READ(uint32_t, &devid.class_id, + config_addr, CLASS_ID); + PCI_CONF_READ(uint16_t, &devid.vendor_id, + config_addr, VENDOR_ID); + PCI_CONF_READ(uint16_t, &devid.device_id, + config_addr, DEVICE_ID); PCI_CONF_READ(uint16_t, &devid.subsystem_device_id, config_addr, SUBSYS_ID); + PCI_CONF_READ(uint16_t, &devid.subsystem_vendor_id, + config_addr, SUBSYSVEN_ID); uk_pr_info("PCI %02x:%02x.%02x (%04x %04x:%04x): ", (int) addr.bus, -- 2.7.4 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |