【发布时间】:2020-05-02 21:07:33
【问题描述】:
在驱动方面,pci_register_driver() 在加载驱动模块时调用,或者如果模块是内置的,则在引导时调用。 (每当添加设备/驱动程序时,驱动程序/设备列表都会循环查找匹配项,我得到了那个部分。)
但是 pci 设备在何处/何时被发现并在总线上注册?我想这是特定于架构的,并且会涉及 x86 上的 BIOS,例如 - BIOS 例程探测 PCI 设备,然后在加载内核之前将结果放入 RAM 中某个位置的列表中,并且每个列表条目都包含单个 pci 的信息设备,包括 vendorId/deviceId 等。然后内核选择列表并将它们插入到pci_bus_type.p.klist_devices 中。不过这纯属猜测,谁能给点提示?
【问题讨论】:
标签: c linux-kernel linux-device-driver pci