On Wednesday 23 February 2005 23:37, Adam Sulmicki wrote:
well if you are determined and/or have funding there might be two other ways.
- I recall Ron describing rom-as-ram trick to get the emu86
running and get the memory setting this way. Slow as molasses I'm told.
Any pointers? my mail archive does not throw up aything.
- get a pci debugger card. around $5k i think. can watch the pci
traffic on it to see what it writes as ram config. It does not always work but when works it is pretty good.
Jeez. That is a whole lot of money. Perhaps a HP LA might do the job. I might be able to get hold of one. Or rig up a couple of PALs to snoop on the bus - presuming that the load dont screw up the timing.
rgds jtd
On Thu, 24 Feb 2005 sherlock@vsnl.com wrote:
Any pointers? my mail archive does not throw up aything.
it's complex. You have to compile the emulator with romcc, and then romcc uses the standard bios as the target. It would be a heroic hack!
But, at the end, we would have the ability to run the fuctory BIOS from power-on under emulation and work out all the chip secrets.
ron
On Thu, Feb 24, 2005 at 08:02:29AM -0700, Ronald G. Minnich wrote:
On Thu, 24 Feb 2005 sherlock@vsnl.com wrote:
Any pointers? my mail archive does not throw up aything.
it's complex. You have to compile the emulator with romcc, and then romcc uses the standard bios as the target. It would be a heroic hack!
But, at the end, we would have the ability to run the fuctory BIOS from power-on under emulation and work out all the chip secrets.
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 assembler.)
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.
Thoughts? -Kevin
On Mon, 28 Feb 2005, Kevin O'Connor wrote:
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 assembler.)
That is a *very* cool idea.
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.
I like it a lot.
ron
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 assembler.)
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 known).
If you use llshell, note that the current version doesnt support amd's 64bit registers/addressing yet. p4/32bit is ok.
On Tue, 1 Mar 2005, Bryan E. Chafy wrote:
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 known).
My current understanding of how linuxbios works is very limited but, is there an absolute requirement that this should occur over a serial port?
Best regards
Peter K
On Tue, 1 Mar 2005, Peter Karlsson wrote:
My current understanding of how linuxbios works is very limited but, is there an absolute requirement that this should occur over a serial port?
no. recall this is a just a hack to figure out what the bios is doing, not some permanent thing.
ron
On Tue, 1 Mar 2005, Ronald G. Minnich wrote:
no. recall this is a just a hack to figure out what the bios is doing, not some permanent thing.
Ok, it's just that I have an intel m/b (i875-based) and from what I've gathered there's no support for any newer intel chips than the 440xX, so a hack like that would perhaps enable me to experiment (me play to ;-). Of course I need to get a hold of a bios-saviour kit first since this is my only 'puter (currently)...
Best regards
Peter K
* Peter Karlsson petekarl@student.chalmers.se [050302 13:31]:
Ok, it's just that I have an intel m/b (i875-based) and from what I've gathered there's no support for any newer intel chips than the 440xX, so a hack like that would perhaps enable me to experiment (me play to ;-). Of course I need to get a hold of a bios-saviour kit first since this is my only 'puter (currently)...
A good way for the adventurous is to boot the machine, swap the chip while it is running, flash the new chip, and reboot. This way you only need a decent chip claw for not even 10 bucks.
Yes, you do risk wasting your motherboard theoretically, and no, it never happened to me in the last 5 ys
Stefan
My current understanding of how linuxbios works is very limited but, is there an absolute requirement that this should occur over a serial port?
No, however getting higher speed devices to work may require some amount of working memory, interrupts, etc (the parallel port might be ok however). IMO, once memory is working (and interrupts enabled), much of the hard work is done.