I think a two computer solution might be easier. If
one can get early
serial on the target machine, then a small romcc program could read
commands from the serial port, execute them, and transmit back the
results. (I think I even saw an email from someone that did this in pure
Do you mean llshell?
Then, a specially modified emulator could run the
original bios on a second
machine, forwarding memory reads/writes and io reads/writes through the
serial port to the target machine.
It should be possible to create a sort of emulator/redirector that executes
most of the stock bios code in an emulator environment (say bochs), but
redirects all in's, out's & memory accesses to the target
hardware via serial. (llshell on the target
can already do this part). Eventually, youd end up with a trace of commands
that init the ram among other things.
Although one gotcha would be anything that's timing related. Memory/IO access
proxied through the serial port would also be orders of magnatude slower.
When the DRAM test completes, we'll all be dead :)
Also, rom bios code memory references would have to be excluded as well
as anything that could upset the serial port.
What about handling stuff like cpu/mmu state transitions
(ie real mode to protected mode to unreal mode, etc)? Cache?
Perhaps the proxied memory access could be limited to just a certain range
If you use llshell, note that the current version doesnt support amd's
64bit registers/addressing yet. p4/32bit is ok.