【PCI】PCIE设备映射关系图(五)

本文以某PCIE设备为例,画出映射关系图。

        简单介绍一下:

        X86架构给PCI设备预留了256MB的配置空间,每个PCI设备占用32k大小(8个func * 4k),注意,不管PCI设备是否存在,主机均会预留空间。BIOS启动阶段会去遍历每个PCI设备的配置空间,根据这个PCI设备配置空间中配置的BAR大小,为其分配PCI设备空间(BAR空间),也就是在上图红框中空间,这样一来,主机对PCI设备的BAR空间写数据,即可写入到设备的寄存器或内存(一般这样使用,看BAR映射到设备的哪个地方)。那么如何使用呢?以某PCIE设备为例,在linux内核启动阶段会加载该设备的驱动ko,在驱动中会记录该设备的BAR空间地址,并提供接口给用户层使用,用户就通过接口写数据给PCI设备了,至于写入位置一般可通过配置PCI设备的配置空间改变BAR映射位置。

        主片测将PCIE设备所需的资源拷贝到BAR空间对应的虚拟内存中,通过TLP总线事务传递到PCIE设备内存,从而使PCIE设备运行起完整的linux系统完成特定功能。

注意,PCI设备空间与PCIE配置空间不同。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值