4.1.13: pci_enable_msi_range returns 1 (and not 8)
Hello,
I'm using a PCIe FPGA firmware that supports 8 MSI interrupts. But calling to: pci_enable_msi_range(pDev, 1, 8) returns 1. Also checked that in kernel configuration, CONFIG_PCI_MSI=y Is it only a firmware problem ? Thank you, Zvika |
Hello,
After adding CONFIG_IRQ_REMAP to the kernel, calling to: pci_enable_msi_range(pPciDev, 1, 4), returned 4. Then I called to: devm_request_irq(&pPciDev->dev, pPciDev->irq, Irq0Handler, 0, DEVICE_NAME, 0); ... devm_request_irq(&pPciDev->dev, pPciDev->irq+3, Irq3Handler, 0, DEVICE_NAME, 0); to connect an handler to each of the IRQs. But there is still a problem. For 2 different interrupts, Irq0Handler is called. Is there a way to make sure my FPGA creates 2 different MSI interrupts ? If CONFIG_IRQ_REMAP is mandatory, seems strange I had to add it. I think it should be in the defconfig. Thank you, Zvika |
Hello,
The cause to the problem - FPGA design. It seems that in ALTERA (Arria 5 gx), in order to have more than one MSI (or MSI-X) interrupts, the FPGA has to contain user logic to handle it. The PCIe core is not enouth. Thank you, Zvika |
All times are GMT -5. The time now is 02:29 AM. |