150、 PCIE Linux驱动探测与初始化:从一次诡异的枚举失败说起 150、 PCIE Linux驱动探测与初始化:从一次诡异的枚举失败说起上周调试一块自研的PCIE采集卡,系统启动后死活认不到设备。lspci列表空空如也,但硬件同事赌咒发誓说FPGA的PCIE链路训练灯已经亮了。折腾半天才发现,内核配置里漏选了CONFIG_PCI_EPF_TEST——这个看似无关的选项竟然影响了Root Complex的枚举流程。今天我们就来拆解Linux内核里PCIE驱动那套探测与初始化的门道。系统启动时的PCIE舞蹈内核启动时,PCIE子系统初始化就像一场精心编排的舞蹈。pci_init函数是总指挥,它按顺序调用pci_access_init、pci_slot_init等一系列初始化例程。但最关键的是pci_legacy_init,这里会探测所有PCIE主机控制器。staticint__initpci_legacy_init(void