Hello, Magnus I found a temp hacker to fix it. Socket Driver and ATA/IDE driver share the same IRQ 13. So I must modify the arch/ppc/kernel/irq.c: request_8xxirq(), it only allow pci-ide share the irq. It will not complain "lost interrupt".
BRs, Shuangjun >>From the code ide_cs.c in pcmcia package, the m8xx_pcmcia interrupt >>handler will call the ide_event() in ide_cs.c, this function does >>nothing with ide interrupt handler in the kernel. >> >>Here is Dan's ideas >>>See, this is why I changed the function name in the first place. >>>request_irq() assumes a PC-like interrupt structure, which doesn't work >>>on the MPC8xx internal interrupt controller. You need to add an >>>indirect function call to the 'md' structure that will install the >>>IDE interrupt handler. When you use the PCMCIA for ATA/IDE, you should >>>call a function that installs the PCMCIA interrupt vector. >> >>In drivers/block/ide-probe.c, >>init_irq() function has installed the IDE interrupt handler of IRQ 9 as >>ide_intr() >>In m8xx_pcmcia.c from the pcmcia package, Damm has installed the PCMCIA >>interrupt >>IRQ 13 as m8xx_interrupt(), so problem is: >>without 8259 controller in FADS board, how the m8xx_interrupt() route the >>interrupt >>event to the ide_intr(). No hardware triger the IRQ 9, no call ide_intr(), >>so the >>kernel think "lost interrupt", I guess. > > >Here is the result: >bash# cat /proc/inter* > CPU0 > 5: 2394 8xx SIU cpm > 9: 0 8xx SIU ide0 > 13: 9 8xx SIU m8xx_pcmcia > 15: 0 8xx SIU tbint >BAD: 0 ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
