PCI总线、内核、PCI设备、驱动

当我们一台机器上有PCI设备时。分析这个PCI设备时如何被一步步用到的。

首先,机器上电,系统启动并加载到内核初始化阶段,这时候内核就会对所有的PCI设备进行枚举和配置!

枚举:
所有的PCI设备都在PCI总线上,内核会从第一条总线(根总线)开始扫描,逐个枚举所有连接在PCI总线上的pci设备并记录,每个PCI设备都会有其配置空间,里面保存着设备的厂商ID,设备ID,IRQ,设备存储区信息等,枚举的最终目的就是将所有的PCI设备的这些信息都读出来并且保存在pci_dev(每个设备对应一个)结构体中。具体怎么读,或者PCI总线的细节可以点击下方链接。

配置:
PCI设备总共有配置空间、内存空间、IO空间;我们想要对内存空间或IO空间进行访问的话,还需要对PCI设备进行一些配置,pci设备内部一般都是从0开始编址的,所以当总线上挂接了多个设备时,对这些空间进行直接访问就会产生冲突。所以,这些地址都要先映射到PCI总线上,再进一步映射到内核的虚拟地址空间。这时候驱动加载到内核之后,就可以直接访问的到PCI设备了。

以上内容只是个人的一点小记录。
想要了解更多可以参考下方链接,以上所以东西都可以在那里很细节的讨论到。
https://blog.51cto.com/u_15333820/3453277
https://blog.51cto.com/dongyulong/428070
https://blog.51cto.com/u_3619476/3894086

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值