Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Strange NVRAM corruption on Sun Blade 2500



On Fri, 19 Sep 2014, Martin Husemann wrote:

> Anyway, I am not looking for advice to recover this machine (it already is, I
> am typing this message there), but hints how to prevent this from happening
> again or reasons that might have caused it (i.e.: bugs in our code).

Have you checked to see if anything in the kernel is attaching to the 
SEEPROM?  

The SEEPROM is separated into two sections, the first section is the ID 
prom which contains important information that's used to boot the box.  
If that gets corrupted the board will not even configure DRAM.  Luckily, 
that section is protected with a hardware write-protect strapping on the 
SEEPROM.

The second half holds the NVRAM contents.  And yes, some of the 
environmental variables don't have defaults, so set-defaults will not 
recover them.

The first thing I would recommend is to determine whether it's the kernel 
or OBP that's writing to the device.  I haven't been following the code 
very closely, but if someone has implemented an NVRAM driver for the 
SEEPROM similar to the old NVRAM driver, it could be writing bad data 
during shutdown.

The next thing would be to dump all the parameters being passed to the 
client interface to shut the box down and make sure they are sane.  

Finally, it is possible that the problem is being caused by the MMU.  If 
the client call is relying on he kernel to manage it's mappings, and 
something has happened to the one containing the cached copy of the NVRAM 
settings, it may write out incorrect data to the SEEPROM.  But if the 
client terminates, OBP will take over the MMU and that problem won't 
occur.

Eduardo


Home | Main Index | Thread Index | Old Index