August 25, 2025

Sun 3 bootrom souce - the Sun 3/80 - EEPROM

We know that the 3/80 does not have an actual EEPROM. It has a 2kx8 battery backed NVRAM chip. Everyone hates it because the battery dies and then it is a big headache to get the machine going again.

Be that as it is, Sun calls this thing the EEPROM and that is more of a functional definition than anything. Maybe it should be excused on the basis of history. Older Sun3 machines (like the 3/160) had a real EEPROM. Nobody hates those. They have no battery and still work fine even after 40 years.

The main thing though is that the information in the NVRAM is the same (with the same layout and offsets) as the EEPROM. Note in passing that a part of the NVRAM is set aside to act as the IDPROM. I have details on this elsewhere. In general you are protected from using the prom to change (or restore) values in this area. See notes elsewhere.

Set the amount of memory

Unlike the IDPROM, there seems to be no checksum on EEPROM values. You just change/set them and they work! An example I just tried is setting the amount of ram. I have 16M in my machine, so I do this:
q14 -- set 10 (this is all in hex)
q15 -- set 10
Offset 0x14 is the amount of installed memory
Offset 0x15 is the amount of memory to test on startup

After setting these values, the prom does test 16M of memory!
However it only sets up virtual addresses for 8M.

Perhaps this was sufficient to boot SunOS and then SunOS could detect the real amount of memory and set up its own mappings.

Here is a partial list:


Feedback? Questions? Drop me a line!

Tom's Computer Info / tom@mmto.org