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>