Subject: IRQ and DRQ autoconfiguration
To: None <current-users@sun-lamp.cs.berkeley.edu>
From: Charles M. Hannum <mycroft@duality.gnu.ai.mit.edu>
List: current-users
Date: 07/27/1994 09:43:51
I've just enabled some old code I had written in the aha, ahb, bt, and
uha drivers, to use the IRQ and DRQ read off the board at boot time,
rather than statically configuring the info into the kernel.

Basically, if you have something like:

controller      aha0    at isa? port "IO_AHA0" irq 11 drq 5

then the settings will be checked against those on the card, and if
they don't match, the probe will fail.  However, if you do:

controller      aha0    at isa? port "IO_AHA0" irq ? drq ?

then the driver will simply use whatever settings it finds on the
card.

I also fixed some bogons related to how DMA channels were configured,
that have been around since Julian.

Some of this probably showed up in the FTP area last night; the rest
will show up tonight.  It would be good if people with these types of
SCSI controllers would test the code and let me know ASAP if it
doesn't work.  (It's been tested on all the standard card types, but
not on random Adaptec clones.)


Note that EISA and VLB cards don't actually use the ISA DMA
controller, but BusLogic cards may show up as `drq 5' if you use `drq
?' (or don't specify).  Apparently the boards by default claim to be
DRQ 5 in order to be compatible with some old ISA drivers, and this
`feature' can be turned off (at least for the EISA boards, using the
EISA configuration utility).  I didn't consider this very important,
and didn't want to risk modifying the driver right now to ignore the
DRQ for these boards.


P.S.  Eventually, all drivers which can read this type of information
off the controller should, and as little as possible of the info
should be statically configured.  It turns out, however, that trying
to divine IRQ information (for boards which won't tell you) doesn't
actually work in practice; some <<expletives>> stupid devices power up
in a state where they are generating interrupts, and confuse the IRQ
discovery process.


------------------------------------------------------------------------------