Replacing timekeeper battery (NVRAM) on a SunBlade 100

551 views
Skip to first unread message

Tony Nicholson

unread,
Apr 20, 2019, 9:11:19 PM4/20/19
to
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

http://obsolyte.com/sunFAQ/faq_nvram.html

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
..
/pci@1f,0/ebus@c/eeprom@1,0
..
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?
VA:fff4a000
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
PA:1fff1000000

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.

Tony

jacobo...@none.i2p

unread,
Oct 1, 2019, 12:07:56 PM10/1/19
to
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: SINGLE USER MODE
INIT: execle of /etc/sulogin failed; errno = 2
ENTER RUN LEVEL (0-6, s or S) [2]:s
INIT: SINGLE USER MODE
/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.

www.imhans.com:1004/syshbk/collections/TECHNICALINSTRUCTIONSURE/1-71-1004999.1-1.html
Is there any way to modify the NVRAM DATE/MM/YEAR TOD since the open boot 4.17.1?

Thanks in advance...

Jacobo

marcel...@gmail.com

unread,
May 11, 2020, 5:20:36 PM5/11/20
to
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 :

map?

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

Thanks for helping,

Marcel

Tony Nicholson

unread,
May 11, 2020, 6:57:23 PM5/11/20
to
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
defined.

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

Tony

marcel...@gmail.com

unread,
May 12, 2020, 5:00:25 PM5/12/20
to
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 : https://docs.oracle.com/cd/E19455-01/816-1177-10/816-1177-10.pdf

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

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

Thanks again.

marcel...@gmail.com

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

https://github.com/MrSparc/idprom-repair

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
Forward
0 new messages