Re: [PATCH 4/4] ARM: dts: add PCI to the Gemini DTSI

Hans Ulli Kroll
2017-02-06T09:55:09Z

Hi Linus,

On Sun, 5 Feb 2017, Linus Walleij wrote:

> On Sun, Feb 5, 2017 at 11:03 AM, Hans Ulli Kroll
> <ulli.kroll@googlemail.com> wrote:
>
> > We need to the remove hwirq 26-28 from DT.
> > First one will print this warning while boot.
> >
> > irq: type mismatch, failed to map hwirq-26 for /soc/interrupt-controller@48000000!
> (...)
> > - interrupts = <8 IRQ_TYPE_LEVEL_HIGH>, /* PCI A */
> > - <26 IRQ_TYPE_LEVEL_HIGH>, /* PCI B */
> > - <27 IRQ_TYPE_LEVEL_HIGH>, /* PCI C */
> > - <28 IRQ_TYPE_LEVEL_HIGH>; /* PCI D */
> > + interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; /* chained irq PCI A-D */
>
> Sure I can remove them ... just found them in the irqs.h file and thought it
> made sense to add them. I'll just cut them.
>
> Since there is actually an internal IRQ controller in the host controller
> cascading the four PCI child IRQs that we model as an irqchip, I don't
> really see why they have these "PCI B-D" IRQs... anyone has a guess?

I think they used some other IP vendor.

from my IB 4220 sources.

#define IRQ_PCI_INTA PCI_IRQ_OFFSET + 0
#ifndef CONFIG_DUAL_PCI
#define IRQ_PCI_INTB PCI_IRQ_OFFSET + 1
#define IRQ_PCI_INTC PCI_IRQ_OFFSET + 2
#define IRQ_PCI_INTD PCI_IRQ_OFFSET + 3
#else
#define IRQ_PCI_INTB 27
#define IRQ_PCI_INTC 28
#define IRQ_PCI_INTD 29
#endif

CONFIG_DUAL_PCI is never used
IRQ_PCIB - IRQ_PCID or IRQ_PCI_INTB - IRQ_PCI_INTD are also never used.

You can download my original NAS 4220 here
http://ulli-kroll.de/gemini/kernel.tgz

Greetings
Hans Ulli Kroll