AnsweredAssumed Answered

Failed to receive MSI interrupt in T1024 PCIE3 controller

Question asked by abinesh selvaraj on Apr 17, 2017
Latest reply on Apr 23, 2017 by ufedor


In our custom hardware board (which is based on T1024-RDB), the PCIE endpoint device is connected in PCIE3 controller (SD_TX1_P) of T1024 SoC. The PCIE endpoint will generate an interrupt as an MSI message to PCIE3. The endpoint device is detected in the bus 1,device 0, function 0 in the T1024 SoC. The MSI is enabled for this domain/bus/function through the kernel routine (pcie_enable_msi ()).

The interrupt number of this PCIE endpoint is registered to the kernel using "request_irq ()" kernel routine. Still, the interrupt handler is not getting called, when the MSI interrupt is generated from the endpoint.

Even the interrupt count is not incremented in the /proc/interrupts in Linux.

But, the interrupt status is pending in the PCIe endpoint. We have confirmed this by dumping the PCIE configuration header (Command/Status Register). The MSI is enabled and the MSI address is configured in the endpoint device.

Please point out, whether any other changes is required in kernel source /device tree/ to enable MSI in PCIE3 controller.

We are using QorIQ SDK 2.0