Return to BSD News archive
Newsgroups: comp.os.386bsd.questions Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!haven.umd.edu!uunet!psgrain!percy!agora!rgrimes From: rgrimes@agora.rain.com (Rodney Grimes) Subject: Re: patch support for Chris' com drivers ? Message-ID: <C5I67z.3G3@agora.rain.com> Organization: Open Communications Forum References: <C5D4sw.B3B@constellation.ecn.uoknor.edu> <1qdio2$mjf@walt.ee.pdx.edu> <duncanC5FMJ4.HD@netcom.com> Date: Thu, 15 Apr 1993 02:14:23 GMT Lines: 63 duncan@netcom.com (Donald K. Duncan) writes: >In article <1qdio2$mjf@walt.ee.pdx.edu>, rgrimes@acacia (Rodney W. Grimes) writes: >>... >> The reason I chose IRQ2 and IRQ5 is that is what most COM boards allow as >> alternates, not so much as what is not used. The bad thing is that shared >> interrupts require special hardware design to be done correctly, and I know >> of no boards that are designed correctly. This is an electronic level issue, >> that has to do with the type of driver used to drive the IRQ signal. >> >>... >It is true that one should drive the IRQ signal correctly. A very >simple and inexpensive way of modifying virtually ANY serial card to >work with a shared interrupt driver such as CGD's is as follows: >Epoxy a piece of perfboard to the edge of the serial card (remove it from >the system first :). On the perfboard place a tristate buffer IC such >as a 74ls126 quad tristate buffer and wire ALL the outputs of the '126 >to the desired ISA interrupt line such as IRQ5 (on the card - not the >motherboard!!). Pull the IRQ line low to ground with a 220 ohm resistor. >There should only be one resistor per interrupt line. Next, cut the >trace coming from the INT pin from each of the serial chips and wire >the INT pin to an input and its associated enable pin on the '126. >The 74ls126 will handle upto 4 serial chips as it is a quad buffer. This >arrangement is basically a wired-or of the serial IC INT pins. Note the >need for a TRISTATE buffer as a normal buffer would cause contention. >Note further that each buffer must have its own enable. Otherwise >additional logic will be required. I'm currently using such an >arrangement to support 8 serial ports on two interrupt lines. >It is an easy modification but just be careful. I assume no responsibility >for fried systems. Easy for someone who knows what they are doing. This solution is a "reasonable" one, though I would have to do some quick loading and timing calculations to see if infact the ls126 and the 220 ohms are "correct" values. I have my doubts about the interrupt signal going in active quick enought with a passive pulldown, but possible the THZ of the ls126 is longer than the THL, and thus the signal is actually driven low by the ls126 before it tri states. My real reason for repling is to ask if their is significant interest in a properly designed shared IRQ board and a modified driver that would support 8 serial ports on 1 board. I have such a design in prototype form that uses an extra on board register that is polled at interrupt time to decide who interrupt from the board, this saves some time in the driver as it can check one register to find out which com ports need service. This board ONLY works with 386bsd and a modified driver, ONLY ONE of them has been built, but if the interest is high enough I could have a PC board designed and boards fabricated. It can use either 16450's or 16550's (I recomend 550), and the board would come with schematics, and a programmers spec, someone could write drivers for other OS/s, even DOS. It has FULLY assignable I/O addresses and can use ALL ISA IRQ's, as it uses a full 16-bit bus connector. Also in the works from Accurate Automation is a SYNC board based upon the 82530 chip, this would be a dual sync board for upto 1MBit/s operation of high speed sync modems. This board is still in the design stages. -- Rod Grimes rgrimes@agora.rain.com 386BSD patchkit coordinator Wish it paid real money! Accurate Automation Company All opinions belong to me and my company!