摘要:
Realtek8168网卡时pci接口的网卡,其驱动程序就是一个PCI设备的驱动程序实例,我们一起看看其流程。1. 首先,初始化模块调用static inline int pci_register_driver(struct pci_driver *driver)函数来注册设备驱动,这个函数的参数是struct pci_driver *driver,对应于r8168,就是static struct pci_driver rtl8168_pci_driver = { .name = MODULENAME, .id_table = rtl8168_pci_tbl, .probe = rtl8168 阅读全文
摘要:
有了设备模型基础及usb设备驱动的基础知识,来了解PCI设备驱动,就相对简单了,因为PCI设备驱动仍然套用了设备驱动模型的方式,用到的仍然是设备模型的相应函数,只是把相应的pci设备挂载到PCI总线的device队列,而凭此驱动则挂载到pci总线的driver队列,对应的匹配函数,探测函数,都是pci总线提供的函数。因为pci设备驱动的安装跟usb设备驱动的安装模式相似,因此,其繁杂的地方则是如何发现设备并把设备添加到pci设备队列中去这个步骤了。网上有一篇文章很好的介绍了PCI设备的枚举过程:(原文:http://www.diybl.com/course/6_system/linux/Lin 阅读全文