【PCI】PCIe Bridge标准配置空间(十一)

本文参考PCIe协议 5.0:https://download.youkuaiyun.com/download/zz2633105/89204842

PCIe配置空间

Bridge标准配置空间

在这里插入图片描述

Vendor ID Register (Offset 00h)

PCIe设备厂商ID,比如Intel的Vendor ID通常是0x8086。需要注意的是,厂商的ID不是厂商随意定的,而是由厂商花钱申请的,已申请PCIe厂商ID可以通过网址查询。

Device ID Register (Offset 02h)

PCIe设备ID,需要厂商自定义,通常用来区分不同种类的设备。在系统中,一般通过厂商ID(Vendor ID)和设备ID(Device ID)来加载驱动,较复杂的设备还可能借助子系统ID(Subsystem ID)和子系统厂商ID(Subsystme Vendor ID)。

Command Register (Offset 04h)

该寄存器为PCI设备的命令寄存器,在初始化时,其值为0,此时这个PCIe设备除了能够接受配置请求总线事务之外,不能接收任何存储器或I/O请求。系统软件需要合理设置该寄存器之后,才能访问该设备的存储器或者I/O空间。在linux系统中,设备驱动程序调用pci_enable_device函数,使能该寄存器的I/O和Memory Space位之后,才能访问该设备的存储器或者I/O地址空间。
在这里插入图片描述
说明

bit 功能
0 I/O Space Bit,该Bit表示PCIe设备是否响应I/O请求,为1时响应,为0时不响应。如果PCIe设备支持I/O地址空间,系统软件会将该Bit置1,复位值为0。
1 Memory Space Bit,该Bit表示PCIe设备是否响应内存请求(Memory Read/Write),为1时响应,为0时不响应。如果PCIe设备支持内存空间,系统软件会将Bit置1,复位值为0。
2 Bus Master Bit,对于EP,该Bit表示PCIe设备是否可以主动发起I/O和内存请求,为1时表示可以,为0时表示不可以,复位时为0。
对于Bridge,该Bit除了表示自身是否可以主动发起I/O和内存请求外,还可以控制Bridge是否转发下行端口的I/O和存储器请求到上行端口。若该Bit为0,则拒绝转发下行端口的I/O和内存请求,并对Non-Posted请求给予回复UR(Unsupported Requests),Posted请求丢弃。
3 Special Cycle Enable,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
4 Memory Write and Invalidate,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
5 VGA Palette Snoop,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
6 Parity Error Response,复位值为0,当PCIe报文传输过程中出现奇偶校验错误时,该Bit为0,则只会将Status寄存器的Detected Parity Error bit置1,该Bit为1,则即将Status寄存器的Detected Parity Error bit置1,又将Status寄存器的Master Data Parity Error bit置1。
7 IDSEL Stepping/Wait Cycle Control,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
8 SERR# Enable,复位值为0。该Bit为1时,当PCIe设备出现错误,则允许发送Messages报文上报错误,具体的错误类型上报还需要看PCI Express Capability 的Device Control Register 寄存器。
9 Fast Back-to-Back Transactions Enable,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
10 Interrupt Disable,控制PCIe生成INTx中断的能力。置位为1时,禁止PCIe产生INTx中断。需要注意的是,PCIe设备取消了INTx中断线,改成Message方式上报INTx中断。对于Bridge,该BIt只会影响自身产生中断,不会影响中断转发。

Status Register (Offset 06h)

该寄存器绝大多数位都是只读位,保存PCIe设备状态。
在这里插入图片描述

bit 功能
0 Immediate Readiness,可选位,当该Bit为1时,表示该function可以随时响应有效的配置请求。比如对某个function执行FLR(function层面复位)操作,正常情况下,主机应至少等待100ms才能发出配置请求访问这个function,但该Bit置1的话,主机便可立即访问该function。
3 Interrupt Status,复位值为0,只读Bit,当该Bit为1时,表示有一个INTx传统中断在设备内部挂起。驱动程序很少使用该Bit判断是否有中断未处理,大多数是采用BAR空间中自定义Bit来确定某个中断是否pending。
4 Capabilities List,只读Bit,为1时表示Capability Pointer寄存器中值有效,对于PCIe设备,必需实现PCI Express Capability,因此,该BIt需要硬连线置1。
5 66 MHz Capable,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
7 Fast Back-to-Back Transactions Capable,该BIt为PCI设备特有的。对于PCIe设备,该Bit无意义,必须硬连接到0 b。
8 Master Data Parity Error,复位值为0,如果 Comand 寄存器的 Parity Error Response 为 0,那么该位在任何情况下都是 0。
若该Bit为1,则:
对于EP,表示接收到Poisoned Completion TLP或者发送了Poisoned Request TLP。
对于Bridge,表示从下游(Downstream)收到Poisoned Completion TLP或者向上游(Upstream)发送了Poisoned Request TLP。
10:9 DEVSEL Timing,为PCI设备特有的。对于PCIe设备,该字段无意义,必须硬连线到00 b。
11 Signaled Target Abort,复位值为0,设备收到 Posted 或者 Non-Posted 请求后,如果对该请求产生一个 Completer Abort Error,则将该Bit置为 1。如果收到的是 Non-Posted 请求,则设备需要向请求端回复一个带 Completion Abort Completion Status 的 Completion。
12 Received Target Abort,该Bit写1清除,复位值为0,置1时,表示设备收到带有 Completer Abort Completion Status 的 Completion。
13 Received Master Abort,该Bit写1清除,复位值为0,置1时,表示设备收到带有 Unsupported Request Completion Status 的 Completion。
14 Signaled System Error,该Bit写1清除,复位值为0,在 Command 寄存器的 SERR# Enable 位设置为 1 的前提下,如果设备发送过 ERR_FATAL 或者 ERR_NONFATAL 消息,那么会将该位置为 1。
15 Detected Parity Error, 该位的设置不受 Command 寄存器的 Parity Error Response 位的影响。
对于EP,设备收到 Poisoned TLP 时会将该位置 1。
对于Bridge,当它从上游(Primary )侧收到 Poisoned TLP 时,会将该位置 1。

Revision ID Register (Offset 08h)

修订ID寄存器存放硬件修订标识符,值由厂商自定义。一般系统会使用设备ID、厂商ID、修订ID来决定加载哪个驱动程序。厂商必须确保所选择的值不会导致使用不兼容的设备驱动程序。

Class Code Register (Offset 09h)

设备分类信息寄存器, 只读,表示PCIe设备属于哪一种类别,如网卡,存储卡,显卡等,是需要重点关注的一个寄存器。
在这里插入图片描述

Base Class Code
Base Class Code Description
0x00 Unclassified device
0x01 Mass storage controller
0x02 Network controller
0x03 Display controller
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值