pcie type0 header 按地址解析
时间: 2023-09-16 20:07:12 浏览: 135
pcie linux 驱动分析 框架分析
PCIe Type 0 Header 是 PCI Express 协议中的一个数据结构,用于描述 PCIe 设备的基本信息和特性。该数据结构的大小为 64 字节,包括以下字段:
1. Vendor ID(2 字节):制造商 ID,用于标识设备的制造商。
2. Device ID(2 字节):设备 ID,用于标识设备的类型。
3. Command(2 字节):命令寄存器,用于控制设备的状态。
4. Status(2 字节):状态寄存器,用于反映设备的状态。
5. Revision ID(1 字节):设备的版本号。
6. Class Code(3 字节):设备的类别码,用于标识设备的类型和功能。
7. Subclass(1 字节):设备的子类别码,用于进一步细分设备的类型和功能。
8. Prog IF(1 字节):设备的接口类型,用于标识设备与主机之间的接口类型。
9. Header Type(1 字节):PCIe Type 0 Header 的类型,固定为 0。
10. BIST(1 字节):自检测试寄存器,用于测试设备的功能。
11. BAR0~5(6 个 4 字节):Base Address Register,用于指定设备的 I/O 空间或内存地址范围。
12. Cardbus CIS Pointer(4 字节):Cardbus CIS(Card Information Structure)指针,用于指向卡片信息结构。
13. Subsystem Vendor ID(2 字节):子系统制造商 ID,用于标识设备所属的子系统。
14. Subsystem Device ID(2 字节):子系统设备 ID,用于标识设备所属的子系统类型。
15. Expansion ROM Base Address(4 字节):扩展 ROM 的起始地址,用于指定设备的扩展 ROM 区域。
16. Reserved(1 字节):保留字段。
17. Interrupt Line(1 字节):中断线路号,用于指定设备的中断线路。
18. Interrupt Pin(1 字节):中断引脚号,用于指定设备的中断引脚。
19. Min_Gnt(1 字节):最小访问时间,用于指定设备的最小访问时间。
20. Max_Lat(1 字节):最大延迟时间,用于指定设备的最大延迟时间。
按照地址解析 PCIe Type 0 Header,可以将其划分为多个字段,每个字段的大小和位置都是固定的。其中,前 12 个字段的大小为 2 字节或 1 字节,后面的 8 个字段的大小为 4 字节或 1 字节。因此,可以根据地址访问相应的字段,从而获取设备的基本信息和特性。
阅读全文