Replacing a dead NVRAM chip

My SPARCstation 1+ was manufactured in 1989. Over a nearly 30 year lifetime, any number of components could have gone bad: capacitors burst, hard disk motors fail, sometimes the wrong voltage gets attached, etc. A problem that notoriously affects older Sun workstations (including mine!) is NVRAM failure.

The NVRAM chips in Sun workstations contain:

Over the years, that battery dies. Unfortunately, because it is packaged as one chip, you can’t pop in a new button-cell - you have to replace the whole chip. This doesn’t just mean your computer will lose the ability to tell time - (entertainingly) the machine will lose it’s IDPROM data - it no longer knows what model it is or what its MAC address is supposed to be.

When worked on the SPARCstation, I’ve set dummy values for the MAC address and such to get around the dead battery - there’s thankfully a quite detailed guide from comp.sys.sun.hardware on how to set them. I’ve since given in and ordered a new chip (the STMicroelectronics M48T02-200PC1).

To replace it, I had to open up the case and find the darn thing! Pizzaboxes have fairly compact interiors, sometimes layering what you want to get at below something unrelated. In this case, I had to remove the two frame buffer cards.

The NVRAM was under the SBus cards!

The NVRAM was under the SBus cards!

I pried it out of the socket (with my fingers), and inserted the new one (using the corner “dot” as a guide for its orientation):

After putting the framebuffer back in and closing up the case, it was time to set the IDPROM values for the last time! Based on the guide, I set a machine type of 53 (SPARCstation 1+) and a MAC address of 08:00:20:c0:ff:ee (08:00:20 is the Sun range, and the guide’s example already referenced my favorite drink!). After booting to the ok prompt, I set those by doing:

ok 1 0 mkp
ok 53 1 mkp
ok 8 2 mkp
ok 0 3 mkp
ok 20 4 mkp
ok c0 5 mkp
ok ff 6 mkp
ok ee 7 mkp
ok 0 8 mkp
ok 0 9 mkp
ok 0 a mkp
ok 0 b mkp
ok c0 c mkp
ok ff d mkp
ok ee e mkp
ok 0 f 0 do i idprom@ xor loop f mkp
ok setenv diag-switch? false

The final diag-switch? false brings the machine out of “diagnostic mode”, which means I don’t spend 10 minutes painstakingly verifying the 64MB of memory on every boot, and also don’t try (fruitlessly) to LAN boot.

With a working NVRAM chip, my SPARCstation now keeps the time and, more importantly, can be booted without futzing with configuration!