Hi,<br><br>I have a custom board that&#39;s using powerpc 8544. I am trying to setup the external interrupts using the device tree and I am having no luck getting the interrupt.  I think my problem is that I don&#39;t have the hwirq to virq mapping correctly. We are using the freescale 8544ds as our base.  We have a PCI bus but we are not using PCIE.  In my kernel configuration, I have CONFIG_PCIEPORTBUS disabled.  The PCI interrupt is connected to IRQ0 and it is working fine.  But, my FPGA has three interrupts, IRQ1, IRQ2 and IRQ3.  I configure this in the device tree and I&#39;ve tried many different numbers for the interrupt. <br>
<br>In the KConfig for ppc85xx, the configuration is the following<br><br>config MPC85xx_DS<br>    bool &quot;Freescale MPC8544 DS&quot;<br>    #select PPC_I8259<br>    select DEFAULT_UIMAGE<br>    select FSL_PCIE<br><br>
config MPC85xx<br>    bool<br>    select PPC_UDBG_16550<br>    select PPC_INDIRECT_PCI<br>    select FSL_PCIE<br>    select SERIAL_8250_SHARE_IRQ if SERIAL_8250<br>    default y if MPC8540_ADS || MPC85xx_CDS || MPC8560_ADS \<br>
        || MPC85xx_MDS || MPC85xx_DS<br><br>My .config has the following configuration for PCI ( I am showing the PCI configuration b/c 8544 seems to have different interrupt setup when PCIE is configured)<br><br>CONFIG_ZONE_DMA=y<br>
# CONFIG_MPIC_WEIRD is not set<br># CONFIG_PPC_I8259 is not set<br>CONFIG_PPC_INDIRECT_PCI=y<br>CONFIG_FSL_SOC=y<br>CONFIG_FSL_PCIE=y<br>CONFIG_PCI=y<br>CONFIG_PCI_DOMAINS=y<br># CONFIG_PCIEPORTBUS is not set<br>CONFIG_PCI_DEBUG=y<br>
<br>My device tree has the following entry for my fpga:<br><br>CpuCpld\@f0000000{<br>                        compatible = &quot;MPC8544DS&quot;;<br>                        device_type = &quot;CpuCpld&quot;;<br>                        reg = &lt;f0000000 00000040&gt;;<br>
                        interrupts = &lt;41 2 42 2 43 2&gt;;<br>                        interrupt-parent = &lt;&amp;mpic&gt;;<br>};<br><br>My driver does the mapping to the virq:<br><br> np = of_find_node_by_type(NULL, &quot;CpuCpld&quot;);<br>
    if (!np) {<br>        ret = -ENODEV;<br>    }<br>    cpldCpuDrv-&gt;MateIntIrq = irq_of_parse_and_map(np, 0);<br>    cpldCpuDrv-&gt;FtaIrq =  irq_of_parse_and_map(np, 1);<br>    cpldCpuDrv-&gt;ExtractIrq =  irq_of_parse_and_map(np, 2);<br>
    cpldCpuDrv-&gt;XauiIrq =  irq_of_parse_and_map(np, 0);<br><br>    of_node_put(np);<br><br>Does anyone know what the virq should be for these external interrupts?<br>I&#39;ve tried specifying the actual irq numbers 1,2 and 3 and that doesn&#39;t work either.<br>
Is there some PCI configuration that&#39;s getting in the way?  I&#39;ve tried disabling the FSL_PCIE and I get the same behavior.<br><br>Any help or pointers will be appreciated.<br><br>Thanks<br>Nancy<br><br><br>