[Patch] io-apic-patch-2.1.84-F

MOLNAR Ingo (mingo@chiara.csoma.elte.hu)
Tue, 3 Feb 1998 18:20:58 +0100 (CET)


this is a patch based on vanilla 2.1.84. Many things have been redone, so
again a full Changes:

- generic cleanup suggested by Linus

- enables IO-APIC IRQs on 'safe' boards, adds black+white list

- max 8 pirq= entries now, see Documentation/IO-APIC.txt

- 8390.c SMP fixes (UP is tested as well)

- experimental code to glue PCI BIOS space with the mptable

the patch has been tested both UP and SMP, with the usual high-rate
disk/network IO load. No problems so far.

* NOTE * NOTE *
what i'm now most interested in is the experimental PCI code. With this
code we have a good chance to 'fix' all 'broken' boards, including the
Tyan board. It would be nice if people could test wether it boots with
'pirq=0'. If not, then please send full mptable output. As i dont have a
board that has 'pure' PCI IRQs connected to the IO-APIC, the glue code is
quite untested. All the code is supposed to be there, it might even work
out of box, and nothing is supposed to behave badly.

-- mingo

begin 664 io-apic-patch-2.1.84-F.gz
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
>_Q,M4JADI*V1%+WA4`;2#.0A8F?[?S(MN27Y;P``
`
end