Date: Wed, 12 Nov 1997 06:19:34 GMT From: mouth@ibm.net (John Kelly) To: Bruce Evans <bde@zeta.org.au> Cc: hackers@freebsd.org Subject: Re: Status of 650 UART support Message-ID: <34693467.2988634@smtp-gw01.ny.us.ibm.net> In-Reply-To: <199711120305.OAA00642@godzilla.zeta.org.au> References: <199711120305.OAA00642@godzilla.zeta.org.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 12 Nov 1997 14:05:03 +1100, Bruce Evans <bde@zeta.org.au> wrote: > "silo overflow", > >RTS flow control is almost useless for preventing this error, since > the interrupt handler must run to invoke RTS flow control. Did you know that the 650 UART has on-chip "auto" RTS flow control which can be invoked by the chip itself when the UART FIFO trigger level is reached? That's why I want to use my 650 UARTs in 650 mode rather than 550 compatibility mode. > "interrupt-level buffer overflow", > >The gap between the high water mark and the end of the fifo (256 - 192) >needs to be larger than the hardware fifo size. I think it is for >the 16550, so the 16550 bug must be elsewhere. You mean 650? A Startech 16C650 has a 32 byte FIFO buffer while the quad 16C654, four UARTs on a chip, each have 64 bytes. I increased the software buffer size from 256 to 512, and that seemed to reduce the number of overflows, but a burst of disk activity would still trigger one even with the larger buffer. >All buffer sizes are too small for 230400 bps. I have a 3Com ISDN T/A attached to a serial port at 230400 bps. I can saturate that link with a large download, start another download on an analog modem at 57600 bps, FTP upload my XFree86 directory from another machine via 10Mbps ethernet, and copy a directory from CD to the same hard drive receiving the FTP upload, never getting any serial overflows with the UARTs running in 550 compatibility mode. And the machine is only a 486 DX4-100. >The software fifo is large enough for 22 msec worth of input at 115200 > bps and the timeout handler normally runs every 10 msec to drain it. >12 msec to spare is normally plenty, but 2 msec for 230400 bps wouldn't I've never seen my ISDN link exceed throughput of 15k bytes per second, so I suppose my average bit rate of 150,000 is safe even in 550 mode. Hmmm ... the ISDN adapter is talking to the serial port at 230400 in short bursts ... I wonder how many bytes might arrive in one burst ... but then again, why should that be a problem only in 650 mode and not in 550 mode? I can change my ISDN port back to 115200 and still get overflows in 650 mode -- even the 57600 modem will overflow in 650 mode. John
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?34693467.2988634>