Sun SPARCstation IPC (4/40)

This little guy came to me in “not working, for parts” condition. It came loaded with a Seagate ST1480N 426MB SCSI-2 hard drive, Sony 1.44MB floppy drive, a Sun cgthree framebuffer SBus card, and 32MB of RAM (8x4MB). This machine was introduced in July 1990, but it’s not entirely clear when my machine was actually manufactured. Many of the ICs are shared with the older SPARCstation 1+, so many of the datecodes are 1989 or 1990, but some are early 1991. It has PROM version 1.6 which seems very old.

Since the machine wouldn’t power on at all, checking the power supply was the obvious first step. After cracking the machine open, I could already see signs of significant capacitor carnage. The design of this machine mounts the power supply upside-down in the chassis, and some capacitor electrolyte had dripped onto the mainboard. Not very much, and fortunately it looked like it hadn’t been there for long (possibly from being jostled around in shipping), so fortunately that cleaned up easily.

Once inside the power supply, there were definite problems in the output section. All of the big, high-capacitance low-ESR output filter caps were oozing, so everything in the area was brown and sticky. I removed all of the electrolytics (which of course smelled awful; burning capacitor electrolyte smells like dirty rotting fish) and cleaned up the board with flux remover and 99.9% alcohol.

In picking replacement parts, I couldn’t find any drop-in equivalent for the large input filter cap (390μF, 400V), so I kept that one intact (it did not have any signs of trauma). Most capacitors of that size use a newer snap-in style mount but the old one in this power supply used a kind of tab mount. Doesn’t look like anyone makes them like that anymore, so hopefully this one holds up long term.

Fortunately, after cleaning up the board and installing new Nichicon capacitors, the machine fired right up. Typical with machines of this age, the NVRAM/TOD chip on the board was dead, so I replaced it with an ST M48T02 and reprogrammed it using instructions from the Sun NVRAM FAQ. I found the machine’s original MAC address by looking at /var/adm/messages on the disk (I pulled an image of it to see what was on the disk while I was waiting for PSU parts to come in).

Unlike my other SPARCstations this machine uses mini-DIN8 serial ports and the audio in/out ports use a special dongle that plugs into another mini-DIN8 port. Fortunately, WeirdStuff has a bunch of these old cables. Also, this machine only has an AUI-15 port for Ethernet so I had to find a transciever to plug it into my switch.

The disk had SunOS 4.1.4 installed on it, but after an unsuccessful attempt to install 4.0.3c (supposedly the oldest supported version), I reinstalled 4.1.4 clean. I’ll need to do some more research to see what I’m doing wrong with 4.0.3c.

SunOS phoenix 4.1.4 2 sun4c


  • 25MHz LSI L64801 SPARC CPU (SPARC V7)
  • 25MHz Weitek 3172A SPARC FPU
  • Onboard mono bwtwo framebuffer
  • Sun GX (cg6) SBus Framebuffer
  • 32MB RAM (8x 4MB)
  • PROM v1.6 - dated 26 Jun 1990
  • 426MB Seagate ST1480N 3.5” SCSI-2 Disk (labeled as a SUN0424) Dead :(
  • SCSI2SD v5 w/4GB microSD
  • Sony 1.44MB Floppy
  • CentreCom 210TS 10BASE-T Ethernet Transciever


SunOS Release 4.1.4 (GENERIC) #2: Fri Oct 14 11:08:06 PDT 1994
Copyright (c) 1983-1993, Sun Microsystems, Inc.
mem = 32768K (0x2000000)
avail mem = 30531584
Ethernet address = 8:0:20:a:7d:8f
cpu = Sun 4/40
zs0 at obio 0xf1000000 pri 12
zs1 at obio 0xf0000000 pri 12
fd0 at obio 0xf7200000 pri 11
audio0 at obio 0xf7201000 pri 13
sbus0 at SBus slot 0 0x0
dma0 at SBus slot 0 0x400000
esp0 at SBus slot 0 0x800000 pri 3
sd0 at esp0 target 3 lun 0
sd0: <SUN0424 cyl 1151 alt 2 hd 9 sec 80>
le0 at SBus slot 0 0xc00000 pri 5
cgthree0 at SBus slot 2 0x0 pri 7
bwtwo0 at SBus slot 3 0x0 pri 7
root on sd0a fstype 4.2
swap on sd0b fstype spec size 65520K
dump on sd0b fstype spec size 65508K


OpenSSL 0.9.8zh 3 Dec 2015
built on: Thu Jul  6 16:43:26 PDT 2017
options:bn(64,32) md2(int) rc4(ptr,char) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx) 
compiler: gcc -O3 -mv8 -Dssize_t=int
available timing options: TIMES TIMEB HZ=60 [sysconf value]
timing function used: times
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5                 47.77k      143.10k      498.93k      934.77k     1380.14k
sha1                56.70k      174.17k      404.28k      608.60k      729.09k
sha256              47.46k      118.33k      223.70k      289.79k      313.28k