ARCH=ppc -> ARCH=powerpc : help needed for dts file
Philippe De Muyter
phdm at macqel.be
Thu Mar 6 10:34:30 EST 2008
Hi Ben,
On Thu, Mar 06, 2008 at 07:14:28AM +1100, Benjamin Herrenschmidt wrote:
>
> On Wed, 2008-03-05 at 17:15 +0100, Philippe De Muyter wrote:
> >
> > I asked the guy who designed the hardware, and if I understand
> > correctly :
> >
> > - the i/o and memory resources of the pci device are connected to the
> > pci bus
> > - the interrupts are directly connected to the MPIC
> >
> > Can I describe that in the dts file ?
>
> Sure, you can describe pretty much any interrupt routing, provided that
> we know -how- (ie. where) they are connected. We also need to know the
They are connected directly to the pic-part of the mpc8540 just as
described in the .c file in the other mail.
> idsel of the devices. (The later we can deduce from lspci done in
> arch/ppc).
Does this (boot error messages in the not-working arch/powerpc kernel) :
PCI: Cannot allocate resource region 0 of device 0000:00:12.0
PCI: Cannot allocate resource region 0 of device 0000:00:12.1
PCI: Cannot allocate resource region 0 of device 0000:00:12.2
PCI: Cannot allocate resource region 1 of device 0000:00:12.2
or this (/proc/bus/pci in the working arch/pcc kernel)
Sorry, I am at home now and cannot access my board :)
or this (boot info messages from working arch/pcc kernel) :
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[55] MMIO=[9f7fd800-9f7fdfff] Max Packet=[2048] IR/IT contexts=[4/8]
...
Yenta: CardBus bridge found at 0000:00:12.0 [0000:0000]
...
Yenta TI: socket 0000:00:12.0, mfunc 0x00001b00, devctl 0x66
Yenta TI: socket 0000:00:12.0 probing PCI interrupt failed, trying to fix
Yenta TI: socket 0000:00:12.0 falling back to parallel PCI interrupts
Yenta TI: socket 0000:00:12.0 parallel PCI interrupts ok
Yenta: ISA IRQ mask 0x0000, PCI irq 53
...
pccard: PCMCIA card inserted into slot 0
cs: memory probe 0x80000000-0x9fffffff: excluding 0x80000000-0x807fffff 0x9f000000-0x9fffffff
pcmcia: registering new device pcmcia0.0
Yenta TI: socket 0000:00:12.1 parallel PCI interrupts ok
Yenta: ISA IRQ mask 0x0000, PCI irq 54
Socket status: 30000086
or this (U-boot info message) :
PCI Scan: Found Bus 0, Device 18, Function 0
00 12 104c ac46 0607 ff
PCI Scan: Found Bus 0, Device 18, Function 1
00 12 104c ac46 0607 ff
PCI Scan: Found Bus 0, Device 18, Function 2
00 12 104c 802a 0c00 00
and this (/proc/interrupts on a working system)
CPU0
25: 0 OpenPIC Level gfar_interrupt
26: 245 OpenPIC Level serial
27: 0 OpenPIC Level i2c-mpc
53: 18797 OpenPIC Level yenta, ide0
54: 1 OpenPIC Level yenta
55: 79 OpenPIC Level ohci1394
BAD: 0
help ?
Philippe
> > >
> > > Or are you doing some swizzling ?
> > >
> > > Also, I would need to know how those external IRQs are connected to
> > the MPIC,
> > > I don't have the spec of that chip here. Hrm. Somebody from
> > freescale can
> > > help him here ?
> > >
> > > It's also not clear to me what your interrupts 9 10 and 11 are since
> > you
> > > seem to only talk about PIRQA...D which is only 4 lines ..
> > >
> > > So at this stage, that's not enough information. We need to know
> > exactly how
> > > you have wired things on your board, and somebody from fsl needs to
> > tell
> > > me how the ExtIrq are routed to the MPIC on that guy.
> > >
> > > Once that's done, you seem to have grasped the interrupt map... for
> > any
> > > device or slot, you provide the mapping between idsel/pirq line on
> > one side,
> > > and mpic interrupt & sense on the other. For PCI, sense is always 1
> > for an
> > > mpic so you mostly have to check your actual MPIC source numbers.
> > >
> > > >From your .dts, I see you've been doing some swizzling of slots
> > using
> > > interrupts 1...4 ... do that correspond to EXTIRQ 5....8 ?
> > >
> > > Ben.
> > >
> > > >
> > > > /*
> > ************************************************************************ */
> > > >
> > --- ./arch/ppc/platforms/85xx/mpc85xx_ads_common.hbk 2008-01-24
> > 22:58:37.000000000 +0000
> > > > +++ ./arch/ppc/platforms/85xx/mpc85xx_ads_common.h 2008-02-20
> > 16:36:07.000000000 +0000
> > > > @@ -29,10 +29,17 @@
> > > > extern void mpc85xx_ads_map_io(void) __init;
> > > >
> > > > /* PCI interrupt controller */
> > > > +#ifdef CONFIG_MEIP_8540
> > > > +#define PIRQA MPC85xx_IRQ_EXT5
> > > > +#define PIRQB MPC85xx_IRQ_EXT6
> > > > +#define PIRQC MPC85xx_IRQ_EXT7
> > > > +#define PIRQD MPC85xx_IRQ_EXT8
> > > > +#else
> > > > #define PIRQA MPC85xx_IRQ_EXT1
> > > > #define PIRQB MPC85xx_IRQ_EXT2
> > > > #define PIRQC MPC85xx_IRQ_EXT3
> > > > #define PIRQD MPC85xx_IRQ_EXT4
> > > > +#endif
> > > >
> > > > #define MPC85XX_PCI1_LOWER_IO 0x00000000
> > > > #define MPC85XX_PCI1_UPPER_IO 0x00ffffff
> >
More information about the Linuxppc-dev
mailing list