Lines Matching refs:domain

48 	uint8 domain;
51 if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK)
54 if (gPCI->ReadConfig(domain, bus, device, function, offset, size,
67 uint8 domain;
68 if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK)
71 gPCI->WriteConfig(domain, bus, device, function, offset, size, value);
82 uint8 domain;
84 if (gPCI->LookupRange(B_IO_MEMORY, childAdr, domain, range) >= B_OK)
97 uint8 domain;
98 if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK)
101 return gPCI->FindCapability(domain, bus, device, function, capID, offset);
110 uint8 domain;
111 if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK)
114 return gPCI->FindExtendedCapability(domain, bus, device, function, capID,
125 uint8 domain;
135 if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK)
139 // domain, bus, device, function, driverName, nodeCookie));
146 {B_PCI_DEVICE_DOMAIN, B_UINT8_TYPE, {.ui8 = domain}},
169 device_node *root_pci_node = gPCI->_GetDomainData(domain)->root_node;
211 uint8 domain;
215 if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK)
219 // domain, bus, device, function, driverName, nodeCookie));
226 {B_PCI_DEVICE_DOMAIN, B_UINT8_TYPE, {.ui8 = domain}},
249 pci = gPCI->_GetDomainData(domain)->root_node;
294 uint8 domain;
295 if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK)
298 return gPCI->UpdateInterruptLine(domain, bus, device, function,
307 uint8 domain;
308 if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK)
311 return gPCI->GetPowerstate(domain, bus, device, function, state);
319 uint8 domain;
320 if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK)
323 return gPCI->SetPowerstate(domain, bus, device, function, newState);
329 __pci_resolve_virtual_bus(uint8 virtualBus, uint8 *domain, uint8 *bus)
331 if (gPCI->ResolveVirtualBus(virtualBus, domain, bus) < B_OK)
460 for (uint32 domain = 0; ; domain++) {
461 domain_data *data = gPCI->_GetDomainData(domain);
554 _EnumerateBus(bus->domain, 0);
558 _FixupDevices(bus->domain, 0);
574 PCI::_CreateVirtualBus(uint8 domain, uint8 bus, uint8 *virtualBus)
579 if (domain)
580 panic("PCI::CreateVirtualBus domain != 0");
589 uint16 value = domain << 8 | bus;
595 FLOW("PCI::CreateVirtualBus: domain %d, bus %d already in map => "
596 "virtualBus %d\n", domain, bus, *virtualBus);
603 FLOW("PCI::CreateVirtualBus: domain %d, bus %d => virtualBus %d\n", domain,
613 PCI::ResolveVirtualBus(uint8 virtualBus, uint8 *domain, uint8 *bus)
619 *domain = 0;
628 *domain = value >> 8;
643 uint8 domain = fDomainCount;
644 domain_data& data = fDomainData[domain];
650 data.bus = new(std::nothrow) PCIBus {.domain = domain};
674 uint8 &domain, pci_resource_range &range, uint8 **mappedAdr)
686 domain = curDomain;
740 PCI::_GetDomainData(uint8 domain)
742 if (domain >= fDomainCount)
745 return &fDomainData[domain];
750 PCI::_NumFunctions(uint8 domain, uint8 bus, uint8 device)
752 uint8 type = ReadConfig(domain, bus, device,
763 for (uint32 domain = 0; domain < fDomainCount; domain++) {
764 if (_GetNthInfo(fDomainData[domain].bus, &currentIndex, index, outInfo) >= B_OK)
795 PCI::_EnumerateBus(uint8 domain, uint8 bus, uint8 *subordinateBus)
797 TRACE(("PCI: EnumerateBus: domain %u, bus %u\n", domain, bus));
799 int maxBusDevices = _GetDomainData(domain)->max_bus_devices;
803 uint16 vendor_id = ReadConfig(domain, bus, dev, 0, PCI_vendor_id, 2);
807 int numFunctions = _NumFunctions(domain, bus, dev);
809 uint16 device_id = ReadConfig(domain, bus, dev, function,
814 uint8 baseClass = ReadConfig(domain, bus, dev, function,
816 uint8 subClass = ReadConfig(domain, bus, dev, function,
822 uint8 headerType = ReadConfig(domain, bus, dev, function,
827 TRACE(("PCI: found PCI-PCI bridge: domain %u, bus %u, dev %u, func %u\n",
828 domain, bus, dev, function));
832 ReadConfig(domain, bus, dev, function, PCI_command, 2),
833 ReadConfig(domain, bus, dev, function, PCI_primary_bus, 1),
834 ReadConfig(domain, bus, dev, function, PCI_secondary_bus, 1),
835 ReadConfig(domain, bus, dev, function, PCI_subordinate_bus, 1)));
839 pcicmd = ReadConfig(domain, bus, dev, function, PCI_command, 2);
842 WriteConfig(domain, bus, dev, function, PCI_command, 2, pcicmd);
845 WriteConfig(domain, bus, dev, function, PCI_primary_bus, 1, 0);
846 WriteConfig(domain, bus, dev, function, PCI_secondary_bus, 1, 0);
847 WriteConfig(domain, bus, dev, function, PCI_subordinate_bus, 1, 0);
852 ReadConfig(domain, bus, dev, function, PCI_command, 2),
853 ReadConfig(domain, bus, dev, function, PCI_primary_bus, 1),
854 ReadConfig(domain, bus, dev, function, PCI_secondary_bus, 1),
855 ReadConfig(domain, bus, dev, function, PCI_subordinate_bus, 1)));
863 uint16 vendor_id = ReadConfig(domain, bus, dev, 0, PCI_vendor_id, 2);
867 int numFunctions = _NumFunctions(domain, bus, dev);
869 uint16 deviceID = ReadConfig(domain, bus, dev, function,
874 uint8 baseClass = ReadConfig(domain, bus, dev, function,
876 uint8 subClass = ReadConfig(domain, bus, dev, function,
882 uint8 headerType = ReadConfig(domain, bus, dev, function,
887 TRACE(("PCI: configuring PCI-PCI bridge: domain %u, bus %u, dev %u, func %u\n",
888 domain, bus, dev, function));
891 WriteConfig(domain, bus, dev, function, PCI_primary_bus, 1, bus);
892 WriteConfig(domain, bus, dev, function, PCI_secondary_bus, 1,
894 WriteConfig(domain, bus, dev, function, PCI_subordinate_bus, 1, 255);
898 pcicmd = ReadConfig(domain, bus, dev, function, PCI_command, 2);
900 WriteConfig(domain, bus, dev, function, PCI_command, 2, pcicmd);
905 ReadConfig(domain, bus, dev, function, PCI_command, 2),
906 ReadConfig(domain, bus, dev, function, PCI_primary_bus, 1),
907 ReadConfig(domain, bus, dev, function, PCI_secondary_bus, 1),
908 ReadConfig(domain, bus, dev, function, PCI_subordinate_bus, 1)));
911 _EnumerateBus(domain, lastUsedBusNumber + 1, &lastUsedBusNumber);
914 WriteConfig(domain, bus, dev, function, PCI_subordinate_bus, 1, lastUsedBusNumber);
919 ReadConfig(domain, bus, dev, function, PCI_command, 2),
920 ReadConfig(domain, bus, dev, function, PCI_primary_bus, 1),
921 ReadConfig(domain, bus, dev, function, PCI_secondary_bus, 1),
922 ReadConfig(domain, bus, dev, function, PCI_subordinate_bus, 1)));
928 TRACE(("PCI: EnumerateBus done: domain %u, bus %u, last used bus number %u\n", domain, bus, lastUsedBusNumber));
933 PCI::_FixupDevices(uint8 domain, uint8 bus)
935 FLOW("PCI: FixupDevices domain %u, bus %u\n", domain, bus);
937 int maxBusDevices = _GetDomainData(domain)->max_bus_devices;
949 uint16 vendorId = ReadConfig(domain, bus, dev, 0, PCI_vendor_id, 2);
953 int numFunctions = _NumFunctions(domain, bus, dev);
955 uint16 deviceId = ReadConfig(domain, bus, dev, function,
960 pci_fixup_device(this, domain, bus, dev, function);
962 uint8 baseClass = ReadConfig(domain, bus, dev, function,
966 uint8 subClass = ReadConfig(domain, bus, dev, function,
973 uint8 headerType = ReadConfig(domain, bus, dev, function,
978 domain, bus, dev, function, headerType);
983 int busBehindBridge = ReadConfig(domain, bus, dev, function,
988 _FixupDevices(domain, busBehindBridge);
1003 uint16 bridgeControlOld = ReadConfig(dev->domain, dev->bus,
1016 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1018 bridgeControlNew = ReadConfig(dev->domain, dev->bus, dev->device,
1021 " control from 0x%04x to 0x%04x\n", dev->domain, dev->bus,
1037 uint16 status = ReadConfig(dev->domain, dev->bus, dev->device,
1039 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1042 kprintf("domain %u, bus %u, dev %2u, func %u, PCI device status "
1043 "0x%04x\n", dev->domain, dev->bus, dev->device, dev->function,
1062 uint16 secondaryStatus = ReadConfig(dev->domain, dev->bus,
1064 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1067 kprintf("domain %u, bus %u, dev %2u, func %u, PCI bridge "
1068 "secondary status 0x%04x\n", dev->domain, dev->bus,
1085 uint16 bridgeControl = ReadConfig(dev->domain, dev->bus,
1087 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1090 kprintf("domain %u, bus %u, dev %2u, func %u, PCI bridge "
1091 "control 0x%04x\n", dev->domain, dev->bus, dev->device,
1108 FLOW("PCI: DiscoverBus, domain %u, bus %u\n", bus->domain, bus->bus);
1110 int maxBusDevices = _GetDomainData(bus->domain)->max_bus_devices;
1122 uint16 vendorID = ReadConfig(bus->domain, bus->bus, dev, 0,
1127 int numFunctions = _NumFunctions(bus->domain, bus->bus, dev);
1139 FLOW("PCI: DiscoverDevice, domain %u, bus %u, dev %u, func %u\n", bus->domain, bus->bus, dev, function);
1141 uint16 deviceID = ReadConfig(bus->domain, bus->bus, dev, function,
1148 uint8 baseClass = ReadConfig(bus->domain, bus->bus, dev, function,
1150 uint8 subClass = ReadConfig(bus->domain, bus->bus, dev, function,
1152 uint8 headerType = ReadConfig(bus->domain, bus->bus, dev, function,
1156 uint8 secondaryBus = ReadConfig(bus->domain, bus->bus, dev, function,
1158 PCIBus *newBus = _CreateBus(newDev, bus->domain, secondaryBus);
1165 PCI::_CreateBus(PCIDev *parent, uint8 domain, uint8 bus)
1173 newBus->domain = domain;
1186 FLOW("PCI: CreateDevice, domain %u, bus %u, dev %u, func %u:\n", parent->domain,
1196 newDev->domain = parent->domain;
1241 uint64 pciAddress = ReadConfig(dev->domain, dev->bus, dev->device,
1243 WriteConfig(dev->domain, dev->bus, dev->device, dev->function, offset, 4,
1245 uint64 size = ReadConfig(dev->domain, dev->bus, dev->device, dev->function,
1247 WriteConfig(dev->domain, dev->bus, dev->device, dev->function, offset, 4,
1258 uint64 highPCIAddress = ReadConfig(dev->domain, dev->bus,
1260 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1262 uint64 highSize = ReadConfig(dev->domain, dev->bus, dev->device,
1264 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1301 uint32 oldValue = ReadConfig(dev->domain, dev->bus, dev->device, dev->function,
1303 WriteConfig(dev->domain, dev->bus, dev->device, dev->function, offset, 4,
1305 uint32 newValue = ReadConfig(dev->domain, dev->bus, dev->device, dev->function,
1307 WriteConfig(dev->domain, dev->bus, dev->device, dev->function, offset, 4,
1323 if (_CreateVirtualBus(dev->domain, dev->bus, &virtualBus) != B_OK) {
1324 dprintf("PCI: CreateVirtualBus failed, domain %u, bus %u\n", dev->domain, dev->bus);
1328 dev->info.vendor_id = ReadConfig(dev->domain, dev->bus, dev->device,
1330 dev->info.device_id = ReadConfig(dev->domain, dev->bus, dev->device,
1335 dev->info.revision = ReadConfig(dev->domain, dev->bus, dev->device,
1337 dev->info.class_api = ReadConfig(dev->domain, dev->bus, dev->device,
1339 dev->info.class_sub = ReadConfig(dev->domain, dev->bus, dev->device,
1341 dev->info.class_base = ReadConfig(dev->domain, dev->bus, dev->device,
1343 dev->info.line_size = ReadConfig(dev->domain, dev->bus, dev->device,
1345 dev->info.latency = ReadConfig(dev->domain, dev->bus, dev->device,
1349 dev->info.header_type = ReadConfig(dev->domain, dev->bus, dev->device,
1351 dev->info.bist = ReadConfig(dev->domain, dev->bus, dev->device,
1365 uint16 pcicmd = ReadConfig(dev->domain, dev->bus, dev->device,
1367 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1386 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1392 dev->info.u.h0.cardbus_cis = ReadConfig(dev->domain, dev->bus,
1394 dev->info.u.h0.subsystem_id = ReadConfig(dev->domain, dev->bus,
1396 dev->info.u.h0.subsystem_vendor_id = ReadConfig(dev->domain,
1399 dev->info.u.h0.interrupt_line = ReadConfig(dev->domain, dev->bus,
1401 dev->info.u.h0.interrupt_pin = ReadConfig(dev->domain, dev->bus,
1403 dev->info.u.h0.min_grant = ReadConfig(dev->domain, dev->bus,
1405 dev->info.u.h0.max_latency = ReadConfig(dev->domain, dev->bus,
1414 uint16 pcicmd = ReadConfig(dev->domain, dev->bus, dev->device,
1416 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1434 WriteConfig(dev->domain, dev->bus, dev->device, dev->function,
1440 dev->info.u.h1.primary_bus = ReadConfig(dev->domain, dev->bus,
1442 dev->info.u.h1.secondary_bus = ReadConfig(dev->domain, dev->bus,
1444 dev->info.u.h1.subordinate_bus = ReadConfig(dev->domain,
1446 dev->info.u.h1.secondary_latency = ReadConfig(dev->domain,
1448 dev->info.u.h1.io_base = ReadConfig(dev->domain, dev->bus,
1450 dev->info.u.h1.io_limit = ReadConfig(dev->domain, dev->bus,
1452 dev->info.u.h1.secondary_status = ReadConfig(dev->domain,
1454 dev->info.u.h1.memory_base = ReadConfig(dev->domain, dev->bus,
1456 dev->info.u.h1.memory_limit = ReadConfig(dev->domain, dev->bus,
1458 dev->info.u.h1.prefetchable_memory_base = ReadConfig(dev->domain,
1462 dev->domain, dev->bus, dev->device, dev->function,
1465 dev->domain, dev->bus, dev->device, dev->function,
1468 dev->domain, dev->bus, dev->device, dev->function,
1470 dev->info.u.h1.io_base_upper16 = ReadConfig(dev->domain,
1472 dev->info.u.h1.io_limit_upper16 = ReadConfig(dev->domain,
1474 dev->info.u.h1.interrupt_line = ReadConfig(dev->domain, dev->bus,
1476 dev->info.u.h1.interrupt_pin = ReadConfig(dev->domain, dev->bus,
1478 dev->info.u.h1.bridge_control = ReadConfig(dev->domain, dev->bus,
1480 dev->info.u.h1.subsystem_id = ReadConfig(dev->domain, dev->bus,
1482 dev->info.u.h1.subsystem_vendor_id = ReadConfig(dev->domain,
1490 dev->info.u.h2.subsystem_id = ReadConfig(dev->domain, dev->bus,
1492 dev->info.u.h2.subsystem_vendor_id = ReadConfig(dev->domain,
1494 dev->info.u.h2.primary_bus = ReadConfig(dev->domain, dev->bus,
1496 dev->info.u.h2.secondary_bus = ReadConfig(dev->domain, dev->bus,
1498 dev->info.u.h2.subordinate_bus = ReadConfig(dev->domain,
1500 dev->info.u.h2.secondary_latency = ReadConfig(dev->domain,
1503 dev->info.u.h2.memory_base = ReadConfig(dev->domain, dev->bus,
1505 dev->info.u.h2.memory_limit = ReadConfig(dev->domain, dev->bus,
1507 dev->info.u.h2.memory_base_upper32 = ReadConfig(dev->domain,
1509 dev->info.u.h2.memory_limit_upper32 = ReadConfig(dev->domain,
1511 dev->info.u.h2.io_base = ReadConfig(dev->domain, dev->bus,
1513 dev->info.u.h2.io_limit = ReadConfig(dev->domain, dev->bus,
1515 dev->info.u.h2.io_base_upper32 = ReadConfig(dev->domain,
1517 dev->info.u.h2.io_limit_upper32 = ReadConfig(dev->domain,
1519 dev->info.u.h2.secondary_status = ReadConfig(dev->domain,
1521 dev->info.u.h2.bridge_control = ReadConfig(dev->domain,
1536 for (uint32 domain = 0; domain < fDomainCount; domain++)
1537 _RefreshDeviceInfo(fDomainData[domain].bus);
1557 PCI::ReadConfig(uint8 domain, uint8 bus, uint8 device, uint8 function,
1560 domain_data *info = _GetDomainData(domain);
1569 dprintf("PCI: can't read config for domain %d, bus %u, device %u, function %u, offset %u, size %u\n",
1570 domain, bus, device, function, offset, size);
1580 PCI::ReadConfig(uint8 domain, uint8 bus, uint8 device, uint8 function,
1584 if (ReadConfig(domain, bus, device, function, offset, size, &value)
1596 if (ReadConfig(device->domain, device->bus, device->device,
1605 PCI::WriteConfig(uint8 domain, uint8 bus, uint8 device, uint8 function,
1608 domain_data *info = _GetDomainData(domain);
1617 dprintf("PCI: can't write config for domain %d, bus %u, device %u, function %u, offset %u, size %u\n",
1618 domain, bus, device, function, offset, size);
1630 return WriteConfig(device->domain, device->bus, device->device,
1636 PCI::FindCapability(uint8 domain, uint8 bus, uint8 device, uint8 function,
1639 uint16 status = ReadConfig(domain, bus, device, function, PCI_status, 2);
1646 uint8 headerType = ReadConfig(domain, bus, device, function,
1664 capPointer = ReadConfig(domain, bus, device, function, capPointer, 1);
1673 if (ReadConfig(domain, bus, device, function, capPointer, 1) == capID) {
1679 capPointer = ReadConfig(domain, bus, device, function, capPointer + 1,
1695 return FindCapability(device->domain, device->bus, device->device,
1701 PCI::FindExtendedCapability(uint8 domain, uint8 bus, uint8 device,
1704 if (FindCapability(domain, bus, device, function, PCI_cap_id_pcie)
1711 uint32 capability = ReadConfig(domain, bus, device, function,
1727 capability = ReadConfig(domain, bus, device, function,
1740 return FindExtendedCapability(device->domain, device->bus, device->device,
1746 PCI::FindHTCapability(uint8 domain, uint8 bus, uint8 device,
1753 capPointer = ReadConfig(domain, bus, device, function, *offset + 1,
1755 } else if (FindCapability(domain, bus, device, function, PCI_cap_id_ht,
1770 uint8 capability = ReadConfig(domain, bus, device, function,
1773 if ((ReadConfig(domain, bus, device, function,
1781 capPointer = ReadConfig(domain, bus, device, function, capPointer + 1,
1794 return FindHTCapability(device->domain, device->bus, device->device,
1800 PCI::FindDevice(uint8 domain, uint8 bus, uint8 device, uint8 function)
1802 if (domain >= fDomainCount)
1805 return _FindDevice(fDomainData[domain].bus, domain, bus, device, function);
1810 PCI::_FindDevice(PCIBus *current, uint8 domain, uint8 bus, uint8 device,
1813 if (current->domain == domain) {
1824 PCIDev *found = _FindDevice(child->child, domain, bus, device,
1837 PCI::UpdateInterruptLine(uint8 domain, uint8 bus, uint8 _device, uint8 function,
1840 PCIDev *device = FindDevice(domain, bus, _device, function);
1893 PCI::GetPowerstate(uint8 domain, uint8 bus, uint8 _device, uint8 function,
1896 PCIDev *device = FindDevice(domain, bus, _device, function);
1906 PCI::SetPowerstate(uint8 domain, uint8 bus, uint8 _device, uint8 function,
1909 PCIDev *device = FindDevice(domain, bus, _device, function);
2240 status_t result = FindCapability(device->domain, device->bus,
2247 info->control_value = ReadConfig(device->domain, device->bus,
2266 status_t result = FindCapability(device->domain, device->bus,
2273 info->control_value = ReadConfig(device->domain, device->bus,
2283 uint32 table_value = ReadConfig(device->domain, device->bus,
2286 uint32 pba_value = ReadConfig(device->domain, device->bus,