3.9 关于PCIE的两种配置访问机制
这是剖析PCIE协议的第19篇文章
内容简介
2024-02-01
兼容PCI的访问机制
1.1 兼容配置空间
CAM全称是Configuration Access Mechanism。 这是与PCI兼容的一种配置访问机制,包括总线枚举和软件配置过程。同样是x86提供两个I/O端口寄存器,也就是下图的Data Port 和Address Port寄存器,由于PCI是地址数据共用32bit总线,所以需要先发送地址信息,其次再发送数据内容。关于PCI的配置访问机制可以看到合集看3.2、3.3、3.4和3.5相关内容。
所谓的地址也就是下图的BDF内容,根据BDF等所占位宽我们可以得知,一个PCI域最多可以包括256个Bus,每个总线最多32个设备,每个设备最多8个功能模块,每个功能模块的配置空间是256KB,所以总配置空间为256*32*8*256 = 16,777,216KB = 16MB。也就是"Data Port"和Address Port的寻址范围。
1.2 PCIE的访问方式
PCIE是串行链路,所以采用数据包的形式访问,如下是PCIE的配置数据包,具体关于数据包的介绍可看第二章内容。这里大致说下
1、“Requester ID”的15bit包括生成报文的总线号(8bit ,Bus Number)、设备号(5bit,Device Number)和功能号(3bit,Function),用于完成包的填充
2、Length=1,“Last DW BE =0”“First DW BE可设置”表示4字节里面的有效字段
3、BDF为目标设备所在位置,PCIE也支持ARI访问方式,也就是没有Device,Function位宽为8bit。
1.3 拓扑结构的探测
PCIE与PCI一样,在刚上电RC需要了解自身的拓扑结构,具体方式与PCI一致,采用深度优先,采用ID路由来历各个BDF,如果某个设备给返回了PCI-SIG给每个厂商都分配的唯一Vendor ID则表示存在设备,如果返回全F,则表示设备不存在。
是EP还是Bridge则通过Header里面的TYpe区分,如下图所示。
增强性配置访问机制
另外一种配置机制称为增强型配置访问机制,全称Enhanced Configuration Access Mechanism (ECAM) ,主要原因是每个设备256Byte的配置空间不够用,所以扩展到了4KB,整整扩大了16倍,但BDF等位宽不变,所以整个配置空间是256MB。如下图,其中前面部分保持与PCI一致,后续扩展。
对于增强配置机制,配置空间会映射到内存中,采用MMIO机制来访问,也就是第一章所提到的内存映射IO,如下图是ECAM所用的数据包,较CAM多了Extend.Reg Number用来扩展访问。
如下图是这种机制的对地址不同字段的映射,在256MB的内存中,也是据此映射的,虽然一般主机没几个PCIE设备,申请256MB似乎有点浪费。但现在主机内存都大得很,浪费这点洒洒水啦~
欢迎关注公众号点击【资料下载】领取相关资料
快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~
有建议、有需求、有疑问、联系我