On 02 May 2016 at 22:56 "Maciej W. Rozycki" <macro at linux-mips.org>
wrote:
On Mon, 2 May 2016, Robert Jarratt wrote:
Other
than that maybe it's NVRAM after all. But what could it be then
that
did not show up in your testing? Could it be that
the settings and
environment variables stored there are protected with a checksum (or a
signature) which happened to be correct for the random contents after
power was restored and that in turn confused DROM diagnostics? Can you
wipe NVRAM with your program, reinstall the DROM chip and see if the
error
returns?
This thought has crossed my mind. However, since I had to change the
battery
that backs up the NVRAM in any case, then surely the memory would have
been
zeroed? This NVRAM is battery backed, right? The NVRAM does contain
data, I
have verified this with my program, so something is repopulating it
after
the battery has been changed. I am slightly reluctant to zero the memory
on
purpose in case I can no longer boot the machine (I would save the
contents
before zeroing of course).
I don't think you can assume power-cycling NVRAM (which is effectively
what you've done here by putting a new battery) will zero it. It would if
there was some kind of a reset signal asserted at poweron that would set
the flip-flops to a known state. But the KM6264B chip does not appear to
have such a feature, nor an external reset input. So we need to assume
its contents are random after a powerup. Have you ever used Sinclair ZX
Spectrum? It had its video adapter active from powerup and you could
briefly see the random contents of video RAM on the screen.
I did a test last night which failed, but realised I did it wrong. I am away
from home again now and will try that test again, plus
the suggestions below.
Thanks
Rob
I understand your reluctance. The NVRAM is indeed supposed to be backed
with the same battery the RTC is. There's just a slight chance the
battery circuit is not operating correctly. There's no battery status bit
in the NVRAM, but there is one in the RTC. You should be able to verify
it with:
>> d -b pmem:1c0000e00 0d
>> e -b pmem:1c0000e20
this will read BQ4285 RTC chip's register D. If this comes out as 80,
then the battery is giving power to the chip. If this is 00, then there
is no battery power available. Of course a broken PCB trace could make
battery power reach one of the two chips only.
BTW, does your SRM console have a TEST command? If so, then have you
tried it? Of course it might want to call into DROM and thus fail rather
spectacularly if it's absent, but chances are it might not and you may get
useful output from it.
Maciej