MSI Interrupts with Qsys
I am using a Stratix IV FPGA development kit. I have instantiated an IP Compiler PCIe core along with some custom logic. Since I'm using Qsys, I'm using the CRA port connected to BAR3 to configure interrupt behavior. For some reason, when I set the physical RxmIrq line and/or write to a A2P mailbox register, neither results in a call to my interrupt handler on the host. However, when I use the physical msi_interface to drive msi_app_req high, I do see my interrupt handler on the host called. However, it's always called MORE THAN ONCE. When I attempt to generate 3 interrupts upstream, I'm ending up with between 15 and 18 interrupts. I have wrestled with this for months now, and it seems I'm stuck with this functionality. Since I'm using Qsys and the Avalon MM interface, I believe the documentation tells me to use the RxmIrq lines or the mailbox register. I have not been able to get either of those to work AT ALL. Again, the msi_interface signals do work, but the documentation seems to suggest that interface is for Avalon ST use instead of Avalon MM. I'm really confused here and any help would be greatly appreciated!!! I am able to read BAR3 and see the interrupt enable bits set at address 0x50, but still I see NO INTERRUPTS when writing a mailbox register or setting the RxmIrq line high. This core doesn't seem to work as advertised.