May 18, 2025

Sun 3/280 - boot files

When my machine decides to boot ie(0,0,0), it makes a tftp request for a file named: C0A8001E

What would this file be in the case of SunOS (or even NetBSD). Dan has the following in his tftpboot directory:

-rwxr-xr-x 1 pi   pi     101800 Jul 17  2019 boot.sun3.sunos.4.1.1
-rwxr-xr-x 1 pi   pi     104048 May  9  2022 boot.sun3x.sunos.4.1.1
lrwxrwxrwx 1 pi   pi         21 Jul 17  2019 C0A80116 -> boot.sun3.sunos.4.1.1
lrwxrwxrwx 1 pi   pi         22 May 11  2022 C0A85613.SUN3X -> boot.sun3x.sunos.4.1.1
So what I am looking for us boot.sun3.sunos.4.1.1. We will leave questions about sun3x to a later date.

Rummaging around on the internet

The obvious thing is to do a google search for "boot.sun3.sunos.4.1.1". This turns up all kinds of interesting things. I go to the following page: I download "sun3_kvm.tar.Z" and in it I find "stand/boot.sun3" and it turns out this is 101800 bytes in size, just like what Dan has.

For a future rainy day, I also go to:

I get "sun3_kvm.tar.Z" from here, rename it sun3x_kvm.tar.Z. I use "cmp" to compare this to the sun3_kvm.tar.Z and they are identical! Somebody at sun3arc screwed up.

Emulation

The project above uses an emulator called "TME" -- here is what Dan says about it:
TME is very interesting. It works, but everyone that looks at it or tries to do anything complains of how it's written - too abstract, too layered, too etc. Nobody so far has picked it up. For emulation it seems like the way to go is MAME which was written for arcade games and I think has a decent 68k core, or qemu.

Sources

A place to look, that may not work for everyone is:
sys/boot/boot/boot.c
(i.e.) SS411/reva/sys/boot/boot/boot.c
A hot tip is this comment from the boot/sun3 Makefile:
# LOAD is the text segment start for booted user programs.
# It is also used by srt0.s for the initial stack.
#
LOAD=   4000
This matches an address I see the PROM code kicking around a lot.
Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org