Subject: Port to Intergraph Clipper system(s)
To: 'netbsd-ports@netbsd.org' <netbsd-ports@netbsd.org>
From: Mackinlay, Patrick <patrick.mackinlay@kjv.com.au>
List: netbsd-ports
Date: 10/17/2001 10:33:02
I'm interested in working toward a port of NetBSD to the Intergraph Clipper
platform. I'm some way away from that point yet, but I'm learning what I can
about NetBSD before tackling the job. What I'm really interested in knowing
right now is, which is the "best" port for me to duplicate and modify? By
"best", I guess I'm talking about "most similar", and in order for anyone to
answer that question, I'll need to provide some information about the
target.

The InterPro, InterAct and InterServe series of workstations (apart from
very early ones) used the Intergraph Clipper CPU, one of the earlier RISCish
CPUs. The CPU was developed by the Advanced Processor Division at Fairchild
Semiconductor, with Intergraph as their major customer. At some point,
Fairchild was split up and sold off to National Semiconductor and
Intergraph, where Clipper development continued until around 1993.

Anyway, the systems implement the CPU in its full 32 bit, little-endian
mode. The MMU seems quite similarish to the R2000. I/O devices include:
Zilog serial controllers for keyboard/mouse and serial ports, Intel 82596
ethernet chip, NCR 53c94 SCSI controller, NEC 82077 floppy controller, some
BrookTree graphics bits and pieces plus a NatSemi graphics chip (I'll worry
about support for graphics down the track). Some systems had a VME bus, mine
has something Intergraph called "CBus"? If there's any other useful
information I should provide here to aid in the selection of the source
port, please ask.

From what I understand so far, the system has a two-level hardware interrupt
structure, with interrupts having both a "level" and a "vector", with
interrupts at higher levels taking priority.

Finally, GCC does have support for this processor (with some bugs), and I've
managed to get it up and running using the native OS (CLIX, an SVR3 variant)
assembler, linker and libraries. Documentation for the system as a whole is
*very* difficult to come by, but I'm quite prepared to disassemble ROM's,
drivers and binaries to get what I need to know. The system also has an
excellent Forth diagnostic monitor which allows system state to be
examined/modified, peripheral and network access etc, which I'm pretty sure
I can piggyback on to get basic console I/O going.

Other specific bits for my particular system: C400 rev 3 CPU (I think
produces about 70 MIPS), 4k/4k I+D caches, dual-head graphics, 19" screens,
1G system drive, 64M RAM, CDROM. There's some interesting native software
for, particularly CAD/CAM and GIS related, and I'm hoping to be able to
build a "CLIX" emulation layer into NetBSD to enable it to run eventually.

Any comments? Suggestions? I've read what I can about NetBSD, and found the
bus_dma paper particularly interesting - are there any other papers or
documents on the design of the OS, particularly relating to the MI vs MD
parts? Any input, particularly from those who have kicked off a port to a
new CPU would be welcome.

Regards,
Pat Mackinlay
Kellogg Joint Venture