How to genrate MSI interrupt to host from a PS-PCIE endpoint device
Hi, i'm using the zynqmpsoc's PS-PCIE as an ep device. i developed a linux driver on the host side.
On the ep side i ran the ep enable example standalone program.
My drvier on the host side can now read and write bar2 mapped memory on the ep side. it can also configure the PCIE DMA register through the bar0.
In my vivado design, i already enable the legcy inta and msi with 4 vector.
In my driver, i use fucntion pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_ALL_TYPES); to get a irq. and bind the irq to a callback function.
after that i enable the interrupt mask in the DMA_CHANNEL_PCIE_INTERRUPT_CONTROL register. Then i write the DMA_CHANNEL_PCIE_INTERRUPT_ASSERTregister to manully generate a dma interrupt for the pcie. and i checked the DMA_CHANNEL_PCIE_INTERRUPT_STATUS register and the software_int has been asserted.
But on the host size the MSI interrupt is never trigered!(i use cat /proc/interrupts to check this)
My question is:
Does the DMA/software asserted interrupt route to the host as an MSI interrupt automatically? or should i configure somewhere else?