Subject: Re: Serial consoles: looking for test hardware
To: None <anthony.baxter@aaii.oz.au>
From: Jonathan Stone <jonathan@dsg.stanford.edu>
List: port-pmax
Date: 01/16/1996 22:34:46
>'scuse the possibly dumb question - what's the status of the serial
>drivers for NetBSD/pmax? Are they up past the woeful state of the Ultrix
>ones (can do 19.2k, but 38.4k is a little too much for the system to
>handle).

I think Ted Lemon told me he was seeing serial overruns on a 5k/25
(MAXINE.)

The IOCTL ASIC documents I have say that the IOASIC has support for
DMA on the scc chips.  The DMA reads and writes out of one byte in
each word, ignoring the other three, so a tty driver using it would
have to pack or unpack the data.

The DMA engine can DMA up to a page (1 byte out of each word in a
4Kbyte page gives 1024 bytes/DMA).  Even so, the damn things ought to
be able to keep up with 1.554 Mbits if clocked appropriately, and if
the chips support it.

A worrisome possibility is that, just maybe, the DMA hardware doesn't
insert the pauses (``settle time'') between each  character that
the Zilog chips require.  If so, the DMA just wouldn't work.

Again, it all comes down to time.  If someone can undertake to write
the pack/unpack code, put code into the scc driver to divert the
characters to a DMA path, and write the DMA setup, it's done.  I just
don't have time right now.  I can write the chip setup code and the
glue for interrupt handlers, though.  In fact I want to integrate some
of the IOASIC dma-page-turn glue I already wrote for the scsi
interface.  The serial chips are, supposedly, not _too_
dissimilar. (There's only one DMA pointer per channel, IIRC, whereas
the SCSI chip has two pointers wired as a FIFO.  The IOASIC generates
a FIFO interrupt when it moves a pointer from one entry to the other.
This allows continuous DMA, as long as an interrupt handler writes
fresh page addresses into the FIFO.

I really should commit the DMA changes for the SCSI chip,
since they _may_ be a good basis for writing DMA code for
the AMD audio/ISDN chip in  MAXINEs and Alphas.   (It's the
same chip as in Sun4cs, so we have the rest of a driver.)
And after fixing the interrupt-enable after clock ticks
are taken, SCSI dma should even _work_, now :) :).

Are there any volunteers in the audience? (Chris??)

--Jonathan