PCIE原理-001 PCIE的BAR0/1是如何配置的?

PCIE原理-001 PCIE的BAR0/1是如何配置的?

1、PCIE的拓扑结构

RC端通过配置TLP读写EP端PCIE的BAR0/1寄存器,确定EP端PCIE的存储空间。其中配置TLP需要用到总线号,设备号,以及功能号。此类概念如下图。

图 1 PCIE拓扑结构

2、PCIE的配置空间

图2  PCIE 配置空间的Type0和Type1头标区

PCIE支持基本的PCI兼容配置空间(256B、64DW)和PCIE扩展配置空间(扩展4KB,1024DW),其中PCI兼容配置空间的头16个DW称之为配置空间头标区,非桥设备使用Type0头标区格式,上图左侧所示。桥设备(包含根复合体和交换开关中的虚拟桥)使用Type1的头标区格式,上图右侧所示。

3、用来配置BAR0/1的配置TLP是如何构成的。

图3  配置请求TLP格式

RC端PCIE使用ID路由来配置EP端PCIE的BAR0/1,以确定EP端PCIE的存储空间。

在PCIE拓扑结构中,配置TLP如何选择目标PCIE的BAR0/1是由配置TLP中的Bus Number、Device Number、Function Number以及register number字段来确定的。

如上图所示为3DW格式的配置TLP格式。

Requester ID[15:0]

用来标识配置TLP的请求者,以便对应完成能够返回。在Requester ID[15:0]中,位[15:8]为总线号,位[7:3]为设备号,位[2:0]为功能号,ID号是多少是由请求者在PCIE 拓扑结构中的位置确定的,如图1所示。

Completer ID[15:0](即Bus Number、Device Number、Function Number)

配置请求头标中的字节8~9是该配置周期目标设备的ID:总线号、设备号和功能

号。目标设备在每一个Type0配置写周期中都要“捕获”这个字段中的总线号和设备号。配置EP端就需要将EP端PCIE的ID填写在此字段。

扩展寄存器号Extended Register Number[3:0]和寄存器号register number[5:0]

这两个字段对应着图2中的配置地址。

4、参考文献截图来源

[1]PCI、PCI-X和PCIExpress的原理及体系结构-马鸣锦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值