July 28, 2025

Sun 3 bootrom souce - an introduction

The code was discovered in the SunOS 3.2 sources at:
Unix/SS32/sun/mon3
The rom version is 2.1 as indicated in the Makefiles by a statement such as:
IDENT='-DID="Rev 2.1"' -DSUN3 -DCARRERA
The bootrom source includes Makefiles for 4 sun3 machines:
Sun 3/160 - carrera
Sun 3/280 - sirius
Sun 3/110 - prism
Sun 3/50 - m25 (model 25)
Note unhappily that source for the sun 3/60 and sun 3/80 is not included. I have running 3/160 and 3/280 systems available, and intend to start my investigation by attempting to build an image for the 3/160.

A quick diff of the Makefiles shows minimal differences. The "IDENT" line changes to indicate the machine via -DSIRIUS. The rest of the differences are in the "depend" section. The real work is handled within the sources by conditional compilation as per SIRIUS or CARRERA, etc.

Goals

The first goal is to build a bootrom image from source. This might be signficantly easier if I attempted it using the original sun compiler and assembler running on a sun system. This option is not available to me, and I actually think it will be more interesting to figure out how to build this using cross compiler tools hosted on an x86 system. The build will certainly run much much faster!

Once I have built a rom image, the next thing will be to test it. I have a bare sun3/160 board and the proper connector to deliver power to it. I would like to run this in the open air, which will make it convenient to connect the PromICE rom emulator to it. The PromICE is a device with a serial port on one side and a cable that plugs into a rom socket on the other. It uses static ram to hold what it presents as rom to the target system and is ideal for testing and development in a scenario like this.

Another goal, down the road, will be to correlate the code in disassembled rom images to actual source code. A rom image is basically a concatenation of object files (the concatenation being performed by the linker), so it ought to be fairly easy to "mark up" a disassembled image with the original source files. This may be useful in particular for the sun3 where we do not have source. We expect the bulk of source to be common, but it will be interesting to see just how this will play out.

The sun 3/80 is quite different and there will surely be many more differences.


Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org