Altera_Forum
Honored Contributor
10 years agoPCIe Interrupts from Qsys/Arria II GX
I'm feeling a bit lost trying to generate interrupts on the host PC over PCI Express. I'm using IP Compiler for PCI Express (13.1) on an Arria II GX togenerate an Avalon-MM master for Qsys. I've pored over the documentation, and have found two different ways that look like they'll generate an interrupt on the host (asserting the rxm_irq lines on the interrupt receiver port, and writing to the mailboxes through the CRA). Poking around at the IP there seems to be a third undocumented mechanism when you check "Enable Exporting User MSI Interface".
For my application,I've got 7 possible interrupt signals, numbered 1-7. I'd like to interrupt the host PC and notify it that the interrupt has happened. Depending on what caused the interrupt, there are two different mechanisms that may deassert it, with registers in totally different address spaces. This disinclines me from using the Avalon interrupt mechanism, since it requires that you be able to bind the deassertion of the interrupt to a write on a single slave interface (though I don't know the consequences of violating that rule). That leaves CRA mailbox writes and the mysterious "User MSI Interface"export path. Does anyone have any advice on what the differences here are? The best choice for combination of documentation and suitability seems to the the CRA mailbox, but I'm not particularly clear what actually happens on the host side when I write it. Thanks, Rob