PCIe(Peripheral Component Interconnect Express)是一种用于连接扩展卡到计算机主板的高速串行总线标准。PCIe Capability 和 Extended Capability 是 PCIe 设备的两种重要特性。
1. **PCIe Capability:** PCIe Capability 是指 PCIe 设备的基本能力,包括设备的类型、速度、链接状态、电源管理、错误处理等。PCIe Capability 结构包含了设备的基本信息,例如设备的类型(Endpoint 或者 Root Port)、支持的 PCIe 版本、链接速度和宽度等。这些信息对于系统的配置和性能优化非常重要。
2. **Extended Capability:** Extended Capability 是指 PCIe 设备的扩展能力,它允许设备厂商定义和实现特定的功能扩展。例如,一些设备可能具有扩展的电源管理能力、虚拟化支持、SR-IOV(Single Root I/O Virtualization)等特性,这些功能通常会以扩展的形式存在于设备的配置空间中。
在 PCIe 设备的配置空间中,PCIe Capability 和 Extended Capability 结构是以特定的格式和偏移地址存储的,操作系统和驱动程序可以通过读取这些结构来获取设备的基本能力和扩展功能,从而进行适当的配置和管理。
2 PCI Header offset 0C
PCI配置Header(64B,00h~3Ch)具有固定的格式,主要有两种:Type0和Type1。
Header Type为Type0,表示Endpoint(Agent)的Configuration Space;
Header Type为Type1,表示Switch或Bridge的Configuration Space。
PCIe的配置空间为4KB:
0~256B是PCI空间(PCI Compatible Space),用于存放PCI Header和Capability。
PCIe Capability的起始位置为Capabilities Pointer位置为0x34 ,Next Capability 为0表示终止扫描PCIe Capability
256~4KB是PCIe扩展空间(Extended Configuration Space),用于存放Extended Capability。
Capability组织结构,如下所示:
Extended Capability组织结构,如下所示:
第一个Extended Capability,默认从100h偏移位置开始放置,Next Capability point 为0表示终止扫描PCIe extend Capability
配置空间:
常见的Capbilitie Register 和对应Capability ID,Capability ID:8bit PCI Express Extended Capability ID :16bit
Capbilitie Register | Capability ID |
Power Management Capabilities Register | 01h |
MSI Capability | 05h |
MSI -X Capability | 11h |
PCI Express Capability List Register | 10h |
Device Serial Number Extended Capability | 0003h |
Root Complex Link Declaration Extended Capabilit | 0005h |
Advanced Error Reporting Extended Capability | 0001h |
2.MSI Capability Header
3.MSI -X Capability Header
4.Device Serial Number Extended Capability
5.Root Complex Link Declaration Extended Capability
6.PCI Express Capability List Register
7.Advanced Error Reporting Extended Capability