How to have standard serial ports with more than 115k/s?

Extracted from debian-user
Tip provided by Jens B. Jorgensen
>  My big thing is that I want/need Dial- & Bandwidth-on-Demand support
> - very big requirements.   I don't think these little ISDN routers
> provide the level of control that I want.  (If you know different,
> please let me know.)

 You can get standalone boxes which do ether-isdn and will
 dial/bandwidth on demand, etc. However, these nice little jobs will run
 you at least $300. A waste suitable only for buying hardware with other
 people's money. I *have* used one (the Ascend Pipeline 50) and loved it
 at a previous job. Now, I too am actually in the market for a
 higher-speed ISDN configuration. So here's the deal. Modern 16550A
 serial ports don't do more than 115.2kbps even though theoretically the
 16550A can go up to 460.8kbps (the chip uses an input signal which is
 divided to come up with the reference signal driving the bit rate, and
 these chips don't have a driver signal which is high enough). There are
 boards on the market that use a Startech 16650 which not only have
 driving signals high enough to supply 460.8k but these chips also
 include a larger (32-byte, IIRC) fifo to help out as well. A quick
 lookup on finds a single port 9-pin ISA 16650 adapter mfgr
 Lava available for $21.97 ($2.35 shipping, reportedly) from CDworld.
 Actually, the last time I looked the cheapest board I could find was a
 BOCA and it cost $50. I may just buy one of these.
 One last note though, you'll want the 2.2.X kernel because although the
 older driver in 2.1.34 supports the 16650 it disabled the FIFO in one
 direction (I can send send you more info about this if you're
 interested, I had a little email with Mr. T'so who wrote the driver).
 Finally, as for myself I'm sick eia-232 performance and would *really*
 like to get a USB TA. Unfortunately the USB support for Linux is still
 in its infancy.

The author of the tip sent also to me the email he got back from
Theodore Y. Ts'o

here it is:

   In the linux serial driver you disable the FIFO for a 16c650:

            } else if (info->type == PORT_16650) {
                    fcr = 0;

    I would like to fix things so the FIFO may be used. I've been looking
    through the 16c650 data sheet but I can't seem to see what design bug
    you're referring to (perhaps because I don't have the 16550 data sheet).
    Can you give me a hint/pointer?

Part of the problem is that there are multiple different versions of the
data sheet, and the newer data sheets only document the newer behaviour,
and don't even mention that there were older chips released with the
identical part number that behaved differently.... so Startech doesn't
even acknowledge or own up to their mistakes....

The serial driver in the Linux 2.1/2.2 series handles 16650's correctly;
it will automatically detect 16650 and 16650V2 (where V2 is my own
designation which indicates that this is a new 16650 and not the older
16650).  With the old 16650 it still disables the trasmit FIFO, since
there's no way to use it safely.  It does take advantage of the FIFO if
you have the new 16650V2 chip, though.

Follow-up :
| Previous | Next | Index of category | Main Index | Submit |

Appears in section(s) : kernel FMTYWTK
Tip recorded : 21-03-1999 20:03:38
HTML page last changed : 27-07-1999 20:09:40