Subject: Re: Utility chip sio's on 4xx (more stories)
To: Michael Smith <msmith@atrad.adelaide.edu.au>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: port-hp300
Date: 03/19/1997 03:55:32
On Wed, 19 Mar 1997 18:49:13 +1030 (CST) 
 Michael Smith <msmith@atrad.adelaide.edu.au> wrote:

 >  - There are 4 sio ports in the 'utility chip'.
 >     0 : apollo keyboard port
 >     1 : disabled in HP mode in favour of the onboard dca port
 >     2 : goes to 232 port
 >     3 : goes to 232 port

...Okay, I've found some of that info I was hunting for...

You are correct in your assessment, as far as I can tell.  What
actually happens here:

	0 - Apollo keyboard port
	1 - first serial port (domain mode) or dca at scode 9 (hpux mode)
	2 - second serial port
	3 - third serial port

to access ports 2 and 3, you must have the special Apollo break-out
cable plugged into the db25 on the back of the machine (geez, I forget,
is the 425 a db9 or a db25?)

Each of the serial ports (including keyboard port) is software
compatible with the NS16550 (none are compatible with the scn2681
found on Real Apollos).

The 4 ports live on the "Frodo" utility chip ... The offset of this chip,
from the start of Internal I/O space is 0x0001c000.

>From that chip base, there are the following offsets:

	0 - 0x00000000
	1 - 0x00000020
	2 - 0x00000040
	3 - 0x00000060

It also appears as if ports 2 and 3 are accessable via select codes
5 and 6 in HP-UX mode ... HOWEVER!  It's worth noting that these
serial ports do NOT return an ID during the dio device probe!

Ports 2 and 3 have only a 1 byte FIFO, whereas port 1 has a 16 byte
FIFO.  I don't know about the keyboard port.

Only port 1 has CTS/RTS flow control.  Port 1 is capable of 460.800k
whereas 2 and 3 are capbable of 38.400k.

The break-out cale is HP Cable K2292.  Anyone have a wiring diagram?

 >  - The register model is that of the 8250, with 8-bits registers on
 >    longword (32-bit) boundaries.
 > 
 >  - There is a bytewide control register at 0x2021c0e0 which contains
 >    control bits (interrupt enables perhaps?) for these ports, the 4
 >    MSB correspond to the 4 ports.
 > 
 > I still haven't been able to find the absolute base address of the ports;
 > if someone with an HP/UX system can send me the /etc/master details for
 > the apci driver I'd be very grateful, as I think that's the key.

...the apci driver controls ports 2 and 3.  The rs232 driver controls
port 1 (under HP-UX).

So, the Right Way to handle these is probably to write a "utilchip"
driver (a child of intio), which then attaches 3 "apci" devices as children
(could call it "sio", but that is the apollo name for scn2681).  A dnkbd
could attach to the first apci, and apcitty instances could attach to the
last two.  NOTE!  PORT 1 SHOULD NOT BE USED IN HP-UX MODE!  (At least,
that's how I understand it...)

Jason R. Thorpe                                       thorpej@nas.nasa.gov
NASA Ames Research Center                               Home: 408.866.1912
NAS: M/S 258-6                                          Work: 415.604.0935
Moffett Field, CA 94035                                Pager: 415.428.6939