系列文章目录
XHCI 1.2b 规范摘要(一)
XHCI 1.2b 规范摘要(二)
XHCI 1.2b 规范摘要(三)
XHCI 1.2b 规范摘要(四)
XHCI 1.2b 规范摘要(五)
XHCI 1.2b 规范摘要(六)
XHCI 1.2b 规范摘要(七)
XHCI 1.2b 规范摘要(八)
XHCI 1.2b 规范摘要(九)
XHCI 1.2b 规范摘要(十)
XHCI 1.2b 规范摘要(11)
XHCI 1.2b 规范摘要(12)
XHCI 1.2b 规范摘要(13)
XHCI 1.2b 规范摘要(14)
文章目录
- 系列文章目录
- [7 xHCI 扩展功能](#7 xHCI 扩展功能)
-
- [7.7 xHCI I/O 虚拟化 (xHCI-IOV) 功能](#7.7 xHCI I/O 虚拟化 (xHCI-IOV) 功能)
- [7.8 xHCI 本地内存能力](#7.8 xHCI 本地内存能力)
- [7.9 xHCI 音频边带功能](#7.9 xHCI 音频边带功能)
- [7.10 Intel 时间戳关联功能](#7.10 Intel 时间戳关联功能)
- [7.11 USB3 隧道支持功能](#7.11 USB3 隧道支持功能)
7 xHCI 扩展功能
xHCI Extended Capabilities 。
7.7 xHCI I/O 虚拟化 (xHCI-IOV) 功能
xHCI I/O Virtualization (xHCI-IOV) Capability 。
xHCI-IOV 扩展功能结构定义了在虚拟化环境中管理 xHC 实例所需的参数。xHCI-IOV 扩展功能结构是为 xHCI 定义的可选规范功能。xHCI-IOV 功能定义的寄存器是对 PCIe SR-IOV 扩展功能结构定义的寄存器的补充。如果 xHC 支持虚拟化,则应定义这两种功能结构。有关 PCIe SR-IOV 扩展功能的更多信息,请参阅第 8.2.1 节。
xHCI-IOV 扩展功能结构由两个寄存器阵列组成:VF 中断器范围(VF Interrupter Range )和 VM 设备插槽分配(VM Device Slot Assignment)。
此功能通过 xHCI 扩展功能指针 (xECP ,xHCI Extended Capabilities Pointer ) 字段链接,并驻留在 MMIO 空间中。xHC 实现应为每个虚拟功能 (VF ,Virtual Function ) 提供一个 VF 中断器范围寄存器(由 SR-IOV 扩展功能结构 TotalVFs 字段定义)。每个 VF 中断器范围寄存器定义中断器基偏移和中断器计数字段。这些字段允许虚拟机管理器 (VMM) 将可用中断器的特定子集分配给 VF。硬件重置后,所有 VF 中断器范围寄存器 = "0",即 VF 不拥有任何中断器。
注意:未定义 VF 中断器范围寄存器 0。VM 中断器范围寄存器 0 在逻辑上将引用物理功能 0 (PF0),但 PF0 提供所有中断器分配的池。
注意:xHCI 将支持的 VF 的最大数量限制为 63,即对于 xHCI 实现,SR-IOV 扩展功能结构 TotalVFs 字段应 <= 63。
例如,逻辑上,PF0 中断器基偏移量和中断器计数分别初始化为 "0" 和 MaxIntrs 。当中断器分配给 VF 时,PF0 可用的中断器数量会相应减少。在任何时候,PF0 可用的中断器数量都等于 MaxIntrs - SUM(中断器计数 1-1024)。
不得将中断器 0 分配给 VF。
xHC 实现应提供 MaxSlots VF Device Slot Assignment Registers (VF 设备槽分配寄存器)。每个 VF 设备槽分配寄存器定义一个模拟槽和设备槽 n VF 字段。VMM 应使用 VM 设备槽分配寄存器将设备槽分配给 VF。设备槽 n VF 字段包含拥有设备槽的 PF 或 VF 的 VF ID。硬件重置后,所有设备槽均分配有物理功能 0(设备槽 n VF = 0)。模拟槽字段标识设备槽是由 VMM 为 VM 模拟还是直接分配给 VM。有关设备模拟的更多信息,请参阅第 8.1.1 节。
此版本的 xHCI 规范仅允许实现支持单个页面大小,如 PAGESIZE 寄存器所报告的。页面大小会影响以下寄存器:
- RTSOFF 和 DBOFF 寄存器 - 如果启用了虚拟化,则 PF 和 VF 功能/操作、运行时和 Doorbell 寄存器集需要分别驻留在单独的内存页面上,以便 VMM 可以捕获和模拟 VF 功能/操作寄存器集。寄存器集之间的边界应取决于页面大小,并影响所需 PF/VF MMIO 空间的大小。如果不支持虚拟化(即未定义 SR-IOV 或 xHCI-IOV 功能),则 xHCI 寄存器集可以打包在单个页面上。
- PCI 配置空间 BAR0 寄存器 - 如果支持虚拟化,页面大小会影响 BAR0 寄存器声明的 MMIO 空间的大小。有关 BAR0 寄存器操作的信息,请参阅 PCI 规范第 6.2.5 节。
- SR-IOV 支持的页面大小寄存器 - 此寄存器应指示对单页大小的支持,其大小应与页面大小 (PAGESIZE) 寄存器中定义的页面大小相同。请参阅 SR-IOV 规范第 3.3.12 节。
- SR-IOV 页面大小寄存器 - 此寄存器应由软件写入,其值应与操作页面大小 (PAGESIZE) 寄存器中定义的页面大小相同。请参阅 SR-IOV 规范第 3.3.13 节。
7.8 xHCI 本地内存能力
xHCI Local Memory Capability 。
xHCI 实现可以定义此可选的规范 xHCI 扩展功能,以便在初始化系统内存之前为调试端口执行提供 RAM。
7.9 xHCI 音频边带功能
xHCI Audio Sideband Capability 。
xHC 可以实现此可选的规范 xHCI 扩展功能,为与音频类端点关联的有效负载提供边带数据路径机制。这允许将与特定终端节点关联的负载数据从主内存以外的位置路由或路由到主内存以外的位置。
7.10 Intel 时间戳关联功能
Intel Time Stamp Correlation Capability 。
7.11 USB3 隧道支持功能
USB3 Tunneling Support Capability 。
☆