PCIE协议解析synopsysIPPCIExpressCapability读书笔记
(13)
1.1.1PF PCI Express CapabilityRegister Details
Core实现了PCIe 3.0定义的所有Capability Structure,除了Root Port register。
Byte Offset Byte 3Byte 2Byte 1Byte 0
PCI Express Capabilities Register Next Capability
Pointer
Capability ID (0x10)
+0x4Device Capabilities
+0x8Device Status Device Control +0xC Link Capabilities
+0x10Link Status Link Control +0x24Device Capabilities 2
+0x28Device Control 2 +0x30Link Status 2Link Control 2
ØPCI ExpressCapability Version:存放PCIe设备的版本号,PCIe总线规范1.x,该字段对应值为0x01。
PCIe总线规范2.x,该字段对应值为0x02
ØDevice/Port Type:000b:PCIe endpoint
0001b:legacy PCIe endpoint
针对EP模式下,其他都不⽀持
ØSlot Implemented:0:PCIe设备  1:代表当前端⼝为PCIe插槽
ØInterrupt MessageNumber:当PCIe Capability结构的Slot Statue寄存器或者Root Status寄存器的状态发⽣变化时,该PCIe设备可以通过MSI/MSI-X中断机制向处理器提交中断请求。该字段存放MSI/MSI-X中断机制需要的Message Data字段。
ØMax_Payload_Size Supported:该字段决定TLP报⽂可能使⽤的最⼤有效负载,PCIe总线规定Max_Payload_Size参数最⼤值为4096B,但是许多PCIe设备并不⼀定⽀持这么⼤的有效负载。实际应⽤中,⼀个PCIe设备⽀持的Max_Payload_Size参数通常为128B、256B、512B。
Max_Payload_Size Supported字段表⽰该PCIe设备允许使⽤的Max_payload_szie参数。在Device Control寄存器中,还有⼀个Max_payload_Size参数,该字段可以由软件设置,表⽰实际使⽤的Max_Payload_Size参数⼤⼩。
Bit[2:0]⽀持的Max_Payload_Size
0b000128B
0b001256B
0b010512B
0b0111024B
0b1002048B
0b1014096B
实际中,Max_Payload_Size Supported参数和Max_Payload_Size参数值可能不同,前者为PCIe设备能够⽀持的最⼤的Payload的⼤⼩,⽽后者是链路两端的PCIe设备进⾏协商,确定的实际使⽤值。
ØPhantom FunctionSupported:Core不⽀持
ØExtended Tag FieldSupported:为1时:TLP的Tag字段为8bit,为0时:表⽰Tag字段为0bit。
ØCorrectable ErrorReporting Enable:为1是表⽰PCIe设备可以发出ERR_CORMessage报⽂。否则不⽀持。
ØNon-Fatal ErrorReporting Enable:为1是表⽰PCIe设备可以发出 Non-Fatal Message报⽂。否则不⽀持。
ØFatal ErrorReporting Enable:为1是表⽰PCIe设备可以发出ERR_ Fatal Message报⽂。否则不⽀持。
:为1是表⽰PCIe设备可以发出Unsupported RequestReporting Enable报⽂。否则不⽀持。
ØEnable RelaxedOrdering:在CORE⽆效
ØMax_Payload_Size:PCIe设备根据DeviceCapability寄存器的Bit[2:0]字段设置PCIe设备的TLP的最⼤payload。系统软件根据PCIe链路两端的实际情况,确认该字段的值。但是该值不能⼤于Device Capability寄存器的“Max_payload_sizeSupport”字段。PCIe设备发送TLP时,其最⼤的Payload不能⼤于Max_Payload_Size;当PCIe设备接收TLP时,必须能够处理⼩于该字段的TLP,⽽⼤于该字段的TLP将被认为错误报⽂。
ØExtended Tag FieldEnable :该位为1:发送端可以使⽤8bit的Tag字段,该位为0时,使⽤5bit的字段。
ØPhantom FunctionEnable:该位为1:使能Phantom Function。
ØAUX Power PM Enable:该位为1:PCIe设备可以使⽤总线提供的辅助电源。
ØEnable No Snoop:该位为1:PCIe设备可以发⽣TLP时,该TLP的Attribute字段可以设置为No;该位为:TLP的Attr字段不能设置为NO Snoop。
ØMax_Read_Request_Size:该字段记录在⼀个PCIe设备中,存储器读请求TLP可以请求的最⼤数据区域。当PCIe设备发送存储器读请求TLP时,该TLP所请求的数据⼤⼩不能超过Max_Read_Request_Size。
ØInitiate FLR:该位为1:启动functionLevel Reset
pending
ØCorrectable ErrorDetected:该位为1表⽰PCIe检测到CorrectableError,对该位写1将清除此位。
ØNon-Fatal Errordetected:该位为1表⽰PCIe检测到Non-FatalError,对该位写1将清除此位。
rror Detected:该位为1表⽰PCIe检测到Fatal Error ,对该位写1将清除此位。
ØUnsupported RequestDetected:该位为1表⽰PCIe检测到不⽀持的报⽂,对该位写1将清除此位。
ØAux Power Detected:当PCIe设备检测到辅助电源的存在时,⽽且如果该设备需要使⽤辅助电源,则该位置1
ØTransaction Pending:对于EP⽽⾔,该位为1表⽰当前的PCIe设备发送了⼀个Non-Posted的数据请求,但是没有收到完成的报⽂应答;对于RC和Switch⽽⾔,该位为1表⽰RC和Switch⾃⾝发送了⼀个Non-Posted的数据请求,但是没有收到完成的报⽂应答。
ØMax Link Speeds:表⽰PCIe链路⽀持2.5GT/s,0b0010表⽰PCIe链路⽀持5.0GT/s,0b0100表⽰PCIe链路⽀持8GT/s.
ØMaximum Link Width:设备⽀持的最⼤链路宽度。000001:表⽰⽀持x1的PCIe链路。000010:表⽰⽀持x2的PCIe链路。000100:表⽰⽀持x4的PCIe链路。001000:表⽰⽀持x8的PCIe链路。001100:表⽰⽀持x12的PCIe链路。010000:表⽰⽀持x16的PCIe链路。100000:表⽰⽀持x32的PCIe链路。
ØActive State Link PMSupport:0b00和0b10为系统保留字段。当该字段为0b01时,表⽰ASPM⽀持L0s状态;当该字段为0b11时,表⽰ASPM⽀持L0s和L1状态。PCIe设备除了⽀持PCI PM电源管理⽅式之外,还执⾏ASPM机制进⾏电源管
理。ASPM机制是CPIe设备进⾏的主动电源管理⽅式,与系统的软件没有直接的联系。
ØL0s Exit Latency 和L1 Exit Latency:定义了PCIe设备从L0s和L1状态退出的最⼩延时。
ØPort Number:如果多端⼝的RC和Switch⽀持多个下游的端⼝,则使⽤该字段对这些端⼝进⾏编号。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。