*BSD News Article 84111


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!news.ecn.uoknor.edu!feed1.news.erols.com!news.magicnet.net!iag.net!enews.sgi.com!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!awfulhak.demon.co.uk!awfulhak.demon.co.uk!awfulhak.demon.co.uk!not-for-mail
From: brian@anorak.utell.net (Brian Somers)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: Serial ports and internal modems..
Date: 2 Dec 1996 14:24:48 -0000
Organization: Coverform Ltd.
Lines: 34
Sender: brian@awfulhak.demon.co.uk
Message-ID: <57uorg$2ph@anorak.utell.net>
References: <57f6f9$ffh@bambam.soi.city.ac.uk>
Reply-To: brian%anorak.coverform.lan@awfulhak.demon.co.uk
NNTP-Posting-Host: anorak.coverform.lan
X-NNTP-Posting-Host: awfulhak.demon.co.uk
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Newsreader: knews 0.9.8

In article <57f6f9$ffh@bambam.soi.city.ac.uk>,
	adm2@sarc.city.ac.uk (Alan Messer) writes:
: On reading the FAQ/Handbook in closer detail it reveals that serial 
: ports can't use the same interrupt.. Yet, under DOS this would seen to
: be the norm.. So what gives? The internal modem has no config to move the
: interrupt (well that's not quite true there are 6 or 7 dips but with no
: more documentation than 4 settings for the different COM combinations)..
: And my BIOS/motherboard don't allow the interrupts to be changed..

On DOS, you can't re-use your mouse interrupt for another device - it's fine
to have two UARTS with the same irq as long as you're not using them both.
The problem is that when an interrupt occurs, a driver has to handle it.  If
there are two drivers handling the same interrupt, there'll be problems.

However, having said this, these problems can be overcome - certainly with
UARTs anyway.  It's possible to tell one device driver about more than
one device that may cause the interrupt, as long as the driver can deal
with not knowing.  In the case of UARTs, the driver can ask the UART "was
that you?", so a smart driver can then read and deliver incoming data or
refill the outgoing buffer by asking each UART on the caused interrupt
"was that you, and if so, what do you want?".

In short, try changing your kernel config lines to something like:

device sio1 at isa? port "IO_COM2" tty conflicts irq 3 vector siointr
device sio3 at isa? port "IO_COM4" tty conflicts irq 3 vector siointr

rebuild and see if it works.

-- 
Brian <brian%anorak.coverform.lan@awfulhak.demon.co.uk>
      <http://www.awfulhak.demon.co.uk/>
Don't _EVER_ lose your sense of humour....
.