On Sat, 23 Apr 2016, Robert Jarratt wrote:
But from the
discussion referred I gather DROM outputs its diagnostics to
this port too and you might be able to learn what exactly about NVRAM it
Ah OK, so you think the DROM console also outputs to the SROM diagnostics?
Yes, it does -- see the dumps reported in the discussion I referred.
The diagnostic port is just a primitive (bit-banged) serial port driven
directly by the CPU. Any software can poke/peek at it via three CPU pins
(mapped to the SL_XMIT and SL_RCV internal processor registers) -- which
is why it is available early on. There is PALcode support for that port
actually, saving the user of this interface from the need to calculate
timings and to handle individual bits presumably.
The real serial port used for regular operation is wired far away from
the CPU, behind PCI and the ISA bridge (southbridge), off a Super-I/O
chip. You need to have all the hardware almost fully initialised to be
able to talk to that port, so it's of no use before SRM/ARC has taken
over. Also lots of logic has to function correctly for that port to be
accessible, so it's not as usable in diagnostics.
I'd need to build some kind of adapter to do that.
I'll have to research
this. Is there a standard part?
DEC had it internally, obviously, but I don't think you can come across
one. I think wiring an EIA/TIA 232 driver/receiver chip, maybe with the
aid of a small prototyping board, shouldn't be much hassle though --
there's surely schematics for that already available somewhere online.
Also you might be able to correct configuration, e.g.
by poking at
NVRAM or elsewhere appropriately;
Not really sure how to poke the NVRAM without the console, or is that what
you are suggesting?
As I say you can use the SROM mini-console for that, flip J1 to enable
it. The interface is obviously crude (mind that you're running code out
of I$, not much space there to fit fancy stuff) and you need to know the
internals of the machine, to get at the right addresses. But the manual:
I already referred seems to cover all you need.
the manual also suggests
you might be able to bypass the DROM sequence and go to SRM/ARC
directly, which might help recovery too.
I have definitely missed that bit. Which manual says this?
Same manual as above:
"When the SROM code has completed its tasks, it normally loads the DROM
code and turns control over to it. The SROM checks to see if the DROM
contains the proper header and that the checksum is correct. If either
check fails, the SROM code reads a location in the TOY NVRAM. The
location indicates which console firmware (the SRM or the ARC) should be
"When the console firmware is loaded, the header check and the checksum
are checked. If either is in error, the SROM code jumps to its
mini-console routine. With the appropriate adapter, you can attach a
terminal to the CPU's serial port and use the mini-console. Typically,
this port is used in the manufacturing environment."
-- so it looks to me you could temporarily pull DROM from its socket to
bypass this step. You won't have the ability to load the console from a
floppy then of course as this is handled by DROM code, and you may need to
set the TOY NVRAM location for SRM vs ARC correctly (though IIRC the
Avanti series have enough flash space to keep both consoles at once; many
years ago I had access to a Melmac machine, which is very similar to
yours, up to the same form factor).
It is battery
backed indeed and it sits right in the upper right hand
next to the other flashbus devices, as expected -- next to the left there
pair of flashROMs (and a pair of sockets for
another two of the four
supported total), and a socketed DROM chip. Being decoded as a DRAM
bank they are also close to DRAM sockets. Jumpers and LEDs are elsewhere,
but obviously they have less strict PCB routing requirements.
Yes it does help! Thanks for that. At least I now know where the NVRAM
actually is. I have found some parts on Ebay, but I have no idea how to deal
with surface mount though, another research area...
Somehow I doubt an SRAM chip has failed TBH, so replacing it might not
help, there could be something else causing the problem. It would be good
to know what exactly has failed, and with DROM output on the diagnostic
serial port and/or the SROM mini-console you might actually be able to
figure out what's going on here (e.g. fill NVRAM with some bit patterns,
see if they come back right, and if they stick across a power cycle).
Ah, and may I suggest wiping the dust in this area; I dare not think it
might be causing a short or something.