Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Jul 96 9:43:10 WET
From:      <E00114@vnet.atea.be> (Rob Schofield)
To:        <freebsd-hardware@freebsd.org>
Subject:   Re: Multiple COM ports with same IRQ
Message-ID:  <vines.mmb7%2BOmnvlA@vnet.atea.be>

next in thread | raw e-mail | index | archive | help
Bruce Evans <bde@zeta.org.au> Wrote:

| That's why he only wanted to share them for EISA/ISA boxes 
| :-).

Somebody's reading my mind ;^)

| sio should be able to handle it if the hardware permits 
| level triggered
| interrupts.  It doesn't depend on the trigger level and 
| doesn't have
| board-specific multiport optimizations (only 
| board-specific
| initializations for AST boards), so it shouldn't be able 
| to tell the
| difference between a a bunch of ports connected to the 
| same level
| triggered IRQ and a nondescript non-AST multiport board.

I have to confess, this reply is rather heartening (thanks to everyone who's 
answered, by the way!).

I was not sure (since I haven't been rooting around at board level for years 
now) what scheme the ISA PC was using for interrupts - my guess (based on my 
previous experience, but without looking at my architecture book) is that it 
would be some sort of active low scheme, where any board can assert using an 
open collector sink device (read: big transistor connected to ground which 
pulls the 5V IRQ line down). The problem is, I seem to remember that the line 
is not held high by the PC (it floats), meaning naughty boards could hold the 
line perpetually low, giving no other edge triggering board a chance.

Additionally, we have the question of the interrupt being Edge (it spikes 
down, which latches on the interrupt controller) or level (it goes down and 
stays down until the CPU has serviced it).

I have an EISA box which allows you to say "for this device at this address, 
expect an interrupt on IRQ X, level triggered" or "edge triggered". This sets 
up the PIC (interrupt controller) to expect a certain type of interrupt 
alright, but if the card in the slot doesn't behave like that, then interrupts 

might not register with the PIC.

The original question was really to fish for opinions - given conventional 
UARTS (16550s) on an ISA card in an EISA box, can I set these two up to appear 

as a multiport by setting up the interrupt controller to handle two UARTs at 
different register addresses but sharing the same IRQ line? (ie. "dupe" sio 
into thinking it's handling a multiport).

(to be honest I need to look in my ISA architecture book this weekend)

If this could work, then it gives cheap advantage to EISA boxes simply by 
tweaking the setup parameters and moving a jumper, then building a kernel to 
handle it. This could free up an interrupt line for other cards with limited 
choices. I have to confess though, I'm not sure it'll work at the electronic 
level - is there anyone out there with any ISA/EISA card design experience who 

could comment on this?

Rob
--
Happiness is a smoking processor.......
Rob Schofield M.Sc. AMIEE
schofiel@xs4all.nl   http://www.xs4all.nl/~schofiel



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?vines.mmb7%2BOmnvlA>