使用MSI-X机制可以很好地解决该问题,在MSI-X Capability结构中,每一个中断向量使用独立的Meaasge Address和Message Data字段,从而中断控制器可以更加合理的为PCIe设备分配中断资源。 与MSI Capability寄存器相比,MSI-X Capability寄存器使用一个结构体来专门存放“Message Address”字段和“Message Data”字段,而不是将这...
(entry->msi_attrib.is_msix) { void __iomem *base = pci_msix_desc_addr(entry); // 将message address 和 message data 写入 MSIX table writel(msg->address_lo, base + PCI_MSIX_ENTRY_LOWER_ADDR); writel(msg->address_hi, base + PCI_MSIX_ENTRY_UPPER_ADDR); writel(msg->data, base ...
但是PCIe设备在提交MSI中断请求时,都是向MSI/MSI-X Capability结构中的Message Address的地址写Message Data数据,从而组成一个存储器写TLP,向处理器提交中断请求。 有些PCIe设备还可以支持Legacy中断方式[1]。但是PCIe总线并不鼓励其设备使用Legacy中断方式,在绝大多数情况下,PCIe设备使用MSI或者MSI/X方式进行中断请求。
MSI的本质就是memory write transaction MSI寄存器介绍 64-bit MSI Capability Register Message Control:用于打开或关闭MSI/MSI-X功能。通过设置消息控制寄存器,可以启用或禁用设备发送MSI/MSI-X中断消息。 Message Address & Data:用于指定MSI/MSI-X中断对应的消息地址和消息数据。设备通过设置消息地址和数据寄存器来指定...
如下图是x86处理器中Message Address和Message Data字段的格式,里面包含了CPU的ID号Destination ID以及中断向量号Vector; MSI/MSI-X中断TLP报文到达RC时,发现TLP的目的地址在FSB Interrupts存储器空间中,则将PCIe总线的存储器写请求转换为Interrupt Message总线事务,并在FSB总线上广播,FSB总线上的CPU根据消息中CPU的ID号...
Message Control字段。该字段存放当前PCIe设备使用MSI机制进行中断请求的状态与控制信息,如表6‑1所示。 表6‑1MSI Cabalibities结构的Message Control字段 Message Address字段。当MSI Enable位有效时,该字段存放MSI存储器写事务的目的地址的低32位。该字段的31:2字段有效,系统软件可以对该字段进行读写操作;该字段...
Message Address Register for MSI设定中断目标地址,Destination ID指明处理中断的CPU Core,RH和DM属性控制中断转发。Message Data Register for MSI包含Vector和Delivery Mode字段,用于定义中断类型和处理方式。Mask Bits Register for MSI屏蔽特定中断,系统软件通过修改对应位发送中断。MSI-X解决了MSI设计...
在arm64中,MSI/MSI-X对应的是LPI中断, 在之前的文章【ARM GICv3 ITS介绍及代码分析】有介绍过,外设通过写GITS_TRANSLATER寄存器,可以发起LPI中断, 所以相应的,如果在没有使能SMMU时,MSI的message address指的就是ITS_TRANSLATER的地址。 2. MSI/MSI-X capability ...
通过对照PCIe协议,可以得知MSI-X中断向量表地址为0xf0203000,PBA地址为0xf0202000。访问向量表内容,可获取每个中断的message address。在Linux 4.14内核下,EP的HOST驱动在探针过程中会调用pci_alloc_irq_vectors()函数来初始化并申请中断,其主要流程涉及中断类型指定、中断向量表初始化、平台与架构...
1、MSI:消息中断 2、INTx:引脚中断 真正的PCIe设备:必须使用MSI发送中断,可选择性地支持INTx消息。 PCI设备:必须支持INTx消息 PCIE的理论带宽 Gen2单向链路速率5Gbps 1、 使用8B/10B编码,产生20%的数据开销 2、 理论带宽=链路速率 80% 通道数 3、 对于单通道: – Gen1: 2.5Gbps0.8=250MBps – Gen2: 5...