PCI驱动学习总结-国嵌视频

1、国嵌视频 5.6.1节 PCI总线
   http://www.iqiyi.com/w_19rrd5x7ql.html
1)PCI总线依赖PCI桥才能产生
2)只要挂到PCI总线上的都是PCI设备
   PCI桥,PCI-PCI桥,连接PCI总线的也是特殊的PCI设备。
3)PCI设备寻址
   每个PCI设备由一个总线号、设备号、和功能号组成。
   PCI规范允许一个系统最多拥有256条总线,每条总线最多带32个设备,每个设备可以是最多
   8个功能的多功能板。

2、国嵌视频 5.6.2节 PCI驱动程序设计
https://www.iqiyi.com/w_19rrd5x81d.html
1)调用 pcie_register_driver 时,就会遍历PCI总线上所有的PCI设备,找到这个注册的这个驱动能处理的设备,就会调用驱动的probe函数。 
也就是总线驱动模型的方式,从2.6内核版本开始。

2)怎么match,进入probe函数的
通过ID匹配。厂家和设备ID。    
一个驱动可以对应多个ID,也就是可能可以处理多个厂家的设备。    

3)probe函数都做了什么事情
  使能PCI设备 pci_enable_device
  获取基地址  ioaddr = pci_resource_start  (基地址是物理地址)
  申请要使用的地址空间 pci_request_reglons
  获取中断号
  进行ioremap 物理地址映射成虚拟地址 ioaddr=(long)ioremap(ioaddr,0x400);         

  probe函数还可以完成对应功能驱动的初始化。初始化pci-dev设备结构体。

猜你喜欢

转载自blog.csdn.net/Linuxxulin/article/details/85954958