mptable irq info wrong on Tyan S5112, need advice
From: Rod Morison
Date: Thu Jan 26 2006 - 03:33:09 EST
I'm diagnosing a PCI IRQ problem on a Tyan S5112 motherboard. I pushed
it back to where the kernel builds it's IRQ maps in
arch/i386/kernel/mpparse.c (2.4.32 kernel). (The Tyan S5112 has a
seperate IO APIC for it's PCI-X bus.)
What I found was for a board on the PCI-X bus the MP data read in
mpparse.c says that the board has IRQ 16 on APIC #2. By trial and
error I've determined that in fact the board is on IRQ 3 on APIC #3.
(APIC IDs are the physical IDs reported from the APIC registers: #2 ==
first APIC, #3 == second APIC.)
Questions/advice:
1. I infer that the motherboard bios has a bug in it's irq map build.
Is this a reasonable conclusion?
2. I see various hacks in pci-irq.c to patch up erroneous IRQ
assignments. However, it's not clear to me that the code in
pci-irq.c:pcibios_lookup_irq() will work with IO APICs enabled. What's
the best way to write a patch for this motherboard, to do the IRQ
remapping discovered above? A pointer to an example in the kernel
source would be helpful; I haven't stumble on such yet.
3. The board I'm debugging has several distinct functions and
associated drivers and IRQ service routines. The interrupts for the
different functions are asserted on different PCI pins: A, B & C. Yet,
all the interrupts come in on the same IRQ I discovered above, namely
IRQ 3 on APIC #3. Is this board just or-ing all the interrupt pins
together, or do IO APICs handle this situation differently? (I've not
found any good docs or refs on PCI pin mapping for IO APIC based
boards.)
Any help/advice/links are appreciated.
Rod
rod@xxxxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/