DPROM / NVRAM Battery Replacement Page - index

IDPROM / NVRAM Battery Replacement Page
By Chetan Bhargava
Today is May 16, 2006
This page is about fixing of Sun IDPROM (48T02) battery, preferably on a weekend :-).
Fixing NVRAM is not a difficult task if you have the right tools. You would need this
FAQ when you get one of the below messages
Sun Workstation, Model SunXXXXXX Series.
ROM Rev X.X, XXMB memory
installed
ID PROM invalid.
Testing 0 Megabytes of Memory
... Completed.
ERROR: missing or invalid ID
prom
Requesting Internet address for
0:0:0:0:0:0
Sun Workstation, Model Sun-XXXX
Series.
Type 4 Keyboard
ROM Rev X.X, XXMB memory installed,
Serial #16777215
Ethernet address ff:ff:ff:ff:ff:ff,
Host ID ffffffff
Invalid format type in NVRAM
The IDPROM contents are invalid
NVRAM ??? You would ask "What is NVRAM?". NVRAM is a small 24 pin DIP (Dual Inline
Package) integrated circuit that keeps track of various system parameters such as serial number,
ethernet MAC (Media Access Control) address, HOSTID, date of manufacture, etc. I bought one
IPX machine and that had a bad NVRAM, I went through many resources, different data sheets,
etc and finally replaced the battery of the NVRAM chip M48T02. I read the IDPROM FAQ at
NVRAM/HOSTID FAQ and it said a little bit about replacing the battery of 48T02. I tried and
replaced the battery only and here am I sharing my experience with the battery of 48T02.
Disclaimer
Please carry out these instructions on your own risk, I do not take responsibility of the
adverse consequences caused by following these instructions.
I would recommend you to read the HOSTID/NVRAM FAQ before performing the
actual procedure. This FAQ assumes that your NVRAM battery is dead and the data in
the NVRAM is invalid. If your battery is not dead and you don't want to loose the
NVRAM data, NVRAM back up instructions are on the NVRAM/HOSTID FAQ.
Step 1 Make sure that the power is turned off. Back you data off the nvram if it is alive, *before*
removing the chip. Instructions to back-up the data are on the NVRAM/HOSTID FAQ page.
Carefully remove the NVRAM from the machine. You can use the IC extractor tool to do that.
Look for the pin 1 markings on the top. Step 2 As you could see that the whole chip is divided into
2 parts. The upper part contains the battery & crystal oscillator and the bottom half is the
Integrated Circuit. The battery and oscillator are piggy-backed on the IC. Both the parts Battery
(upper) and IC (lower) are connected to each other via 4 wires (2 on each side). The wires can be
seen in the picture below. On both sides the wires are covered with some epoxy glue. Step 3
Carefully scrap the epoxy compound using sharp blade. Do not scratch too hard as you might
break the wires. I used my 50W soldering iron to remove the compound. You can use a lower
wattage iron but that will take time. Step 4 After you have exposed the two wires cut them from
the end coming from the battery. The wire towards the pin 12 of the chip is - in and the opposite
wire is + in. Step 5 You will need a 3V battery to power the chip. I have used a CR2032 lithium
battery. Carefully solder thin and flexible insulated wires to the + and negative side of the battery.
The wires should be thin and flexible so that they won't hurt the wires coming out of the chip. I
have used a short length of wires from the IDE cable. I have used the 2 wires from the pin 1 end
of the ide cable so that you get one colored wire and one white wire. Step 6 Cut the length of wire
you just soldered to an appropriate length. Solder these wires very carefully to the wires that
come out of the chip. Take extra precaution on the polarity of the battery, and try to avoid short
circuit. Step 7 Verify that the soldered wires at the chip end are some distance apart and there is
no short circuit. Now place a tiny drop of super glue on the bottom side of the battery and place
the battery on the top of the chip casing. Step 8 Now fix the chip in the IPX socket (from where it
came out) and do a quick and dirty programming. Turn off power... wait for couple of minutes...
power up the Sun and verify that the settings are ok. Step 9 If everything works out ok, we need
to seal the solder joint using super glue or some other sealing compound. In the picture below
you can see the battery glued to the case of M48T02 Remove the chip carefully without shorting
the soldered terminals. Put ample amount of glue just to cover the pit we made. Secure the
battery on top of the chip by placing some more glue on the sides. I have this prototype working
and had no problems. If you find this page useful or if you fix your NVRAM, please do write
comments. Quick Programming Guide from - www.squirrel.com/squirrel/sun-nvramhostid.faq.html This is for folks who need to replace their NVRAM chip in a sun4c/m/u machine
and don't want to bother with XOR calculations or the details above with mkp. I am assuming that
you have a brand new NVRAM chip in hand. All numbers below are in hex.
First, decide what ethernet address you want to use and what you want for the last three byte of
the hostid. The ethernet address should begin with 08:00:20. There are no restrictions on the last
three bytes of the hostid. Say the ethernet address is 08:00:20:E3:E4:E5 and the last three bytes
of the hostid are H1, H2, H3. The first byte of the hostid will automatically be set according to the
system type (real-machine-type variable in the OpenBoot monitor).
set-defaults
setenv diag-switch? false
8 0 20 E3 E4 E5 H1H2H3 mkpl
Control-D
Control-R
If mkpl does not print a copyright notice, then it changed the IDPROM. You should make sure by
looking at the idprom after using mkpl by executing the .idpromcommand.
e.g. 8 0 20 13 de ad c0ffee mkpl will set the last three bytes of the hostid to c0ffee and the
ethernet address to 08:00:20:13:de:ad.
N.B. mkpl will only work if the IDPROM checksum is invalid. Otherwise it will simply print a
copyright notice after you type the Control-R. So, if you can't get mkpl to work, you can try making
the IDPROM checksum invalid. You can invalidate the IDPROM checksum in an NVRAM with a
valid IDPROM checksum by executing
f idprom@ 1 xor f mkp
(it seems that invalidating the version number will also do, e.g. 17 0 mkp). If you still can't get
mkpl to work, then you should try using mkp as described in the above section. This note was
added because on some machines, set-defaults will set the IDPROM checksum according to the
other values in the IDPROM.
On this page, I will describe how to solder new batteries to a Sun NVRAM chip to get it
working again. The way I do it is not the only way, see
http://www.bhargavaz.net/nvram/nvram.html for another description.
If you do not feel comfortable soldering, and have a few bucks to spare, you could just
buy a new NVRAM chip, either the original SGS-Thomson Timekeeper chip, or a
compatible (several companies make them, see the squirrel faq, the link is at the bottom
of this page).
So fix your NVRAM using this guide only if you have soldering skills and are not faint
of heart. I made the pictures on two occasions, most show an NVRAM with a yellow
sticker (which I come across often), some show an NVRAM with a white sticker (from
my SLC).
You'll need the NVRAM with the empty battery, two 1.5Volt batteries (even used ones
are okay), a soldering iron, some wire, a saw or Dremel tool and a knife.
When taking out the NVRAM, carefully note on which side the dot is! The NVRAM
should be reinserted the same way it came out.
Scrape off the epoxy of the NVRAM on the side opposite the dot. Behind the epoxy are
metal wires which need to stay intact. Scrape away until you see the wires.
You can solder new batteries to it directly, which will work, although now the new
batteries are parallel with the existing battery. I normally remove the existing battery, by
taking the saw and saw the top half in two, in the middle of the NVRAM. The half with
the dot contains a crystal, the other half a 3V battery. Try to keep the pins from bending.
Now use the knife to lift the part with the battery (opposite the dot).
Now, gently wiggle the top piece with the battery until the wires break, use the knife on
the epoxy on the side if needed. The battery should now come off, with pieces of the wire
(that's okay). The wires from the lower half to the top half will be visible now. If needed,
scrape away a bit more until you feel confident that you can connect wires to them.
Dispose of the battery in an environmental-friendly way.
The two exposed wires should be connected to the batteries. Solder a short piece of wire
from one battery's plus to the other battery's minus, putting them in series. Solder a wire
from the piece of wire close to pin 12 to the minus of the first battery and a wire from the
piece of wire close to pin 13 to the plus of the second battery. The pins are number 1-24,
starting at one at the dot, going down the row to 12, then opposite 12 is 13, going up to
24. You can use penlites, or any other batteries, as long as it provides 3Volts (you can
also use one 3Volt button cell which takes less space and generally looks nicer). If you
like, you can use a battery holder as well.
Cover all bare wires with something insulating (scotch tape for instance). If you have
epoxy you can use it to put on the NVRAM where you attached the wires. Now you are
ready to insert the NVRAM into your Sun. Make sure you insert it correctly (the dot on
the right side) and be careful in case some pins were slightly bend. The picture shows a
Sun SLC.
Here's a picture submitted by David Griffith of his IPX with a fixed battery, using a
button cell in a battery holder.
All that's left now is to boot up the Sun and reprogram the NVRAM. See the excellent
NVRAM FAQ for information on how to do this.
If the link doesn't work, try this local copy, which may be outdated.
S