Subject: Re: ISDN?...anyone...anyone
To: Maurice Smiley <smileym@ad12.k12.co.us>
From: Dr. Bill Studenmund <wrstuden@loki.stanford.edu>
List: port-mac68k
Date: 03/15/1999 13:12:52
On Sun, 14 Mar 1999, Maurice Smiley wrote:

> > LocalTalk does run at double that speed, and the RAW serial ports are
> > capable of dealing with 230kbps speeds...BUT, in order to achieve those
> > speeds, you would need to use an external clock. The connectix QuickCam is
> > an example of this I believe. It actually provides a clock for the serial
> > port in order to get higher throughput to the serial port. To my knowlege,
> > the only Macs that can go higher than 57600 w/o external clocking are the
> > geoport-equipped ones, such as the AV Macs.
> 
> Umm...it works on the MacOS side.  In fact, 3Com lists the entry level Mac
> for running this as a Mac Plus running System 7.  So, it would seem that the
> issue is indeed NOT the hardware being able to drive 115200, but either a
> NetBSD configuration issue, *OR* NetBSD not supporting serial port speeds
> over 57600.
> 
> Can anyone confirm or deny this?

The hardware can do 115200 and 230400 asynchronous mode (*). However I
don't think that our kernel will support the interrupt load represented by
either of these baud rates, and so I have the ports set to not enable
those rates. Remember you're talking one interrupt every 10 bits, so
you're talking 12k or 23k interrupts/sec.

I'd be interested to know what 3Com does with the MacOS driver.

Take care,

Bill

(*) There are six ways to get a clock to the transmitters: use the Baud
Rate Generator (BRG) driven from PCLK, BRG driven from the Receive clock
pin (RTxC), direct-divide RTxC, direct divide the Transmitter clock pin
(TRxC), use the Digital Phase-Locked-Loop (DPLL) on the receive stream
driven by PCLK, and use the DPLL on the receive stream driven by RTxC.

PCLK on a number of machines gives bizzare baud rates - it's unusable. 
RTxC is always 230400*16. TRxC is hooked to CTS, and RTxC is hooked to DCD
on the modem port. There's a bit in one of the via's to switch RTxC
between the normal 230400*16 & the external DCD pin. 

The divider can do /1, /16, /32, and /64. In all except /1, the
byte assembler will self-lock to the input stream, sampling at the
1/2-bit points. /1 needs to be externally clocked or else bad things
happen (no such clock lock).

To enable 230400 & 115200, all you have to do is enable ZSC_RTXDIV on the
internal clock source. Note however you'll probably loose hard. If you get
ONE silo overflow in a packet, the whole packet needs to be retransmitted.
So don't get distracted by the larger DTE speeds (serial port to modem
speed). :-)