I'm trying to use MSI (Message Signaled Interrupts) on an FPGA configured as a PCIe Endpoint (EP). However, I'm running into an issue where my interrupt service routine is not being triggered.
Setup Details:
- I'm check (enable) the PCIe( msi_enable ).
- I'm calling the function responsible for enabling MSI on the EP side as below:
PCIX_EnableMSI(pci_sys,bus,dev,fn,PCIE_MSI_Lisr,&MSI_Vector);
- I’ve initialized the MSI .
- During the initialization phase, the FPGA triggers the MSI by writing to a specific register (which should raise the interrupt).
- On the Root Complex (RC) side, I expect the PCIE_MSI_Lisr function to handle the interrupt.
Problem:
- The PCIE_MSI_Lisr function is never called.
- No ACK is received, so it seems like the MSI isn't going through or being handled correctly.
Questions:
- Is there something specific I need to configure in the i.MX6 RC side to enable MSI from the EP?
- Are there any known issues with MSI handling on this platform?
Thanks in advance for your help!