IO-Apic and Broken MP-BIOS?

Carsten Gross (carsten@sol.wohnheim.uni-ulm.de)
Sat, 7 Feb 1998 15:50:22 +0100 (MET)


Hello Linux SMP developers (i386-arch)!

I'm owner of a Tyan Tomcat II Pentium dual processor board. Linux 2.1.84
boots with the pirq option, but 2.1.85 won't boot with the same pirq option
and hangs during scsi controller initialization (first initialized pci
device).

The boards APIC Controller is blacklisted, but please have a look at
the following point:

In my opinion the MP BIOS is not broken. Just compare the output of /proc/pci
and the boot messages:

[part of] cat /proc/pci
Bus 0, device 19, function 0:
Multimedia video controller: Brooktree Bt848 (rev 17).
Medium devsel. Fast back-to-back capable. IRQ b. Master Capable.
Latency=32. Min Gnt=16.Max Lat=40.
Prefetchable 32 bit memory at 0xe0805000 [0xe0805008].
Bus 0, device 18, function 0:
SCSI storage controller: Adaptec AIC-7881U (rev 0).
Medium devsel. Fast back-to-back capable. IRQ a. Master Capable.
Latency=32. Min Gnt=8.Max Lat=8.
I/O at 0x6000 [0x6001].
Non-prefetchable 32 bit memory at 0xe0804000 [0xe0804000].
Bus 0, device 17, function 0:
VGA compatible controller: Matrox Millennium (rev 1).
Medium devsel. Fast back-to-back capable. IRQ 9.
Non-prefetchable 32 bit memory at 0xe0800000 [0xe0800000].
Prefetchable 32 bit memory at 0xe0000000 [0xe0000008].
[... isa bridge and so on ...]

Now a small part of the boot messages during boot of 2.1.84:
enabling Symmetric IO mode ... ...done.
init IO_APIC IRQs
WARNING: MP BIOS says PIRQ0 is redirected to 20, suspicious.
disabling PIRQ0
WARNING: MP BIOS says PIRQ1 is redirected to 19, suspicious.
using PIRQ1 -> IRQ 11
WARNING: MP BIOS says PIRQ2 is redirected to 18, suspicious.
using PIRQ2 -> IRQ 10
WARNING: MP BIOS says PIRQ3 is redirected to 17, suspicious.
using PIRQ3 -> IRQ 9
IO-APIC pin 20, 21, 22 not connected.
nr of MP irq sources: 21.
nr of IOAPIC registers: 24.

The System works okay with this configuration with kernel 2.1.84.

If I compare PCI bus/device/functions from proc/pci with PIRQ settings from
Bios, I get the following:

PIRQ0 is redirected to pci bus 0, device 20 (empty PCI slot 0), not available.

PIRQ1 is redirected to pci bus 0, device 19 (Brooktree848 card using interrupt
0x0b in PCI slot 1)

PIRQ2 is redirected to pci bus 0, device 18 (Adaptec SCSI controller using
interrupt 0x0a in PCI slot 2)

PIRQ3 is redirected to pci bus 0, device 17 (Matrox Millenium I using interrupt
9 in PCI slot 3).

IMHO the MP-BIOS returns a PIRQ <-> Bus/Device map? I don't know anything
about MP BIOS programming, but this one can't be random ;-)

Bye and thanks a lot for your great work

Carsten

-- 
Carsten Gross		Internet: carsten@sol.wohnheim.uni-ulm.de
Wohnheim Heilmeyersteige:  Sebastian Kneipp Weg 6, 89075 Ulm

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu