На стороне драйвера, pci_register_driver()
вызывается, когда загружается модуль драйвера, или во время загрузки, если модуль встроен. (Всякий раз, когда добавляется устройство / драйвер, список драйверов / устройств зацикливается, чтобы найти соответствие, я получаю эту часть.)
Но где / когда устройства pci обнаруживаются и регистрируются на шине? Я предполагаю, что это спецификация arch c, и она будет включать B IOS на x86, например - B IOS рутинные зондовые устройства PCI, а затем помещать результаты в некоторый список в ОЗУ, перед загрузкой ядра, и каждая запись списка содержит информацию об одном устройстве pci, включая vendorId / deviceId et c. Затем ядро берет список и вставляет их в pci_bus_type.p.klist_devices
в какой-то момент. Но это чистое предположение, кто-нибудь может дать некоторые подсказки?