Re: ISA slot detection on PCI systems?

Eric S. Raymond
2002-01-04T19:59:43Z

Vojtech Pavlik <vojtech@suse.cz>:
> You'll have to add motherboards that have no ISA slots, but onboard ISA
> devices to the list.
>
> I'd suggest looking at the output of /proc/bus/isapnp as well, because
> if it lists any devices, you certainly need ISA support.

OK, apparently some people are still confused about what I'm trying to do.
That's no surprise. It confuses *me* sometimes!

The issue is not ISA support, it is ISA *card* support. At the moment,
and for the foreseeable future, X86 implies ISA. Someday there may be
X86 motherboards without on-board ISA devices, but that's a few years off.
When that does happen, my logic will be something like this, where
PCI_BRIDGE is the test for whether PC reports an ISA bridge.

X86 and ((PCI and ISA_BRIDGE) or not PCI) => ISA

The "not PCI" case represents old ISA-only machines.

What I'm actually trying to do is determine whether the machine can
take ISA *cards*, and use that computation to suppress questions about
ISA cards (probed ones would still be found). For this, the logic
should look as follows, where:

* DMI means "reports DMI"
* DMI_ISA means "DMI reports ISA slots"
* BLACKLISTED means the motherboard is in an exception list of PCI-supporting,
DMI-supporting motherboards that falsely claim not to have ISA slots.

X86 and ((not PCI) or (not DMI) or DMI_ISA or BLACKLISTED => ISA_CARDS

This is one reason I want /sys/dmi -- because if I *don't* see it, that
means I should assume the machine is old enough to take ISA cards. This
filter should make the blacklist relatively small -- we wouldn't have to
track even PCI motherboards older than the DMI standard.

A key point is that as ISA phases out (near future now), the blacklist
will stop growing. Ballpark guess is it will top out below 150 entries.
--
Eric S. Raymond

If I were to select a jack-booted group of fascists who are
perhaps as large a danger to American society as I could pick today,
I would pick BATF [the Bureau of Alcohol, Tobacco, and Firearms].
-- U.S. Representative John Dingell, 1980