乐于分享
好东西不私藏

PCIe5.0标准协议规范中文-7. 软件初始化和配置-7.5 PCI和PCIe能力所有端口必须的基本规范-7.5.3 PCI Express 能力结构 - 7.5.3.15

PCIe5.0标准协议规范中文-7. 软件初始化和配置-7.5 PCI和PCIe能力所有端口必须的基本规范-7.5.3 PCI Express 能力结构 - 7.5.3.15

7.5.3.15 Device Capabilities 2 Register (Offset 24h)

Figure 7-36 Device Capabilities 2 Register

Table 7-31 Device Capabilities 2 Register

Bit Location

寄存器描述

属性

3:0

完成超时范围支持 - 此字段指示设备功能是否支持可选的完成超时可编程机制。该机制允许系统软件修改完成超时值。此字段仅适用于根端口、代表自身发出请求的端点以及接管在PCI Express上发出的请求的PCI Express到PCI/PCI-X桥。对于所有其他功能,此字段保留,必须硬连线为0000b。                    定义了四个超时值范围:                    范围A:50 μs到10 ms                    范围B:10 ms到250 ms                    范围C:250 ms到4 s                    范围D:4 s到64 s                    根据下表设置位,以显示支持的超时值范围:                       - 0000b:不支持完成超时编程-Function 需要实现 50us ~ 50ms 的超时时间值                       - 0001b:范围A                    00010b:范围B                    0011b:范围A和B                    0110b:范围B和C                    0111b:范围A、B和C                    1110b:范围B、C和D                    1111b:范围A、B、C和D                    所有其他值为保留                    强烈建议完成超时机制的超时时间不要少于10 ms。

HwInit

4

完成超时禁用支持 - 当值为1b时,表示支持完成超时禁用机制。                    完成超时禁用机制对于代表自身发出请求的端点以及接管在PCI Express上发出的请求的PCI Express到PCI/PCI-X桥是必需的。对于根端口,此机制是可选的。                    对于所有其他功能,此字段保留,必须硬连线为0b。

RO

5

ARI转发支持 - 仅适用于交换下游端口和根端口;对于其他功能类型,此位必须为0b。如果交换下游端口或根端口支持此可选功能,则此位必须设置为1b。有关更多细节,请参见第6.13节。

RO

6

原子操作路由支持 - 仅适用于交换上游端口、交换下游端口和根端口;对于其他功能类型,此位必须为0b。如果端口支持此可选功能,则此位必须设置为1b。有关更多详细信息,请参见第6.15节。

RO

7

32位原子操作完成者支持 - 适用于具有内存空间基址寄存器(BAR)的功能以及所有根端口;对于其他情况,此位必须为0b。包括 FetchAddSwap 和 CAS 原子操作。如果功能支持此可选能力,则此位必须设置为1b。有关附加的请求完成(RC)要求,请参见第6.15.3.1节。

RO

8

64位原子操作完成者支持 - 适用于具有内存空间基址寄存器(BAR)的功能以及所有根端口;对于其他情况,此位必须为0b。包括 FetchAddSwap 和 CAS 原子操作。如果功能支持此可选能力,则此位必须设置为1b。有关附加的请求完成(RC)要求,请参见第6.15.3.1节。

RO

9

128位CAS完成器支持 - 适用于具有内存空间基址寄存器(BAR)的功能以及所有根端口;对于其他情况,此位必须为0b。如果功能支持此可选能力,则此位必须设置为1b。有关更多细节,请参见第6.15节。

RO

10

No RO-enabled PR-PR Passing - 如果此位被设置,路由元素将不会执行与宽松排序属性字段被设置相关的表2-40条目A2b允许的传递。                    此位仅适用于支持根端口间点对点流量的交换和RC。此位仅适用于通过交换或RC转发的发布请求,不适用于在交换或RC内起始或终止的流量。交换或RC上的所有端口必须报告相同的值。对于所有其他功能,此位必须为0b。

HwInit

11

LTR机制支持 - 1b的值表示支持可选的延迟容忍报告(LTR)机制。根端口、交换和端点被允许实现此功能。对于与上游端口关联的多功能设备,每个功能必须报告相同的值。对于不实现此功能的桥接器和其他功能,此位必须硬连线为0b。

RO

13:12

TPH完成器支持 - 该值指示完成者对TPH(TLP Process Host)或扩展TPH的支持。仅适用于根端口和端点。对于所有其他功能,此字段为保留位。                    00b:保留                    01b:不支持TPH和扩展TPH完成器                    10b:支持TPH完成器;不支持扩展TPH完成器                    11b:支持TPH和扩展TPH完成器(保留)                    有关详细信息,请参见第6.17节。

RO

15:14

LN System CLS - 仅适用于根端口和RCRB;对于所有其他功能类型,此字段必须为00b。该字段指示根端口或RCRB是否支持LN协议作为LN完成器,以及当前生效的缓存行大小。                    00b:LN完成器未支持或未生效                    01b:LN完成器支持64字节缓存行                    10b:LN完成器支持128字节缓存行                    11b:保留

HwInit

16

10位标记完成者支持 - 如果此位被设置,则表示该功能支持10位标记完成者能力;否则,该功能不支持。有关详细信息,请参见第2.2.6.2节。

HwInit

17

10位标记请求者支持 - 如果此位被设置,则表示该功能支持10位标记请求者能力;否则,该功能不支持。若10位标记完成者支持位未设置,此位不得被设置。如果功能是RCiEP,则如果RC不支持10位标记完成者能力,该位必须保持清除。请注意,10位标记字段生成必须由请求者功能的设备控制2寄存器中的10位标记请求者启用位启用。有关详细信息,请参见第2.2.6.2节。

HwInit

19:18

OBFF支持 - 该字段指示是否支持OBFF,并且如果支持,所使用的信令机制是什么。                    00b:不支持OBFF                    01b:仅使用消息信令支持OBFF                    10b:仅使用WAKE#信令支持OBFF                    11b:同时使用WAKE#和消息信令支持OBFF                    如果该字段中报告的值必须仅指示对WAKE#信令的支持,条件如下:                    - 对于下游端口,支持驱动OBFF的WAKE#信令并且已知连接的下游连接器或组件接收同一WAKE#信令                    - 对于上游端口,支持接收OBFF的WAKE#信令,并且如果组件位于插卡上,则该组件连接到连接器上的WAKE#信令                    根端口、交换端口和端点可以实现此功能。                    对于与上游端口关联的多功能设备,每个功能必须报告该字段的相同值。                    对于不实现此功能的桥接器和端口,该字段必须被硬连线到00b。

HwInit

20

扩展格式字段支持 - 如果此位被设置,则表示该功能支持3位定义的格式字段(Fmt字段)。如果此位未设置,则表示该功能支持2位定义的Fmt字段。有关详细信息,请参见第2.2节。                    - 对于支持端到端事务层前缀(End-End TLP Prefixes)的功能,该位必须设置。                    - 上游端口中的所有功能必须具有相同的该位值。                    - 组件的每个下游端口可以具有不同的该位值。                    强烈建议功能支持3位定义的Fmt字段。

RO

21

端到端事务层前缀支持 - 指示功能是否提供端到端事务层前缀(End-End TLP Prefix)的支持。值如下:                    0b 不支持:不提供端到端TLP前缀的支持。                    1b 支持:支持接收包含端到端TLP前缀的TLP。                    交换的所有端口必须具有相同的该位值

HwInit

23:22

最大端到端TLP前缀 - 指示此功能支持的最大端到端TLP前缀数量。有关重要细节,请参阅第2.2.10.2节。取值如下:                    01b:1个端到端TLP前缀                    10b:2个端到端TLP前缀                    11b:3个端到端TLP前缀                    00b:4个端到端TLP前缀                    如果端到端TLP前缀支持标志未设置,则该字段视为保留字段(RsvdP)。                    具有设置端到端TLP前缀支持位的不同根端口允许报告该字段的不同值。                    对于支持端到端TLP前缀的交换,该字段必须为00b,表示支持最多四个端到端TLP前缀。

HwInit

25:24

Emergency Power Reduction 支持 - 指示对可选Emergency Power Reduction 状态(Emergency Power Reduction State)功能的支持级别。此功能允许在不涉及系统软件的情况下,通过机箱请求附加卡迅速进入Emergency Power Reduction 状态,从而降低功耗。有关详细信息,请参见第6.25节。                    取值如下:                    00b:不支持Emergency Power Reduction 状态                    01b:支持Emergency Power Reduction 状态,并通过设备特定机制触发                    10b:支持Emergency Power Reduction 状态,并可通过对应的形式因数规范定义的机制或设备特定机制触发                    11b:保留                    对于不关联上游端口的功能,此字段为保留字段(RsvdP)。对于与上游端口关联的多功能设备,所有报告非零值的功能必须报告相同的非零值。默认值为00b。复位后,一旦此字段返回非零值,它必须保持相同的非零值,直到下一次复位。

HwInit

26

Emergency Power Reduction 初始化要求 - 如果设置,则表示功能在退出Emergency Power Reduction 状态后需要完全或部分初始化。如果清除,则表示功能在退出Emergency Power Reduction 状态后无需软件干预即可恢复正常操作。有关详细信息,请参见第6.25节。                    对于与上游端口关联的多功能设备,所有功能必须报告相同的值。对于不关联上游端口的功能,此字段为保留字段(RsvdP)。默认值为0b。复位后,当此字段返回非零值时,必须保持相同的非零值。

HwInit

31

FRS支持 - 如果设置,则表示支持可选的功能就绪状态(Function Readiness Status,FRS)能力。                    设置:表示支持FRS消息的生成或接收能力。                    未设置:表示不支持FRS消息的生成或接收,尤其是交换功能本身不生成FRS消息。                    对于支持FRS消息生成或接收的所有功能,必须设置此位。对于不生成FRS消息的交换功能,则不得设置此位。

HwInit

实现注意事项:使用No RO-enabled PR-PR Passing位

No RO-enabled PR-PR Passing位允许平台在请求者和补全者之间的路径上利用PCI Express交换元素,这可以从稍微不那么宽松的排序模型中受益。一个例子是一个设备,不能确保多个重叠张贴到同一个地址在同一时间是杰出的。使这样一个设备能够利用这种模式的方法超出了本规范的范围。