home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!cs.utexas.edu!sun-barr!olivea!mintaka.lcs.mit.edu!bloom-picayune.mit.edu!athena.mit.edu!tytso
- From: tytso@athena.mit.edu (Theodore Y. Ts'o)
- Newsgroups: comp.os.linux
- Subject: Re: 57.6Kbps under Linux -- some results...
- Message-ID: <TYTSO.92Sep12125450@tsx-11.mit.edu>
- Date: 12 Sep 92 16:54:59 GMT
- References: <!nwn!6h.harp@netcom.com>
- Sender: news@athena.mit.edu (News system)
- Organization: Massachusetts Institute of Technology
- Lines: 54
- In-Reply-To: harp@netcom.com's message of Sat, 12 Sep 92 13:26:38 GMT
- Nntp-Posting-Host: tsx-11.mit.edu
-
- In article <!nwn!6h.harp@netcom.com> harp@netcom.com (Gregory O. Harp) writes:
-
- First, I had to hack the kernel serial code to handle that speed.
- Linux currently only supports 38.4Kbps as "shipped."
-
- I've been working on a heavily revised version of the serial driver,
- that supports more boards (including the AST FourPort boards) as well
- some other neat features. One of the neat features is a way
- to control what speed "38400" baud means when you specify it
- to the kernel, using setserial. You can set it to mean 38400, 57600,
- 115200, or "custom divsor". With custom divisor, you basically get to
- specify "div" in the equation
-
- baud = 1843200 / (div * 16)
-
- I'll be shipping my new serial driver to Linus soon, so look for it in a
- Linux release near you. Some of the other fixes which should be popular
- is that I've managed to use over 100k less memory in the tty drivers,
- which means 100k more memory for user programs. I figure that should be
- nice for people who have 2 or 4 meg machines. :-)
-
- BTW, the reason I keep saying 16550A and not just 16550 is because a
- glance at the code tells me that Linux is only enabling the FIFO if
- the UART is the 16550A (refer to lines 265-272 of serial.c). Linus,
- can you tell us why you don't use the FIFO on the 16550? I've
- personally never used the FIFO because my projects were for 16450
- UARTs, but I'm not aware of any problems.
-
- The initial version of the 16550 which were shipped by National
- Semiconductor had a bug, so that their FIFO's where *not* reliable. The
- spec sheets from National specific state that if you have a 16550, you
- should not attempt to use the FIFO's. Fortunately, relatively few
- 16550's were actually shipped before the problem was discovered, and
- most of those ended up in PS/2's. These days, when people talk about
- 16550's, they generally mean recent versions of the chips that have the
- working FIFO's. These chips will be labelled: "NS16550A", "NS16550AF",
- "PC16550C", or "PC16550CF", (apparently PC16550CF is the most recent
- chip version; although I've been assured by National Semiconductor that
- most of the bugs which were fixed in the PC16550CF's shouldn't give me
- any trouble if I only have a NS16550A).
-
- In any case, because the original 16550's had such a serious bug,
- National thoughtfully gave us a software way of detecting whether or not
- the chip was one of the chips with the FIFO bug, or not. All of the
- more recent chips will ID themselves as a 16550A; it is only the
- original buggy chips that will ID themselves as a 16550.
-
- You generally don't need to worry about this. Although it might be
- prudent to check a serial board that you're thinking about to see
- whether it has one of the newer chips, it is very unlikely that if you
- were buying a serial board that you would actually run into one that had
- one of the original 16550 chips.
-
- - Ted
-