• Please review our updated Terms and Rules here

How-To: workaround when your Sun Ultra-5/10 NVRAM no longer works

BLinux

Member
Joined
Apr 20, 2016
Messages
18
Location
San Diego, California, USA
New member here... mainly just joined to sell off my old Sun and other ancient computer equipment. But, as I was digging through old files, I found stuff that I thought might be useful to the folks here so I'm posting it in hopes this becomes an archive for such info.

As the old Sun systems get older, eventually the NVRAM dies. Of course, you could just replace the chip, solder on a connection to replaceable batteries, etc., but in the interim, here's a procedure you can follow that will set the datetime and hostid:

1. power on system
2. when you see “The IDPROM contents are invalid”, hit Stop-A
3. enter the following commands at “ok” prompt:

ok set-defaults
ok 1 0 mkp
ok 80 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


4. now, enter ‘banner’ and you should see:

Ethernet address: 8:0:20:c0:ff:ee, Host ID: 80c0ffee.

The commands in step #3 above manually program the Ethernet and Host ID to the values you see in the line above. Normally, these things are saved in the NVRAM chip when the battery is working. Bare in mind, the address 8:0:20:c0:ff:ee is a mock up address which should work fine as long as you don’t use the same mock up address on another machine on the same network. You can change the value of the last 3 bytes to anything you wish as long as it doesn’t conflict with another Sun machine’s address.

5. now restart with:

ok reset

6. after the Solaris operating system boots up, login as ‘root’ and set the time with:

root# date 0502212911

This sets the date/time to May 2nd, 21:29 hours, 2011. The format is:

mmddHHMMYY

mm=2 digit month, dd=2 digit day of month, HH=hours, MM=minutes, YY=last 2 digits of year
 
You can also bore into the IC and break out the wires to the battery. I've done this on a number of my old SPARC's with a dremmel, solder some wires on and feed it a 3.3v or 5v battery (depending on which is applicable).

"nvsave" or "nvstore" (depending on obp version) will try to write back your settings.

one problem .. your setting the host ID to 80 hex. That's a U1. Whilst that may 'work' for many things, your potentially using the wrong kernel and some buses are enumerated based upon this value.

nice guide though.

Also: http://lib.ru/TXT/faqsunnvram.txt

Gives a little more depth on it.
 
Hi, I've got a Sun Blade 100 on gumtree and it was working fine, except for the NVRAM not storing data. I found some resources on google where people did what you've. mentioned above. I've soldered a battery on the contacts of the NVRAM, put it back to the machine and reprogrammed it. Everyrthing was fine except that it was defaulting the boot to Net and I don't have a unix keyboard to abort the operation.

Then thought on disconnecting the battery from the NVRAM to clean it up and then re-program it and define the boot-device to disk, however, my. machine doesn't boot anymore. I don't get a beep, nothing on screen... I tried to make my own serial connection to the serial port using a FTDI cable, but didn't get anything. Do you have a clue on what may be going on or any directions on how I can troubleshoot it?

I'm afraid of going to eBay and spending 100+ dollars on a new NVRAM and it could be something else.
 
You don't need a keyboard if you have a machine you can connect to the serial port and have a terminal emulator.

The issue is that by default the PROM will run in diagnostic mode, which is why it's trying to net boot.

You'll need to connect your PC/terminal to the serial port via a NULL modem cable, use 9600N1 (I believe for this age of machine) and don't connect a keyboard. Power on the machine and when it starts to try to net boot use the terminal program's "Send BREAK", or disconnect the serial cable and reconnect it at a pinch. The system will now drop into the OpenPROM command line.

At this point type: setenv diag-switch? false

You can power-off (using the "power-off" command), disconnect the serial cable, connect the keyboard and Bob's your aunty!
 
As the old Sun systems get older, eventually the NVRAM dies. Of course, you could just replace the chip, solder on a connection to replaceable batteries, etc., but in the interim, here's a procedure you can follow that will set the datetime and hostid:

1. power on system
2. when you see “The IDPROM contents are invalid”, hit Stop-A
3. enter the following commands at “ok” prompt:
Now there's been the big problem on running OpenBoot commands on my SunBlade 100: it never had the keyboard with it. It had been left behind when a tenant moved out (I think it had been his remote terminal for Lehman Brothers), and I had to do a bit of fiddling to get it to boot a Solaris install CD using a conventional PC USB keyboard.

If I make it to VCF East this weekend, maybe I'll either find a KB and NVRAM, or I'll just see if someone wants to buy it (cheap).
 
Back
Top