How to fix invalid contents of IDPROM on a Sun Blade 100 UltraSparc workstation.
So you have found a nice UltraSparc workstation, the Sun Blade 100 (or 150), but when starting it complains about "The IDPROM contents are invalid". The Ethernet address and Host ID have become invalid as the integrated battery of the NVRAM chip has died.
Sun Blade 100 (UltraSPARC-IIe), No Keyboard
OpenBoot 4.0, 128 MB memory installed, Serial #17825792.
Ethernet address 0:8:0:0:0:10, Host ID: 01100000.
The IDPROM contents are invalid
Luckily the content side is easy to fix from the OBP. The battery on the other hand is not. But luckily all Sun Blade 100 models seems to be using a coin cell instead of the integrated one. Unfortunately, no such luck with the Sun Blade 150 model. There you need drill.
Find the ethernet address
Find the MAC address, it should be on a sticker on top of the NVRAM chip.
For this tutorial we will use the example MAC address of: 00:03:BA:04:BB:33
Find the eeprom chip device address
First find the the address of the eeprom NVRAM chip.
ok show-devs
/SUNW,UltraSPARC-IIe@0,0
/pci@1f,0
/virtual-memory
/memory@0,0
/aliases
/options
/openprom
/chosen
/packages
/pci@1f,0/SUNW,m64B@13
/pci@1f,0/pci@5
/pci@1f,0/ide@d
/pci@1f,0/sound@8
/pci@1f,0/pmu@3
/pci@1f,0/usb@c,3
/pci@1f,0/firewire@c,2
/pci@1f,0/network@c,1
/pci@1f,0/isa@7
/pci@1f,0/ebus@c
/pci@1f,0/ide@d/cdrom
/pci@1f,0/ide@d/disk
/pci@1f,0/pmu@3/fan-control@0,c8
/pci@1f,0/pmu@3/beep@0,b2
/pci@1f,0/pmu@3/ppm@0,b3
/pci@1f,0/pmu@3/i2c@0,0
/pci@1f,0/pmu@3/i2c@0,0/dimm@0,a0
/pci@1f,0/pmu@3/i2c@0,0/card-reader@0,40
/pci@1f,0/pmu@3/i2c@0,0/temperature@0,30
/pci@1f,0/isa@7/serial@0,2e8
/pci@1f,0/isa@7/serial@0,3f8
/pci@1f,0/isa@7/power@0,800
/pci@1f,0/isa@7/dma@0,0
/pci@1f,0/isa@7/dma@0,0/parallel@0,378
/pci@1f,0/isa@7/dma@0,0/floppy@0,3f0
/pci@1f,0/ebus@c/idprom
/pci@1f,0/ebus@c/eeprom@1,0
/pci@1f,0/ebus@c/flashprom@0,0
/openprom/client-services
/packages/kbd-translator
/packages/dropins
/packages/obp-tftp
/packages/terminal-emulator
/packages/disk-label
/packages/deblocker
/packages/SUNW,builtin-drivers
ok cd /pci@1f,0/ebus@c/eeprom@1,0
ok .properties
model mk48t59
address fff58000
reg 00000001 00000000 00002000
device_type nvram
name eeprom
ok
The eeprom is located at address fff58000
, the clock and host information data we need to fix is at memory offset 1fd8
resulting in address fff59fd8
.
Write the MAC and Host ID
ok 01 fff59fd8 c!
ok 83 fff59fd9 c!
ok 00 fff59fda c!
ok 03 fff59fdb c!
ok ba fff59fdc c!
ok 04 fff59fdd c!
ok bb fff59fde c!
ok 33 fff59fdf c!
ok 00 fff59fe1 c!
ok 00 fff59fe2 c!
ok 00 fff59fe3 c!
ok 04 fff59fe4 c!
ok bb fff59fe5 c!
ok 33 fff59fe6 c!
Calculate the XOR checksum and write it
ok 01 83 xor
82 ok 00 xor
82 ok 03 xor
81 ok ba xor
3b ok 04 xor
3f ok bb xor
84 ok 33 xor
b7 ok 04 xor
b3 ok bb xor
8 ok 33 xor
3b ok
3b fff59fe7 c!
And reboot.
You should now have a working system
Sun Blade 100 (UltraSPARC-IIe), No Keyboard
OpenBoot 4.0, 128 MB memory installed, Serial #50641715.
Ethernet address 0:3:ba:4:bb:33, Host ID: 8304bb33.