*BSD News Article 2269


Return to BSD News archive

Path: sserve!manuel!munnari.oz.au!uunet!mcsun!Germany.EU.net!unido!adagio!grog
From: grog@adagio.UUCP (Greg Lehey)
Newsgroups: comp.unix.bsd
Subject: Re: 386bsd 0.1 - ne2000 problem work-around
Keywords: 386bsd ne2000
Message-ID: <1820@adagio.UUCP>
Date: 22 Jul 92 12:55:13 GMT
References: <greg.711512526@hibp1.ecse.rpi.edu> <1992Jul20.162728.8188@gateway.novell.com>
Organization: LEMIS, Schellnhausen 2, W-6324 Feldatal, Germany
Lines: 47

In article <1992Jul20.162728.8188@gateway.novell.com> terry@thisbe.npd.Novell.COM (Terry Lambert) writes:
>In article <greg.711512526@hibp1.ecse.rpi.edu>, greg@ecse.rpi.edu (Greg) writes:
>|>      After I loaded the source, and deleted enough so that I could actually 
>|> compile something on my 100MB disk, I rebuilt the kernel. I assigned the
>|> ne2000 to use irq2, sacrificing com2. The kernal build was uneventfull except 
>|> that I need to apply the "version patch" posted recently. I restrapped the
>|> ne2000 to irq3 and away we go! It seems to work.
>|> 
>|>     Perhaps someone has some insight into why in can't use the irq2 
>|> configuration.
>
>Most likely, the "do-it-all" card you mentioned has either an IRQ2 -OR-
>one of the higher interrupts.  IRQ2 is the "cascade" interrupt for getting
>things like IRQ15.  Generally, unless the software has a real good idea of
>how the interrupt controller works, it's bad form to use IRQ2.

There seems to be a lot of confusion about this. The bus IRQ2 line,
which has been there since the XT days, no longer generates an IRQ2,
since IRQ2 is used for the cascade input of IRQ 8-15. Instead, it is
connected to IRQ9. There is *absolutely* no reason not to use this
interrupt (unless you count the confusion we're talking about). It's
the only one of the 8 higher-level interrupts available to an 8-bit
board.

>I haven't
>had a chance to get into the interrupt controller code yet, but I'll see
>what I can do.  I suggest that anyone else using IRQ2 be discouraged.  The
>same can probably be said of "shared interrupt" devices, like Com1 and Com3
>or Com2 and Com4, or a Com2 and a multiport board in the same box, etc.

The problem with the lack of IRQ lines is exacerbated by the fact that
the standard async board design is brain-damaged: it drives its IRQ
line at all times, thus making sharing almost impossible. Some people
have come up with ideas for fixing them (like what should have been
done: only drive the line when you have something to say).
Unfortunately, this also requires the interrupt code to expect
multiple interrupts. Currently, it doesn't, and since the hardware
prerequisites are absent, I don't see it happening soon.

BTW, I use BSD/386, not 386BSD, and there the com ports are numbered
starting at 0. IBM starts at 1. I would expect (but haven't checked)
that 386BSD would also start at 0.
-- 
Greg Lehey                       | Tel: +49-6637-1488              
LEMIS                            | Fax: +49-6637-1489
Schellnhausen 2, W-6324 Feldatal, Germany
*** NOTE ***: Headers are mangled - reply to grog%lemis@Germany.EU.net