PCIe的中断MSG学习,signal INTx中断

在PCIE中中断有2种方式,一种是MSI/MSIX使用TLP包来发送中断,另外一种是传统的信号线中断,这里叫做signal INTx,这里的INTx可以分为INTA INTB INTC和INTD,分为4种类型。
同时INTx中断有相关的寄存器定义:
Command Register (Offset 04h) 也就是配置空间的04h地址的第10bit。
是关闭中断功能的的bit位,如果我们需要INTx中断,必须将INT_EN=0, 这里的INT_EN是int_disable。


另外,INTx的类型可以在寄存器3Ch,来选择你需要使用是中断A,B,C还是D

此时通过PCIE Controller IP的sys_int引脚:(SII信号类别中的一个信号)当这个sys_int信号由0->1时,IP会产生assert_INTA的中断message给RC,当该信号由1->0时,会产生一个deassert_INTA的中断message给RC。

同时还有另外一个能力,当DUT作为RC,接受来自EP(VIP)的asseet_inta的msg包是,会触发dut本身的sii中断。radm_inta_asserted/radm_inta_deasseeted/
但是有一个额外的条件,就是这个int的msg的路由终点必须在接收到这个msg的dut中。


在上面的截图中,我们发现想要触发radm_inta_asserted的sii中断,我们必须收到msg_code=asseet_int的包,然后我们的hdr_type也就是路由类型必须是3’b100,这个值对应就是
image

1 个赞