*BSD News Article 16606


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!haven.umd.edu!umd5.umd.edu!roissy.umd.edu!mark
From: mark@roissy.umd.edu (Mark Sienkiewicz)
Newsgroups: comp.os.386bsd.questions
Subject: Re: Modem setup on 386BSD [and a further QUESTION]
Date: 28 May 1993 21:28:04 GMT
Organization: University of Maryland
Lines: 50
Message-ID: <1u6054$o6l@umd5.umd.edu>
References: <1993May27.043819.13711@mcshub.dcss.mcmaster.ca> <CJB.93May28115334@thrip.cs.uq.oz.au> <1993May28.195017.23712@fcom.cc.utah.edu>
NNTP-Posting-Host: roissy.umd.edu

In article <1993May28.195017.23712@fcom.cc.utah.edu> terry@cs.weber.edu (A Wizard of Earth C) writes:
>In article <CJB.93May28115334@thrip.cs.uq.oz.au> cjb@cs.uq.oz.au (Christopher J Biggs) writes:

cjb>Question: Has anyone got a driver that will drive a multi-IO card at IRQ 2&3
cjb>and an internal modem on 2or3 (it wont go anywhere else!!).


terry>I haven't seen one yet -- and, unless you have a very special modem and com
terry>card, you aren't going to be able to write one -- ever.

...

terry>boards, on the other hand, *do* support flagging the interrupt source,
terry>*but* require a driver that knows about the flagging mechanism.  Some
terry>UARTS (but not the low-end ones in most PCs) support a status register
terry>indicating "data in FIFO".  This can be used the same way as a hardware

I'd be very interested in knowing what UARTS you are referring to, since
I've never heard of such a beast.

The 16450, 16550, and 8251 all have a bit that indicates "received data
ready".  It is the least significant bit of one of the status registers
(the one at byte 5, so for COM1 it is at 3F8+5 = 3FD).  You could easily
poll all your UARTS to find incoming data.  (I use this technique to do 
some serial communication on Ms. Dos.)

cjb>Question: Has anyone got a driver that will drive a multi-IO card at IRQ 2&3
cjb>and an internal modem on 2or3 (it wont go anywhere else!!).

The internal PC modems that I've seen all look just like plain serial ports
to the computer.  That makes this problem the same as having three serial
ports.

The hard problem is this:  If you set two boards to interrupt on the
same IRQ, they fight each other.  One board tries to pull the pin high
and the other tries to pull it low.  Often enough, you just don't see the
interrupt, but sometimes you burn up the chip driving that pin.

Are you sure your multi-IO card can only be IRQ 2 or 3?  Most of the ones
I've seen let you use 2 or 3 for COM2 and 3 or 4 for COM1.  This would
get you the 3 interrupts you need.

Alternately, you could kludge the board so that both interrupts are gated
onto the same pin.  Then you can hack the device driver to check more
than one chip on interrupts.

So... No, I don't have one, but in principle, a little hardware hacking and
a little software hacking and you could have one yourself.

Mark S.