Subject: EISA I/O port mapping
To: None <tech-kern@NetBSD.ORG>
From: Martin Husemann <martin@rumolt.teuto.de>
List: tech-kern
Date: 07/12/1998 10:11:26
Could someone please have a look at pr kern/5279?

I just checked current and the only EISA driver attachment that does the
right thing is uha_eisa.c, all others are wrong. I provide a patch for ahc.c
in that pr (still the only hardware I could realy test), so if you all
don't care much about eisa nowadays, please just apply it.

This bug breaks real world applications (like ISDN4BSD) in a way not realy
debugable by the average user.

If the pr is wrong, we should discuss it here!


Thank you,



Martin

P.S.: My main NFS server has been running with the patch in that pr
      since April - without any problems.

P.P.S.: for your convenience, here an excerpt from that pr:

>Description:

EISA drivers bus_space_map their whole io-port slot space. This is incorrect.
There are no other EISA devices in this address io-range, but there may be
other ISA cards. Although this ISA cards are IMHO broken by design, the user
can not fix this. And: these cards work with i386 specific drivers in the
same setup, so they should work with bus_space.h drivers as well.

>How-To-Repeat:

Install an AHB 1742 in EISA slot 1 and an AVM A1 (or Fritz!) ISDN card. No
matter at what IO-port you place the ISDN card, it will need a small io-range
somewhere in the port range between 0x1a00 and 0x1bff. Note that this doesn't
conflict with any register of the AHB controller, but lives in EISA slot
space 1.

A bus-spacified driver for the ISDN card (i.e. the driver in ISDN4BSD) will
fail to bus_space_map this extend and not probe/attach the card.