Messages in this thread |  | | Date | Fri, 17 Nov 2000 23:01:46 +0100 | From | Andries Brouwer <> | Subject | Re: [PATCH] CONFIG_EISA note in Documentation/Configure.help |
| |
On Wed, Nov 15, 2000 at 06:16:00AM -0500, Paul Gortmaker wrote:
> > What use is knowing that a machine has EISA slots? As far as I can see > > the only use is to ask for the EISA ID of the card. > > Should we? I collected 1200 .cfg files and estimate that this is > > less than 10% of what exists - we do not want a data base built > > into the kernel, I think. But the kernel could collect these > > EISA IDs at boot time, enabling drivers to inquire. > > There could have been an API for EISA card probes if there > were enough drivers to demand it - but I guess there never was. > Something like: > > if (ioaddr=probe_EISA_ID("abc1234") == 0) return -ENODEV;
I see how to make
if ((slot = probe_EISA_ID("abc1234")) == -1) return -ENODEV;
but have no idea how you want to find an ioaddr.
My code does something like
/* * EISA board N has a 4-byte ID that can be read from 0xNc80-0xNc83 * return 0 for success, -1 for failure (no EISA card in slot) and * 1 when a card is present but still needs to be configured. */ static int get_eisa_id(int board, char *id) { int idaddr = (board << 12) + 0x0c80; char val;
outb(0xff, idaddr); val = inb(idaddr); if (val & 0x80) return -1; if ((val & 0xf0) == 0x70) return 1; id[0] = val; id[1] = inb(idaddr+1); id[2] = inb(idaddr+2); id[3] = inb(idaddr+3); return 0; }
(I looked at this in order to get information in a situation with several onboard chips. The EISA slot for them is 0, but there is no obvious way to get at the ioaddr.)
> > (iv) Finally a question: does anyone know of a URL for the > > EISA standard? > > I recall looking about several years ago when I was playing > with some drivers for old EISA ethernet cards. Never found > much of anything. A couple of html-docs on a Digital EISA > box which I found collecting dust in my personal archive of > junk. (see below)
Thanks! However, I had these same docs. (Labeled AA-Q0R6C-TET1.)
> > [PS I would like to be mistaken about the impossibility of > > parsing the EISA configuration area. There is useful info > > there, e.g. about dma and irq. It would be nice if this info > > were available.] > > I think you are mistaken - I have written several EISA drivers > for network cards, and at least three of these I wrote having > never seen the card at all - only the .cfg file - which was > enough for me to get the card I/O IRQ and so on.
Yes, the file is fine. But I only gave you the EISA configuration area. Now what do you do? I don't know. As far as I can see only very machine-dependent things work.
Andries - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |