Question about IRQs on MPC8540
Kumar Gala
galak at kernel.crashing.org
Thu May 25 05:40:08 EST 2006
On May 24, 2006, at 2:33 PM, Travis B. Sawyer wrote:
> I sent this to Kumar, should have sent directly to the list...
I guess I'll reply to both :)
> I'm porting our kernel base from 2.4->2.6 for our boards and an ODM
> board.
> The ODM board is board that is based off of the 8540 ADS.
>
> I'm having a bit of a problem understanding what went on btw 2.6.12
> and
> 2.6.16.16 wrt
> the 85xx interrupts.
>
> For example, in 2.6.12 I had external interrupts as follows:
> {0, MPC85xx_IRQ_EXT2, MPC85xx_IRQ_EXT3, 0}, /* The bridge */
> {MPC85xx_IRQ_EXT2, MPC85xx_IRQ_EXT3, 0, 0}, /*
> Cardbus */
> {MPC85xx_IRQ_EXT6, 0, 0, 0}, /* IDSEL 18
> -- QE */
> {MPC85xx_IRQ_EXT5, 0, 0, 0}, /* neo2 FE */
> {MPC85xx_IRQ_EXT9, 0, 0, 0}, /* neo3 FE
> egress */
> {MPC85xx_IRQ_EXT10, 0, 0, 0}, /* neo3 FE
> ingress IDSEL 21 */
> Where ext2 was 98, ext3 was 99, etc.
>
> With the newer 2.6.16.16 kernel, I see
> ext2 is 50, ext3 51, etc.
>
> mpc85xx_map_irq: res: 0 for idsel 16 pin 1 0:16.0
> mpc85xx_map_irq: res: 0 for idsel 16 pin 1 0:16.1
> mpc85xx_map_irq: res: 54 for idsel 18 pin 1 0:18.0
> mpc85xx_map_irq: res: 53 for idsel 19 pin 1 0:19.0
> mpc85xx_map_irq: res: 50 for idsel 16 pin 2 1:1.0
> mpc85xx_map_irq: res: 51 for idsel 16 pin 3 1:1.1
This is because we most likely removed the offset that was added to
the IRQs. This is done via MPC85xx_OPENPIC_IRQ_OFFSET, its really
intended to reserve a range for CPM and/or i8259 interrupts. On a
normal 8540 board setting it to 0 is fine.
> The problem is that when the PCI device drivers request the irq, it
> fails.
> Sandburst Thin Driver 1.1.0 May 24 2006 loaded
> Support available from http://www.sandburst.com
> sbthin: sb/ife0 (241/0) at 0xea3e0000, device 19
> sbthin_init_one:sb/ife0 request irq failed with -38
what is the IRQ its trying to request?
> and
>
> Yenta: Using CSCINT to route CSC interrupts to PCI
> Yenta: Routing CardBus interrupts to PCI
> Yenta TI: socket 0000:01:01.0, mfunc 0x00001000, devctl 0x66
> Yenta: request_irq() in yenta_probe_cb_irq() failed!
> Yenta TI: socket 0000:01:01.0 no PCI interrupts. Fish. Please report.
> Yenta: no PCI IRQ, CardBus support disabled for this socket.
>
>
> Can you give me some pointers where to look? I've been scouring the
> changes and can't
> really put my finger on it.
What does your map_irq function look like?
- k
More information about the Linuxppc-embedded
mailing list