i.MX8 PCIe legacy interrupt

Showing results for 
Search instead for 
Did you mean: 

i.MX8 PCIe legacy interrupt

Contributor I


     I am porting the new Qualcomm 6574 WLAN  driver into i.MX8, kernel is 4.9.69. This driver only support PCIe legacy interrupt. The kernel has successfully detect the PCIe device and called the probe function of the driver. But the ISR handler have never been called. I confirm that the MSI interrupt works well as other driver use it and works well.

    Attachment is the output of "cat /proc/interrupts". The dts description as below:

pciea: pcie@0x5f000000 {
        compatible = "fsl,imx8qm-pcie","snps,dw-pcie";
        --------------------base address and length of the PCIe controller---------------------
        reg = <0x0 0x5f000000 0x0 0x10000>, /* Controller reg */
              <0x0 0x6ff00000 0x0 0x80000>; /* PCI cfg space */
        reg-names = "dbi", "config";
        #address-cells = <3>;
        #size-cells = <2>;
        device_type = "pci";
        ranges = <0x81000000 0 0x00000000 0x0 0x6ff80000 0 0x00010000 /* downstream I/O */
              0x82000000 0 0x60000000 0x0 0x60000000 0 0x0ff00000>; /* non-prefetchable memory */
        num-lanes = <1>;

        #interrupt-cells = <1>;
        ------------------------A list of interrupt outputs of the controller. Must contain an entry for each entry in the interrupt-names property.
        interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
        ------------------------Must include the following entries:
                                ----------       - "msi": The interrupt that is asserted when an MSI is received
        interrupt-names = "msi";

         * Set these clocks in default, then clocks should be
         * refined for exact hw design of imx8 pcie.
        clocks = <&clk IMX8QM_HSIO_PCIE_A_MSTR_AXI_CLK>,
             <&clk IMX8QM_HSIO_PCIE_A_SLV_AXI_CLK>,
             <&clk IMX8QM_HSIO_PHY_X2_PCLK_0>,
             <&clk IMX8QM_HSIO_PCIE_X2_PER_CLK>,
             <&clk IMX8QM_HSIO_PCIE_A_DBI_AXI_CLK>;
        --------------------------Must include the following additional entries: "pcie_phy"---------------------------
        clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_per", "pcie_inbound_axi";

        interrupt-map-mask = <0 0 0 0x7>;
        interrupt-map =  <0 0 0 1 &gic 0 73 4>,
                 <0 0 0 2 &gic 0 74 4>,
                 <0 0 0 3 &gic 0 75 4>,
                 <0 0 0 4 &gic 0 76 4>;
        power-domains = <&pd_pcie0>;
        fsl,max-link-speed = <3>;
        hsio-cfg = <PCIEAX1PCIEBX1SATA>;
        hsio = <&hsio>;
        ctrl-id = <0>; /* pciea */
        cpu-base-addr = <0x40000000>;
        status = "disabled";

    how can i do to enable the PCIe legacy interrupt?

3 Replies

NXP TechSupport
NXP TechSupport

Hi Michael

i.MX8QM processors are not publicly released yet and its software still in development phase,

also kernel is 4.9.69 is not supported by nxp, one can try with L4.9.51 for i.MX 8QuadMax Beta2 

freescale\dts\boot\arm64\arch - linux-imx - i.MX Linux kernel 

Alpha / Beta BSPs for Microprocessors|NXP 

Support for not publicly released products is provided through ProSupport:

NXP Professional Services|NXP 

Also one can post question on meta-fsl-arm mailing list

The meta-freescale August 2018 Archive by thread 

Best regards
Note: If this post answers your question, please click the Correct Answer button. Thank you!

0 Kudos

Contributor I

Hi igorpadykov,

    I have compared the kernel L4.9.51 for i.MX 8QuadMax Beta2 with 4.9.69 currently I used. There is not obvious change about the pcie/irq part. Still thanks for your reply.

0 Kudos

NXP Employee
NXP Employee

Can you try it with disabled MSI interrupts?

In u-boot:

setenv mmcargs setenv bootargs console=${console} root=${mmcroot} pci=nomsi