Subject: Re: DS5240 serial ports
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Bill Studenmund <skippy@macro.Stanford.EDU>
List: port-pmax
Date: 05/11/1999 15:41:36
On Tue, 11 May 1999, Jonathan Stone wrote:

> In message <Pine.BSF.4.10.9905111442410.12734-100000@freeby.mesanet.com>,
> Peter W allace writes:
> 
> >> FSVO "fine".  It has a 1-byte FIFO.  Your DECstation will *not* receive data
> >> above 38,400 and do anything else useful.
> 
> Thor, why on earth do you say that? There's, what, a 3-byte fifo, and
> 57600 bits/sec at 1 start bit and 1 stop bit comes out under 2k
> interrupts/sec.  Not at all outrageous for a 25Mhz r3000.

Jonathan, you'll get one interrupt per character. Though there is a 3-byte
fifo, each receive generates an interrupt. So you'll be getting ~ 5800
interrupts/sec, and you have to service them within 519 ms (how long it
takes to overflow the fifo at 57600).

I think the real problem is that the current scc driver doesn't use a
silo like the MI driver does. Thus anything in the kernel at spltty (or
splimp) blocks tty char reception. For the MI driver, spltty & splimp only
block the processing of characters, not their reception.

> Better pdma would be nice, but so would output DMA...

I haven't forgotten that Jason and I want to fix up the alpha version of
the driver, which will probably fix the pmax one too. ;-)

> >Actual speed limitations may have more to do with RS-232
> >level shifters (they were never designed for >56K baud or so, only newer
> >RS-232 level shifters were designed with 230K baud in mind)
> 
> I was never sure if that was the problem I ran into with receive-side
> not working above 57600 on a 5000/240, or if it was from clock-divider
> weirdness.  I wonder the real cause may be, in part, differences
> between genuine Zilog chips and the AMD (or Intel?) parts.

I doubt it's Zilog vs. AMD or clock divider (if you were still running the
BRG and the channel in /16 mode). mac68k uses AMD chips in some machines,
and Zilog cores in others. All have been able to run at 57600 baud, which
uses the same divider constant (0) as 115200 on pmax.

I thought you were playing with /1 mode at one point? THAT will definitely
cause problems. :-)

Take care,

Bill