Subject: -current bha driver attaches PCI device multiple times (as ISA)
To: None <current-users@NetBSD.ORG>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: current-users
Date: 10/07/1996 18:06:42
I'm using several machines with BT-596c PCI SCSI controllers.
These controllers are _all_ configured with ISA-compatible ioports.
(That was how they were shipped; it was necessary in 1.2, which
configured the PCI bha as an ISA-attach "bt" device).
I'm using a config based on GENERICOTHER.
The -current bha driver matches and attaches the 956-C as a PCI device
at bha2. Well and good.
Then the ISA-attach bha probes the ISA-compatible registers, finds the
(same) PCI card at the ISA-compatible location, and configures it as
bha0, and attaches a scsibus there. Ouch. The kernel has configured
two drivers for a single SCSI adaptor. The kernel hangs trying to
chroot to /dev/sd0a (hich is presumably on the ``isa''-attached device),
and loses.
It's a real pain that a hardware configuration _required_ for 1.2
doesn't work with post-1.2 -current.
I can think of two workarounds:
1) don't configure the ISA-attach bha
2) Change the non-volatile setup on the card to disable the
ISA-compatible ioport mapping.
I'd really like to build a kernel capable of booting on both ISA and
PCI devices, which rules out #1. #2 is out because many of the machines are
in wiring closets.
Is it possible to change the PCI (and eisa?)-attach bha code to
stop the ISA-attach code from attaching already-attached PCI (or EISA)
devices -- either by disabling the ISA ioport range on the board,
stealing them, or by making bha_isa skip cards with a
model-number high-order char != '4' (VLB) or '5' (isa)?