From: Theodore Ts'o (tytso@ATHENA.MIT.EDU)
Date: 08/21/92


From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
Subject: Re: conflicting serial ports
Date: Fri, 21 Aug 1992 21:48:52 GMT


   From: becker@super.org (Donald J. Becker)
   Date: 21 Aug 92 01:22:21 GMT

   < ... about device busy message when trying to open both serial devices 0
   and 2 or both 1 and 3, i.e. use COM1 and COM3 at the same time>

   This shouldn't be too hard to fix. In 'tty.c' add two new interrupt
   handlers along the model of the four that are already there: one that
   checks both COM1 and COM3, and a second that checks both COM2 and
   COM4. (It's fine to check a serial port if no character is waiting.)
   Then instead of returning EBUSY when opening the second tty of the
   pair, install the appropriate dual handler.

The problem is that unless you have a special serial board, that won't
work. The way the (brain-damanged) ISA bus was designed prevents two
boards from using the same interrupt line at the same time. It is
possible to have special serial cards that multiplex more than one
serial card onto one interrult line. An example of that is the AST
4-port card. Ftp to tsx-11.mit.edu:/pub/linux/ALPHA/serial to pick up
my experimental serial driver which supports the AST boards plus COM1-4
ports.

Does anyone actually have a serial board that allows *concurrent*
interrupts from COM1+3 or COM2+4? If you do, please send me email.
I've never seen such a beast on the market, which is why I didn't modify
serial.c to support it. If there's hardware out there that really
supports that, it's a simple change to make to the serial driver, and
I'd be happy to add it to my version of serial.c.

                                                - Ted

P.S. I'm also thinking about adding concurrent dialin/dialout devices,
as well as better support for hardware handshaking. Basically, I'm
looking at FAS (the Final Async Solution, a freeware serial driver for
SysV-derived Unices) and stealing ideas of useful features that we might
want to have.