10 |
|
|
11 |
<!-- |
<!-- |
12 |
|
|
13 |
$Id: misc.html,v 1.50 2005/08/16 05:15:24 debug Exp $ |
$Id: misc.html,v 1.53 2005/09/04 14:00:25 debug Exp $ |
14 |
|
|
15 |
Copyright (C) 2003-2005 Anders Gavare. All rights reserved. |
Copyright (C) 2003-2005 Anders Gavare. All rights reserved. |
16 |
|
|
480 |
osconsole=3 |
osconsole=3 |
481 |
>> |
>> |
482 |
</pre> |
</pre> |
483 |
<i>(Note: at the moment, this doesn't work. I must have broken something when |
|
484 |
fixing something else, but this is what it looked like at the time.)</i> |
<p><font color="#ff0000">(Note: at the moment, this doesn't work. |
485 |
<p> |
I must have broken something when fixing something else, but this |
486 |
During bootup, the PROM complains <i>a lot</i> about hardware failures. |
is what it looked like at the time.)</font> |
487 |
|
|
488 |
|
<p>During bootup, the PROM complains <i>a lot</i> about hardware failures. |
489 |
That's because the emulator doesn't emulate the hardware well enough yet. |
That's because the emulator doesn't emulate the hardware well enough yet. |
490 |
<p> |
|
491 |
The command line options used are: -e 3min for |
<p>The command line options used are: <tt>-e 3min</tt> for |
492 |
"DECstation 3min" (5000/1xx), -Q to supress the emulator's own PROM |
"DECstation 3min" (5000/1xx), <tt>-Q</tt> to supress the emulator's own PROM |
493 |
call emulation, -M128 for 128MB RAM (because GXemul doesn't correctly |
call emulation, <tt>-M128</tt> for 128MB RAM (because GXemul doesn't correctly |
494 |
emulate memory detection well enough for the PROM to accept, so it will |
emulate memory detection well enough for the PROM to accept, so it will |
495 |
always believe there is 128MB ram anyway), and -q to supress debug messages. |
always believe there is 128MB ram anyway), and <tt>-q</tt> to supress debug messages. |
496 |
The 0xbfc00000 in front of the filename tells GXemul that it is a raw |
The <tt>0xbfc00000</tt> in front of the filename tells GXemul that it is a raw |
497 |
binary file which should be loaded at a specific virtual address. |
binary file which should be loaded at a specific virtual address. |
498 |
|
|
499 |
|
|
501 |
<h4>Dumping the PROM on a SGI O2:</h4> |
<h4>Dumping the PROM on a SGI O2:</h4> |
502 |
|
|
503 |
The general ideas in this section applies to using ROM images from other |
The general ideas in this section applies to using ROM images from other |
504 |
machines as well. Besides DECstation, I've also tried this on an SGI IP32 |
machines as well. I have also tried this on an SGI IP32 ("O2"), in addition |
505 |
("O2"). |
to the DECstation. |
506 |
<p> |
|
507 |
For the O2, a suitable command to dump the prom memory range is |
<p>For the O2, a suitable command to dump the prom memory range is |
508 |
<pre> |
<pre> |
509 |
>> <b>dump -b 0xBFC00000:0xBFC80000</b> |
>> <b>dump -b 0xBFC00000:0xBFC80000</b> |
510 |
</pre> |
</pre> |
511 |
Make sure you capture all the output (via serial console) into a file, |
Make sure you capture all the output (via serial console) into a file, |
512 |
and then run experiments/sgiprom_to_bin on the captured file. |
and then run <tt>experiments/sgiprom_to_bin</tt> on the captured file. |
|
<p> |
|
|
(2005-01-16: The emulator doesn't really emulate the IP32 well enough to |
|
|
actually run the PROM image without using special hacks, but it might do |
|
|
so some time in the future.) |
|
513 |
|
|
514 |
|
<p> |
515 |
|
|
516 |
|
<a href="sgi-o2-real.jpg"><img src="sgi-o2-real_small.jpg"></a> |
517 |
|
|
518 |
|
<a href="20050817-sgi-o2-success-7.png"><img src="20050817-sgi-o2-success-7_small.png"></a> |
519 |
|
|
520 |
|
<a href="20050817-sgi-o2-success-8.png"><img src="20050817-sgi-o2-success-8_small.png"></a> |
521 |
|
|
522 |
|
<p>The photo on the left is from the real machine. The other two are |
523 |
|
screenshots of the PROM running experimentally in GXemul, using <tt>-Y2</tt> |
524 |
|
framebuffer scaledown. |
525 |
|
|
526 |
|
<p>Normally during bootup, the IP32 PROM does a Power-On test which makes |
527 |
|
sure that the caches and other things are working properly. GXemul doesn't |
528 |
|
emulate all those things well enough for the tests to pass. The |
529 |
|
experimental screenshots above were taken with cache detection skipped |
530 |
|
manually. |
531 |
|
|
532 |
|
<p><font color="#ff0000"> |
533 |
|
In other words: don't expect this to work out-of-the-box with GXemul right |
534 |
|
now. It might work once I've added correct cache emulation.</font> |
535 |
|
|
536 |
|
<p>The command line used to start the emulator, once correct cache |
537 |
|
emulation has been implemented, would be something like <tt>gxemul -XQeo2 |
538 |
|
0xbfc00000:prom.bin</tt>. |
539 |
|
|
540 |
|
<p>The same caution applies when dealing with SGI PROMs as with |
541 |
|
DECstation PROMs: GXemul doesn't really emulate the hardware, it only |
542 |
|
"fakes" devices well enough to fool some things, primarily NetBSD, that |
543 |
|
it is emulating a real machine. ROM code is usually a <i>lot</i> more |
544 |
|
picky about the details. |
545 |
|
|
546 |
|
<p>The graphics used in the O2 is (as far as I know) undocumented. Combining |
547 |
|
some traces of info from how Linux/O2 draws to the screen with some |
548 |
|
reverse-engineering of my own, I've implemeneted enough of the controller to |
549 |
|
let the PROM draw rectangles and bitmaps, but not much more. The SCSI |
550 |
|
controller is not implemented yet either. |
551 |
|
|
552 |
|
|
553 |
|
|