【PCIe 5.0 - 101】SR-IOV【2】

承接【PCIe 5.0 - 100】SR-IOV【1】

PCIe 系列SR-IOV导航:
【PCIe 5.0 - 100】SR-IOV【1】
【PCIe 5.0 - 101】SR-IOV【2】
【PCIe 5.0 - 102】SR-IOV【3】
【PCIe 5.0 - 103】SR-IOV 【4】

文章目录

9.3.4 PF/VF Configuration Space Header

  本节定义了对 PF 和 VF 配置空间字段的要求。

  本章中列出的寄存器定义建立了现有 PCI-SIG 规范和支持PCIe SR-IOV设备的PF/VF之间的映射。

9.3.4.1 PF/VF Type 0 Configuration Space Header

  图 9-20详细说明了 PCI Express Type 0 Configuration Space Header的寄存器字段分配。
PF/VF Type 0 Configuration Space Header

图9-20 PF/VF Type 0 Configuration Space Header

  本节定义了特定PCI Express Type 0 Configuration Space Header的寄存器的 PCI Express特定解释。

  Error Reporting字段在第 9.4 节中有更详细的描述

9.3.4.1.1 Vendor ID Register Changes (Offset 00h)

  此只读寄存器标识设备的制造商。

  所有VF中的该字段在读取时都返回FFFFh。 VI软件应从关联的PF返回Vendor ID值作为VF的Vendor ID值。

9.3.4.1.2 Device ID Register Changes (Offset 02h)

  此只读寄存器标识特定设备。

  所有VF中的该字段在读取时都返回 FFFFh。VI软件应从关联的PF中返回VF Device ID(9.3.3.11 )值作为 VF 的Device ID。

  为Device ID和Vendor ID返回FFFFh可以让某些旧版软件忽略VFs。

9.3.4.1.3 Command Register Changes (Offset 04h)

  PF 和 VF 功能在PCIe 5.0 base 7.5.1.1.3 节中定义,除非表9-13中另有说明。 对于标记为RsvdP的VF 字段,PF设置也适用于VF。

表9-9-14 Status Register Changes
Bit LocationPF and VF Register Differences From BasePF属性VF属性
0I/O Space Enable - VF不适用,且必须硬连线到0bBase0b
1Memory Space Enable - VF不适用,且必须硬连线到0b。VF Memory Space由VF Control寄存器中的VF MSE位来控制Base0b
2Bus Master Enable- 其Bus Master Enable Set的 VF事务不得被其Bus Master Enable Cleared的 VF事务阻止。BaseBase
6Parity Error ResponseBaseRsvdP
8SERR# EnableBaseRsvdP
10Interrupt Disable- VF不适用Base0b
9.3.4.1.4 Status Register Changes (Offset 06h)

  PF 和 VF 功能在第 7.5.1.1.4 节中定义,除非表 9-14 中另有说明。

表9-14 Command Register Changes
Bit LocationPF and VF Register Differences From BasePF属性VF属性
3Interrupt Status - VF不适用Base0b
9.3.4.1.5 Revision ID Register Changes (Offset 08h)

  该寄存器指定设备特定的版本id。

  VF 中报告的值可能与 PF 中报告的值不同。

9.3.4.1.6 Class Code Register Changes (Offset 09h)

  Class Code寄存器是 RO,用于识别设备的通用功能,在某些情况下,用于识别特定的寄存器级编程接口。 PF 和关联的 VF 中的字段在读取时必须返回相同的值。

9.3.4.1.7 Cache Line Size Register Changes (Offset 0Ch)

  该字段由 PCI Express 设备实现为用于传统兼容性目的的RW字段,但对任何 PCI Express 设备行为没有影响。 PF继续将此字段实现为 RW。 对于VF,此字段为 RO 零。

9.3.4.1.8 Latency Timer Register Changes (Offset 0Dh)

  这个字段不适用于PCIe,寄存器是RO 0。

9.3.4.1.9 Header Type Register Changes (Offset 0Eh)

  该字节标识预定义header的第二部分的布局(从配置空间中的10h 开始)以及设备是否包含多个Functions。 该寄存器中的第 7 位用于标识Multi-Function Device设备。 对于 SR-IOV 设备,该寄存器中的第 7 位仅在有多个Functions时Set。 VF 不影响bit 7 的值。bit 6 到 0 标识预定义header的第二部分的布局。 对于 VF,该寄存器必须为 RO 0。

9.3.4.1.10 BIST Register Changes (Offset 0Fh)

  VF 不应支持 BIST,并且必须将此字段定义为 RO 零。
  如果在设备的任何 PF 中打开 VF Enable,则软件不得在与该设备关联的任何Function中调用 BIST。

9.3.4.1.11 Base Address Registers Register Changes (Offset 10h, 14h, … 24h)

  对VF而言,这些寄存器的值都是RO 0。

9.3.4.1.12 Cardbus CIS Pointer Register Changes (Offset 28h)

  VF不使用这个寄存器并且应该是RO 0。

9.3.4.1.13 Subsystem Vendor ID Register Changes (Offset 2Ch)

  此只读字段标识subsystem的制造商。 PF 和关联的 VF 中的字段在读取时必须返回相同的值。

9.3.4.1.14 Subsystem ID Register Changes (Offset 2Eh)

  此只读字段标识特定subsystem。 Device 的 PF 和 VF 值可能不同。

9.3.4.1.15 Expansion ROM Base Address Register Register Changes (Offset 30h)

  PF中可以实现Expansion ROM Base Address Register,Expansion ROM Base Address Register在VF中是RO 0。VI 可以通过仿真为VF提供对Expansion ROM Base Address Register的访问。

  PF 不允许实现扩展 ROM 地址解码器共享

9.3.4.1.16 Capabilities Pointer Register Changes (Offset 34h)

  这个同PCIe 5.0 base中的7.5.1.1.11Capabilities Pointer (Offset 34h)没有区别

9.3.4.1.17 Interrupt Line Register Changes (Offset 3Ch)

  寄存器不适用于VF,必须是 RO 0。

9.3.4.1.18 Interrupt Pin Register Changes (Offset 3Dh)

  寄存器不适用于VF,必须是 RO 0。

9.3.4.1.19 Min_Gnt Register/Max_Lat Register Changes (Offset 3Eh/3Fh)

  这些寄存器不适用于 PCIe。 它们必须是 RO 0。

9.3.5 PCI Express Capability Changes

  PCI Express Capability(7.5.3 节)用于识别PCI Express设备并指示对PCI Express功能的支持。
  图 7-21详细说明了PCI Express Capability中寄存器字段的分配。 需要PF和VF来实现此功能,但须遵守下文所述的例外情况和附加要求。

9.3.5.1 PCI Express Capabilities Register Changes (Offset 00h)

  PCI Express Capabilities Register在第 7.5.3.2 节中描述,其中描述的功能适用于 PF 和 VF。

9.3.5.2 PCI Express Capabilities Register Changes (Offset 02h)

  PCI Express Capabilities寄存器标识 PCI Express 设备类型和相关功能。
  PF 和 VF 功能在第 7.5.3.2 节中定义。

9.3.5.3 Device Capabilities Register Changes (Offset 04h)

  Device Capabilities Register标识PCI Express设备特定的capabilities。 图 7-24 详细说明 Device Capabilities Register 中寄存器字段的分配; 表 9-15 提供了相应的bit定义。

  除非在表 9-15 中注明,PF 和 VF 功能在第 7.5.3.3 节中定义。

表9-15 Device Capabilities Register Changes
Bit LocationPF and VF Register Differences From BasePF属性VF属性
4:3Phantom Functions Supported - 设置 VF Enable 时,不允许此 PF 和关联的 VF 使用 Phantom Function 编号,并且该字段在读取时必须返回 00b。Base00b
25:18Captured Slot Power Limit ValueBase没定义
27:26Captured Slot Power Limit ScaleBase没定义
28Function Level Reset Capability,PF和VF需要1b1b
9.3.5.4 Device Control Register Changes (Offset 08h)

  Device Control Register控制PCI Express设备特定参数。图7-25详细说明Device Control寄存器中寄存器字段的分配;表9-16提供了相应的位定义。
  PF和VF功能在7.5.3.4节中定义,除非在表9-16中注明。对于标记为RsvdP的VF字段,PF设置适用于VF。

表9-16 Device Control Register Changes
Bit LocationPF and VF Register Differences From BasePF属性VF属性
0Correctable Error Reporting EnableBaseRsvdP
1Non-Fatal Error Reporting EnableBaseRsvdP
2Fatal Error Reporting EnableBaseRsvdP
3Unsupported Request Reporting EnableBaseRsvdP
4Enable Relaxed OrderingBaseRsvdP
7:5Max_Payload_SizeBaseRsvdP
8Extended Tag Field EnableBaseRsvdP
9Phantom Functions EnableBaseRsvdP
10Aux Power PM EnableBaseRsvdP
11Enable No SnoopBaseRsvdP
14:12Max_Read_Request_SizeBaseRsvdP
15Initiate Function Level Reset - PFs和VFs需要。
注意:在 PF 中设置 Initiate Function Level Reset 会重置 VF Enable,这意味着在 FLR 完成后 VF 不再存在。
BaseRsvdP

9.3.5.5 Device Status Register Changes (Offset 0Ah)

  Device Status寄存器提供有关 PCI Express 设备特定参数的信息。 图 7-26 详细说明 Device Status 寄存器中寄存器字段的分配; 表 9-17 提供了相应的位定义。

  PF 和 VF 功能在第 7.5.3.5 节中定义,除非表 9-17 中另有说明。

表9-17 Device Status Register Changes
Bit LocationPF and VF Register Differences From BasePF属性VF属性
4AUX Power DetectedBase0b
6Emergency Power Reduction DetectedBase0b

9.3.5.6 Link Capabilities Register Changes (Offset 0Ch)

  Link Capabilities寄存器标识 PCI Express Link 特定的capabilities。 PCIe 5.0 base中图 7-27 详细说明了Link Capabilities寄存器中寄存器字段的分配。
  PF 和 VF 功能在7.5.3.6 节中定义。

9.3.5.7 Link Control Register Changes (Offset 10h)

  Link Control Register控制 PCI Express 链路的特定参数。 图 7-28 详细说明了Link Control register中寄存器字段的分配。
PF 和 VF 功能在7.5.3.7 节中定义,除非表 9-18 中另有说明。 对于标记为 RsvdP 的 VF 字段,PF 设置适用于 VF。

表9-18 Link Control Register Changes
Bit LocationPF and VF Register Differences From BasePF属性VF属性
1:0Active State Power Management (ASPM) ControlBaseRsvdP
3Read Completion Boundary (RCB) ,VF必须硬连线到0BaseRsvdP
6Common Clock ConfigurationBaseRsvdP
7Extended SynchBaseRsvdP
8Enable Clock Power ManagementBaseRsvdP
9Hardware Autonomous Width DisableBaseRsvdP

9.3.5.8 Link Status Register Changes (Offset 12h)

  Link Status Register提供有关 PCI Express 链路特定参数的信息。 图 7-29 详细说明了Link Status Register中寄存器字段的分配。
  PF 功能在第 7.5.3.8 节中定义。 对于 VF,此寄存器中的所有字段都是 RsvdZ,PF 设置适用于 VF。

9.3.5.9 Device Capabilities 2 Register Changes (Offset 24h)

PF 和 VF 功能在7.5.3.15 节中定义,表 9-19 中注明的除外。

表9-19 Device Capabilities 2 Register Changes
Bit LocationPF and VF Register Differences From BasePF属性VF属性
3:0Completion Timeout Ranges Supported
VF 值必须与 PF 值相同。
BaseBase
4Completion Timeout Disable Supported
VF 值必须与 PF 值相同。
BaseBase
6AtomicOp Routing Supported
不适用于Endpoint。
RsvdPRsvdP
732-bit AtomicOp Completer Supported
VF 值必须与 PF 值相同。
BaseBase
864-bit AtomicOp Completer Supported
VF 值必须与 PF 值相同。
BaseBase
9128-bit CAS Completer Supported
VF 值必须与 PF 值相同。
BaseBase
1610-Bit Tag Completer Supported
VF 值必须与 PF 值相同。
BaseBase
1710-Bit Tag Requester Supported
VF 值必须等于 SR-IOV Capabilities寄存器中 VF 10-Bit Tag Requester Supported位的值
BaseBase
25:24Emergency Power Reduction Supported
VF 值必须与 PF 值相同。
BaseBase
26Emergency Power Reduction Initialization Required
VF 值必须与 PF 值相同。
BaseBase

9.3.5.10 Device Control 2 Register Changes (Offset 28h)

PF 和 VF 功能在第 7.5.3.16 节中定义,表 9-20 中注明的除外。

表9-20 Device Control 2 Register Changes
Bit LocationPF and VF Register Differences From BasePF属性VF属性
3:0Completion Timeout Value
PF 值适用于所有关联的 VF。
BaseRsvdP
4Completion Timeout Disable
PF 值适用于所有关联的 VF。
BaseRsvdP
6AtomicOp Requester Enable
PF 值适用于所有关联的 VF。
BaseRsvdP
8IDO Request Enable
PF 值适用于所有关联的 VF。
BaseRsvdP
9IDO Completion Enable
PF 值适用于所有关联的 VF。
BaseRsvdP
11Emergency Power Reduction Request
该位仅存在于与Upstream Port关联的一个Function中。 该Function不能是 VF。
BaseRsvdP
1210-Bit Tag Requester Enable
SR-IOV Control寄存器中的VF 10-Bit Tag Requester Enable位中的值适用于所有关联的 VF。
BaseRsvdP

9.3.5.11 Device Status 2 Register Changes (Offset 2Ah)

PF 和 VF 功能在PCIe 5.0 Base 7.5.3.17 节中定义。

9.3.5.12 Link Capabilities 2 Register Changes (Offset 2Ch)

PF 和 VF 功能在PCIe 5.0 Base 7.5.3.18 节中定义。

9.3.5.13 Link Control 2 Register Changes (Offset 30h)

PF 和 VF 功能在PCIe 5.0 Base 7.5.3.19 节中定义。

9.3.5.14 Link Status 2 Register Changes (Offset 32h)

PF 和 VF 功能在第 7.5.3.20 节中定义,除非表9-21中另有说明。标记为RsvdZ的VF字段使用关联PF的值。

表9-21 Link Status 2 Register Changes
Bit LocationPF and VF Register Differences From BasePF属性VF属性
0Completion Timeout Value
PF 值适用于所有关联的 VF。
BaseRsvdP

9.3.6 PCI Standard Capabilities

PCI Standard Capabilities的 SR-IOV 使用在表 9-22 中进行了描述。 标记为 n/a 的项目不适用于 PF 或 VF。

表9-22 SR-IOV Usage of PCI Standard Capabilities
.
Capability IDDescriptionPF属性VF属性
00hNull CapabilityBaseBase
01hPCI Power Management InterfaceBase可选
02hAGPn/an/a
03hVPDBase可选
04hSlot Identificationn/an/a
05hMSIBase见9.5.1.1节
06hCompactPCI Hot Swapn/an/a
07hPCI-Xn/an/a
08hHyperTransportn/an/a
09hVendor-specific BaseBaseBase
0AhDebug PortBaseBase
0BhCompactPCI Central Resource Controln/an/a
0ChPCI Hot PlugBasen/a
0DhPCI Bridge Subsystem IDn/an/a
0EhAGP 8x IDn/an/a
0FhSecure Device IDn/an/a
10hPCI ExpressBase见9.3.5
11hMSI-X见9.5.1.2和9.5.1.3见9.5.1.2和9.5.1.3
12hSerial ATA Data/Index ConfigurationBasen/a
13hAdvanced Featuresn/an/a
14hEnhanced AllocationBase禁止实现
15hFlattening Portal Bridge (FPB)n/an/a

9.3.6.1 VPD Capability

  VPD 功能在 PCI 中是可选的。 它在 SR-IOV 中仍然是可选的。
  实现VPD Capability 的 VF 和 PF 必须通过 VPD Capability 确保 VF 和/或 PF 之间不会出现“数据泄漏(data leakage)”。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值