Replacing timekeeper battery (NVRAM) on a SunBlade 100

Skip to first unread message

Tony Nicholson

Apr 20, 2019, 9:11:19 PM4/20/19
I recently changed the NVRAM battery-backed up timekeeper chip on my
SunBlade 100.

Because there's no system specific details for the SunBlade 100/150
in the most recent "FAQ about Sun NVRAM/hostid" at

I thought I'd post the details here!

First - make sure you know the hostid/Ethernet address and eeprom settings
(saving a copy of the output of a 'prtconf -vp' and 'eeprom' command helps).

For my system the hostid 803957d0 and ethernet is 0:3:ba:9:57:d0.

Power off - change M48T59Y-70PC1 timekeeper battery backed up RAM chip,
power on then wait a few minutes for the system to rebuild the device
tree and test memory.

Set all EEPROM variables to their default values (where "ok" is the
OpenBoot prompt on the console) -

ok set-defaults
ok reset-all

Hit Stop-A after memory-test

Find physical address of M48T59Y-70PC1 timekeeper battery backed up RAM
chip. We need to do this to reprogram the hostid/Ethernet address.

ok show-devs
ok cd /pci@1f,0/ebus@c/eeprom@1,0
ok .properties
model mk48t59
address fff4a000
reg 00000001 00000000 00002000
device_type nvram
name eeprom

Query the virtual address to obtain the Physical Address (PA)

ok fff4a000 map?
G:0 W:1 P:1 E:1 CV:0 CP:0 L:0 Soft1:1 PA[40:13]:fff8800 PA:1fff1000000
Diag:0 Soft2:0 IE:0 NFO:0 Size:0 V:1

Map the PA in address space 0 to virtual address 0 (page length is 0x2000)

ok 1fff1000000 0 0 map

Now change the IDPROM area which are 16 bytes at offset 0x1fd8,
Ethernet address 00:03:ba:09:57:d0 Hostid 0x830957d0,
last byte is XOR checksum of previous 15 bytes]

ok 1 1fd8 c! [Start of IDPROM]
ok 83 1fd9 c! [Machine type 83 for Sun Blade 100 sun4u, byte 1 of serial #]
ok 0 1fda c! [Ethernet address]
ok 3 1fdb c!
ok ba 1fdc c!
ok 9 1fdd c!
ok 57 1fde c!
ok d0 1fdf c!
ok 0 1fe0 c! [Date code]
ok 0 1fe1 c!
ok 3 1fe2 c!
ok ba 1fe3 c!
ok 9 1fe4 c! [serial # bytes 2-4]
ok 57 1fe5 c!
ok d0 1fe6 c!
ok 82 1fe7 c! [Checksum]

ok 1fd8 10 dump
0 1 2 3 4 5 6 7 \/ 9 a b c d e f 01234567v9abcdef
1fd0 ff ff ff ff ff ff ff ff 01 83 00 03 ba 09 57 d0 ............:.WP
1fe0 00 00 03 ba 09 57 d0 82 ff ff ff ff ff ff ff ff ...:.WP.........

ok .idprom
Format/Type: 1 83 Ethernet: 0 3 ba 9 57 d0 Date: 0 0 3 ba
Serial: 9 57 d0 Checksum: 82

Set screen resolution for XVGA monitor (default is 1152x900x76 for Sun monitor)

ok setenv output-device screen:r1280x1024x60

ok reset-all

Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
Copyright 2005 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.17.1, 1280 MB memory installed, Serial #50943952.
Ethernet address 0:3:ba:9:57:d0, Host ID: 830957d0.

All Done! Now you can restore the eeprom boot device settings.

I hope this assists others with similar hardware.



Oct 1, 2019, 12:07:56 PM10/1/19
Hi, i would like your help in order to solve a problem.

I have a sun blade 150 with an invalid idprom, right after the NVRAM replacement, all the original environment was restored but there was a boot problem.

It cannot boot from disk neither cdrom.

the following message was showed

ok boot cdrom -s
Boot device: /pci@1f,0/ide@d/cdrom@1,0:f File and arg: -s
SunOS Release 5.8 version Generic_108528-13 64-bit
Copyright 1983-2001 Sun Microsystems, Inc. All rights reserved.

cat: Cannot stat stdout
adb: getexecname() failed
/sbin/rcS: /etc/vfstab: cannot create

INIT: Cannot create /var/adm/utmpx
INIT: failed write of utmpx entry:" "
INIT: failed write of utmpx entry:" "
INIT: execle of /etc/sulogin failed; errno = 2
ENTER RUN LEVEL (0-6, s or S) [2]:s
/dev/fd/3: /dev/fd/3: cannot open
ENTER RUN LEVEL (0-6, s or S) [2]:

i found some info rel
ated about, but i would like to know whether you have another suggestion for me.
Is there any way to modify the NVRAM DATE/MM/YEAR TOD since the open boot 4.17.1?

Thanks in advance...


May 11, 2020, 5:20:36 PM5/11/20
Hi Tony,

I have the same issue on my NOS Blade 100 that I just started. Mine has OpenBoot 4.0.

I followed your instructions, but the address mapping command :

> ok 1fff1000000 0 0 map

Just gives me :


Which doesn't look right. Is there a typo or is OpenBoot 4.0 different ?

Thanks for helping,


Tony Nicholson

May 11, 2020, 6:57:23 PM5/11/20
This all works with the OpenBoot firmware version 4.17.1 on
my SunBlade 100 - and I suspect other firmware versions may
do this differently.

OpenBoot incorporates a Forth-like interpreter. Have a look
at the defined words by typing "words" to the ok prompt
(without the double quotes). map? means this word isn't

There may be an alternative way of programming the memory
management hardware with your version.


May 12, 2020, 5:00:25 PM5/12/20
Thanks a lot for your answer. I updated my machine to 4.17.1 but still have the issue. This time the address matches yours at fff4a000.

"words" gives me :
size seek write read close open

no map ...

I had a look at the doc :

Could not find any other "map" than "map?"

I tried "memmap" but it froze OpenBoot. Do you have any other idea ?

Thanks again.

May 12, 2020, 5:53:21 PM5/12/20
Allright I got it working by following these instructions :

Warning : 8) should read "ok 1fd8 +" (1fd8 instead of 1fd0).

I seem to have a functional Blade, thanks to my Dremel and your help :-)
Reply all
Reply to author
0 new messages