PCIE协议解析 synopsys IP 基本配置空间总结 读书笔记(14)
Posted yijingjing17
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCIE协议解析 synopsys IP 基本配置空间总结 读书笔记(14)相关的知识,希望对你有一定的参考价值。
1.2 PCI configuration SPACE(256 BYTE)
其 中寄存器的Capability包括:
Ø PCI Configuration Space
Ø PM
Ø MSI
Ø MSI-X
Ø PCIE
Ø VPD
1.2.1 PCI Configuration Space
Byte Offset | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
0x00 | Device ID(ROS) | Vendor ID(ROS) | ||
0x04 | Status Register(ROS) | Command Register(RW) | ||
x08 | Class Code(ROS) | Revision ID | ||
0x0C | BIST(0x00)(RO) | Header Type(ROS) | Latency Timer(RO) | Cache Line Size(RW) |
0x10 | Base Address Register 0 | |||
0x14 | Base Address Register 1 | |||
0x18 | Base Address Register 2 | |||
0x1C | Base Address Register 3 | |||
0x20 | Base Address Register 4 | |||
0x24 | Base Address Register 5 | |||
0x28 | CardBus CIS Pointer RO(cs) | |||
0x2C | Subsystem ID RO(cs) | Subsystem Vendor ID RO(cs) | ||
0x30 | Expansion ROM Base Address (RW) | |||
0x34 | Reserved | CapPtr | ||
0x38 | Reserved | |||
0x3C | Max_Latency1 RO(cs) | Min_Grant1 RO(cs) | Interrupt Pin RO(cs) | Interrupt Line |
该部分的寄存器大部分为 只读寄存器,DBI可以进行设置的为蓝色的部分 寄存器:
其中,用户需要配 置的寄存器主要包括为以下两个:
1、Command Register(RW):
该寄存器为PCI设备的命令寄存 器,该寄存器在初始化时,其值为0,此时这个PCI设备除了能够接收 配置请求总线事务之外,不能接收任何存储器 或者I/O请求。系统软件需要 合理设置该寄存器之后,才能访问该设备的存储器或者I/O空间。在Linux系统中,设备驱动程 序调用pci_enable_device函数,使能该寄存器 的I/O和Memory Space位之后,才能访问该 设备的存储器或者I/O地址空间。
2、Base Address Register:
设置地址段。
1.2.2 1.2.2 PCI Power Management Capability Register
Byte Offset | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
| Power Management Capabilities (PMC)(RO(cs)) | Next Capability Pointer (RO(cs)) | Capability ID (0x01) (RO) | |
+0x4 | Data(RO) | PMCSR_BSE Bridge Extensions(RO) | Power Management Control Status Register (PMCSR)(RW) |
该部分只有PMCSR可以配置,配置的具体内容为配置PCIe的电源状态,默认为D0状态,可以不配置。
1.2.3 1.2.3 PF MSI Capability Register Details
MSI Capability被所有需要产生中断的PCIe 设备所需要,其Capability的 寄存器结构如下:
Byte Offset | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
| Message Control Register | Next Capability Pointer | Capability ID (0x05) | |
+0x4 | MSI Lower 32-bit Address Register | |||
+0x8 | MSI Upper 32-bit Address Register | |||
+0xC | Reserved | MSI Data | ||
+0x10 | Mask Bits Register | |||
+0x14 | Pending Bits Register |
该部分是MSI capability,控制PEIe的中断功 能,在Loopback阶段,系统可以不考虑中断的功能,所以该部分可以不使能,而该部分的默认状 态为disable,所以不用配置。
1.2.4 1.2.4 PF MSI-X Capability Register Details
MSI-X Capability作为是一种可选的capability, 与MSI capability一样都是中断控制的capability, 但是MSI-X要比MSI复 杂,对于某个具体的PCIe设备,仅支持一种报文,虽然两种capability可以存在同一个链表中,但是两者仅有一个可以使能。MSI-X Capability中断机制与MSI Capability的 中断机制类似。PCIe总线引出MSI-X机 制的主要目的是为了扩展PCIe设备使用中断向量的个数,同时解决MSI中断机制要求使用中断向量号连续所带来的问题。MSI中断机制最多只能使用32个 中断向量,而MSI-X可以使用更多的中断向量。
Byte Offset | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
| MSI-X Control Register | Next Capability Pointer | Capability ID (0x11) | |
+0x4 | MSI-X Table Offset (31:3) and BIR (2:0) | |||
+0x8 | MSI-X PBA Offset (31:3) and BIR (2:0) |
与MSI情况相同,默认情况下为disable,所以不需要配置。
1.2.5 1.2.5 PF PCI Express Capability Register Details
Core实 现了PCIe 3.0定义的所有Capability Structure,除了Root Port register。
Byte Offset | Byte 3 | Byte 2 | Byte 1 | Byte 0 |
| PCI Express Capabilities Register | Next Capability Pointer | Capability ID (0x10) | |
+0x4 | Device Capabilities | |||
+0x8 | Device Status | Device Control | ||
+0xC | Link Capabilities | |||
+0x10 | Link Status | Link Control | ||
+0x24 | Device Capabilities 2 | |||
+0x28 |
| Device Control 2 | ||
+0x30 | Link Status 2 | Link Control 2 |
Device Control :其中14:0的bit位是通过parameter 设置的,DBI只读。唯一能够通过DBI访问的为第15bit,该bit为的功能为:Initiate Function Level Reset 。
Device Contro2 :该部分的寄存器都是通过Parameter设置的,但是部分可以通过DBI访问,但是从loop back的角度来说,不需要改变。
1.3 1.3 总结
对于PCI configuration Space部分, 需要配置的寄存器只有两个:
1、Command Register(RW):
2、Base Address Register:
以上是关于PCIE协议解析 synopsys IP 基本配置空间总结 读书笔记(14)的主要内容,如果未能解决你的问题,请参考以下文章
PCIE协议解析 synopsys IP Power Management Capability 读书笔记(10)
PCIE协议解析 synopsys IP loopback 读书笔记
PCIE协议解析 synopsys IP MSI Capability 读书笔记(11)
PCIE协议解析 synopsys IP PCI Express Capability 读书笔记(13)