PCIe Leagcy,MSI/MSI-X中断详解
前言
PCIe有三种中断,分别为Leagcy Interupt,MSI Interupt,MSI-X Interupt,无论是什么应用,基本都需要中断,因此很有必要了解这几种中断的处理方式,这里会结合Windriver代码来说明,PCIE参考资料为Mindshare PCIe ,这本资料真心不错。
7 Series FPGA Support
7 Seriers FPGA PCIe IP核的Interupt 配置。可以看到3种中断方式都支持,但是Leagcy Interupt 只支持发送INTA Meassge 类型。
Leagcy Interupt
这是一种共享且为了兼容之前的PCI的中断方式。
-
共享
共享:意味着有多个设备都用同样的中断线,当这个中断线被Assert ,意味着这条中断线上至少有一个设备请求了中断信号,这时CPU必须有一种机制来判断到底是哪个设备请求了中断信号,在图中可以看到 Input 0 # 连线了3个INTA#。 -
兼容:
之前的PCI设备。
中断请求:Assert 中断信号线。
中断处理结束完: Dssert 中断信号线。
现在PCIe总线取消了这种Assert与Dssert的方式(电平),采用Message TLP消息包的方式来传递中断,但是又要向前兼容,故利用某些Message 类型,可以看到也就是这些Message Code不同从而代表不同的Leagcy Interupt类型,当这种包传递到PCIe t