☰
pci配置空间内容解析
2026/10/15 2:12:30 网站建设 项目流程

首先通过lspci 。查看硬件的总线BDF (总线号、设备号,功能号)

查看我们的硬件编码卡显示为:
2b:00.0 Processing accelerators: EMERGETECH Company Ltd. Seirios 2063 Video Codec (rev 01)

2b 总线号

00 设备号

0 功能号

2b:00.0 Processing accelerators: EMERGETECH Company Ltd. Seirios 2063 Video Codec (rev 01)
00: bd 1e 01 01 06 04 10 08 01 00 00 12 10 00 00 00
10: 04 00 00 ec 00 00 00 00 04 00 00 e8 00 00 00 00
20: 0c 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 ff 01 00 00

详细字段解析

1、设备识别信息(偏移量0x00-0x03)

偏移 十六进制 字段名 解析值 含义

0x00-0x01 be 1e Vendor ID(供应商ID) 0x1ebd 厂商编码,对应Emergetech company ltd

0x02-0x03 01 01 Device ID(设备ID) 0X0101 设备型号,对应Serios 2063 Video Codec.

2.命令与状态寄存器(偏移量0x04-0x07)

偏移 十六进制 字段名 解析值 含义

0x04-0x05 0604 command 0x0406 Bit 0=0(I/O空间:禁用),Bit 1=1

(内存空间:启用) Bit2=1(启用,总线主控) 这也是DMA的本质,不经过cpu 而直接进行DMA.

0x06-0x07 10 08 Status(状态) 0x0810Bit 4 = 1(Capabilities List:具备高级功能列表)Bit 11 = 1(Signaled Target Abort:曾经发过“目标中止”信号)

3. 设备分类 (偏移量 0x08 - 0x0B)
偏移十六进制字段名解析值含义
0x0801Revision ID0x01芯片修订版本号 1。
0x0900Programming Interface0x00编程接口标准,未定义特定接口。
0x0A00Sub-Class0x00子类代码,0x00 表示此类别的通用设备。
0x0B12Base Class0x12主类 = 处理加速器 (Processing Accelerators),这与lspci文本输出完全吻合。
4. 头标类型与缓存 (偏移量 0x0C - 0x0F)
偏移十六进制字段名解析值含义
0x0C10Cache Line Size16 字节系统缓存行大小,PCIe 通常要求设置为 16 字节 (0x10)。
0x0D00Latency Timer0PCI 延迟定时器,PCIe 设备该值无效。
0x0E00Header Type0x00普通 PCI 设备(非桥接器),且为单功能设备(最高位 Bit 7 为 0)。
0x0F00BIST0x00内建自测试,未启用。
5. 基址寄存器 (BAR) - 最关键的内存映射信息 (偏移量 0x10 - 0x27)

这里定义了设备内部寄存器/内存被映射到物理内存空间的位置,供 CPU 和驱动访问。

BAR偏移原始十六进制 (小端)解析后的地址/属性详细含义
BAR00x10-0x1304 00 00 ec0xEC00000032-bit 非预取内存空间。地址为0xEC000000。0x04末尾的 Bit 0 = 0 表示内存映射,Bit 2-1 = 0 表示 32-bit 宽度。
BAR10x14-0x1700 00 00 00未使用-
BAR20x18-0x1B04 00 00 e80xE800000032-bit 非预取内存空间。地址为0xE8000000。属性同 BAR0。
BAR30x1C-0x1F00 00 00 00未使用-
BAR40x20-0x230c 00 00 e0低 32 位 0xE0000000这是 64-bit 预取内存空间。末尾0x0C的 Bit 0=0(内存),Bit 1-2 = 0b10(64-bit),Bit 3=1(可预取)。BAR5 作为其高 32 位。
BAR50x24-0x2700 00 00 00高 32 位 0x00000000因此完整 64-bit 地址 =0x00000000E0000000。

该卡共使用了3 个有效的物理地址区域:0xEC000000、0xE8000000和0xE0000000(64位),分别用于控制寄存器、数据缓冲等不同用途。

6. 子系统与扩展 ROM (偏移量 0x28 - 0x33)
偏移十六进制字段名值含义
0x28-0x2B00 00 00 00CardBus CIS0x00000000未使用。
0x2C-0x2D00 00Subsystem VID0x0000未填写子系统供应商。
0x2E-0x2F00 00Subsystem ID0x0000未填写子系统 ID。
0x30-0x3300 00 00 00Expansion ROM0x00000000未映射扩展 ROM(无板载 Option ROM)。
7. 中断与 PCIe 能力指针 (偏移量 0x34 - 0x3F) —— 关键部分
偏移十六进制字段名值含义
0x3440Capabilities Pointer0x40这是最重要的 PCIe 证据。指向 PCIe 扩展功能链表的起始位置(即偏移量 0x40 处)。状态寄存器中的 Bit 4 也印证了这一点。
0x35-0x3B00 00 00 00 00 00 00保留-未使用,填充为 0。
0x3CffInterrupt Line0xFF中断线号。值为 0xFF 表示尚未被 BIOS/操作系统分配实际的中断号(通常系统启动后或驱动加载后会被重写)。
0x3D01Interrupt Pin0x01中断引脚。0x01 = INTA#(该设备使用主中断引脚 A,这是绝大多数单功能 PCIe 设备的标准配置)。
0x3E-0x3F00 00Min_Gnt / Max_Lat0x0000PCI 总线请求延迟,PCIe 设备该字段无效。

总结与补充说明

  1. 设备性质:这是一块标准的PCIe 视频编解码加速卡(处理加速器),拥有 3 个独立的内存映射空间(BAR0/BAR2/BAR4),用于驱动通过 MMIO 方式控制硬件编解码任务。

  2. 关于 Capabilities Pointer (0x40):由于偏移量0x34指向0x40,真正的 PCIe 能力集(包含链路速度、宽度、电源管理等)位于偏移量0x40之后。如果你想进一步查看这些细节,可以运行:

    sudo lspci -vv -s 2b:00.0 # 显示详细的能力集信息
  3. 中断机制:当前中断线为未分配状态(0xFF),但物理引脚定义为了 INTA#。当驱动加载(如vfio-pci或专用驱动)时,系统会通过 ACPI/APIC 为其动态分配一个真实的中断号,并替换掉0xFF。

  4. BAR4 的 64 位寻址:该设备映射了 64 位物理地址,说明其支持现代大内存寻址(可能在 4GB 以上物理内存区域有映射需求,但本例高 32 位为 0,实际落在了 4GB 以下的传统区域)。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询