启动的时候,PCI总线驱动会扫描总线上所有的PCI设备,为每一个设备创建一个struct pci_dev结构,相当于设备的配置空间的信息结构,所以系统在启动后,没有加载驱动前,列出所有PCI设备的信息。当系统检测到某个PCI设备时,将为该设备分配中断号、存储空间基址等,这些信息都被填入PCI设备的配置空间中,即填入struct pci_dev *pdev中,驱动程序只要访问这个数据结构,就可以读出PCI设备的信息。
模块初始化的时候,调用pci_module_init()根据id_table的信息(在pci_driver中),将device,device对应的pci_dev,device

本文介绍了PCI总线驱动如何在系统启动时扫描并创建struct pci_dev结构,用于存储设备配置信息。当加载驱动时,通过pci_module_init()结合id_table将设备、PCI设备和驱动关联。以rtl8139驱动为例,详细阐述了初始化、打开、中断处理及发送接收函数的工作流程。
&spm=1001.2101.3001.5002&articleId=380365&d=1&t=3&u=e85db809807c46778789991f73ff08da)
850

被折叠的 条评论
为什么被折叠?



