PCIE协议解析 synopsys IP MSI Capability 读书笔记(11)

Posted yijingjing17

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCIE协议解析 synopsys IP MSI Capability 读书笔记(11)相关的知识,希望对你有一定的参考价值。

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



以下内容来自王齐老师的博客

MSICapability结构共有四种组成方式,分别是3264位的Message结构,32位和64位带中断Masking的结构。MSI报文可以使用32位地址或者64位地址,而且可以使用Masking机制使能或者禁止某个中断源。MSI Capability寄存器的结构如6‑1所示。

 

 

·        CapabilityID字段记载MSI Capability结构的ID号,其值为0x05。在PCIe设备中,每一个Capability结构都有唯一的ID号。

·        NextPointer字段存放下一个Capability结构的地址。

·        MessageControl字段。该字段存放当前PCIe设备使用MSI机制进行中断请求的状态与控制信息,如6‑1所示。

 6‑1 MSI Cabalibities结构的Message Control字段



·        MessageAddress字段。当MSI Enable位有效时,该字段存放MSI存储器写事务的目的地址的低32位。该字段的31:2字段有效,系统软件可以对该字段进行读写操作;

         该字段的第1~0位为0

·        MessageUpper Address字段。如果64 bit Address Capable位有效,该字段存放MSI存储器写事务的目的地址的高32位。

·        MessageData字段,该字段可读写。当MSI Enable位有效时,该字段存放MSI报文使用的数据。该字段保存的数值与处理器系统相关,在PCIe设备进行初始化时,处理器           将初始化该字段,而且不同的处理器填写该字段的规则并不相同。如果Multiple Message Enable字段不为0b000(即该设备支持多个中断请求时)PCIe设备可以通过改           变Message Data字段的低位数据发送不同的中断请求。

·        MaskBits字段。PCIe总线规定当一个设备使用MSI中断机制时,最多可以使用32个中断向量,从而一个设备最多可以发送32种中断请求。Mask Bits字段由32位组成,其            中每一位对应一种中断请求。当相应位为1时表示对应的中断请求被屏蔽,为0时表示允许该中断请求。系统软件可读写该字段,系统初始化时该字段为全0,表示允许所有           中断请求。该字段和Pending Bits字段对于MSI中断机制是可选字段,但是PCIe总线规范强烈建议所有PCIe设备支持这两个字段。

·         PendingBits 字段。该字段对于系统软件是只读位, PCIe 设备内部逻辑可以改变该字段的值。该字段由 32 位组成,并与 PCIe 设备使用的 MSI 中断一一对应。该字段需要                与 Mask Bits 字段联合使用。          当 Mask Bits 字段的相应位为 1 时,如果 PCIe 设备需要发送对应的中断请求时, Pending Bits 字段的对应位将被 PCIe 设备的内部逻辑置 1 ,此时 PCIe 设备并不会使用 MSI 报文          向中断控制器提交中断请求;当系统软件将 Mask Bits 字段的相应位从 1 改写为 0 时, PCIe 设备将发送 MSI 报文向处理器提交中断请求,同时将 Pending Bit 字段的对应位清             零。在设备驱动程序的开发中,有时需要联合使用 Mask Bits Pending Bits 字段防止处理器丢弃中断请求 [2]

以上是关于PCIE协议解析 synopsys IP MSI Capability 读书笔记(11)的主要内容,如果未能解决你的问题,请参考以下文章