Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Nov 1995 04:04:26 +1100 (EST)
From:      michael butler <imb@scgt.oz.au>
To:        uhclem%nemesis@fw.ast.com (Frank Durda IV)
Cc:        current@freebsd.org
Subject:   Re: Serial HW flow control [was ISP state their FreeBSD concerns]
Message-ID:  <199511141704.EAA17910@asstdc.scgt.oz.au>
In-Reply-To: <m0tFODF-000J1BC@nemesis.lonestar.org> from "Frank Durda IV" at Nov 14, 95 10:27:00 am

next in thread | previous in thread | raw e-mail | index | archive | help
Frank Durda IV writes:

> One of the ISPs is trying to let me borrow his communications monitor
> so I can see exactly what they are talking about.  They claim it will
> show that they drop CTS and the processor has sent as many as 14 additional
> characters after CTS was deasserted.  If true, it sounds like our
> hardware flow control does not "call-back" bytes already in the 16550 FIFO
> like it should.  

You can't anyway .. once loaded with 16 bytes for transmission, the
withdrawal of CTS only generates an interrupt. To quote the NS spec for the
device "/CTS has no effect on the transmitter". This is quite different to
the behaviour of, say, a Z80 SIO or Z8x30 SCC which disable the transmitter
after the current character has been shifted out.

There is also absolutely no mechanism provided to discover exactly how many
characters were transmitted prior to the modem status interrupt. Ordinarily,
an interrupt occurs only when the FIFO and shift-register are (completely)
empty.

> The EIA rules for CTS allow you one more full character plus any partial
> character to be transmitted before the data must cease ..

Then the 16550 itself is in breach of this spec. and there's nothing anyone
can do about it in software other than to feed it one byte at a time (and
you really don't want to do that!).

If this actually is the problem, then *every* PC-based O/S must display the
same failing with these devices, not just FreeBSD. The only other possible
issue in this area is the speed with which FreeBSD's driver responds to CTS
changes,

	michael



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199511141704.EAA17910>