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)的主要内容,如果未能解决你的问题,请参考以下文章

PCIE协议解析 synopsys IP 基本配置空间总结 读书笔记(14)

PCIE协议解析 synopsys IP loopback 读书笔记

PCIE协议解析 synopsys IP PCI Express Capability 读书笔记(13)

PCIE协议解析 synopsys IP Register配置空间 读书笔记

PCIE协议解析 synopsys IP Configuration Space Header 读书笔记

PCIE协议解析 synopsys IP Power Management Capability 读书笔记(10)