>> dump -b 0xBFC00000:0xBFC80000will dump 512 KB of the PROM range. Make sure you capture all the output into a file, and then convert the result into a raw binary. (If you don't have time to write a converter tool yourself, there is an example converter in the GXemul source code distribution: experiments/sgiprom_to_bin.)
NOTE: RUNNING THE PROM DOES NOT WORK YET! These are preliminary instructions on how it may work when the new GXemul framework, and the SGI O2 emulation in that framework, is complete enough.
Assuming you have extracted the PROM from your real machine into a file called prom, the following example shows how to start up the emulator in the paused state with the PROM image:
$ gxemul -V -e sgi_ip32 raw:0xffffffffbfc00000:prom GXemul (unknown version) Copyright (C) 2003-2009 Anders Gavare mainbus0 |-- ram0 (128 MB at offset 0) |-- prom0 (512 KB at offset 0x1fc00000) \-- cpu0 (R5000, 100 MHz) cpu0: raw:0xffffffffbfc00000:prom loaded Raw file: entry point 0xffffffffbfc00000 loadable chunk: vaddr 0xffffffffbfc00000, 524288 bytes GXemul>
Legacy framework
As the new framework is not working yet, and especially the SGI O2 emulation mode in it, the following notes about the legacy framework may also be of interest.
In order to experiment with a raw PROM dump using the legacy framework, the following command line may be used as a starting point:
$ gxemul -Q -X -e o2 0xbfc00000:prom
-Q turns off GXemul's built-in PROM emulation, allowing raw PROM images to be used. -X is used to display the graphical framebuffer. (-X can be omitted if only serial console is what you want.) And finally, -e o2 selects the emulation mode. 0xbfc00000 is the standard ROM address for MIPS-based systems.
The photo on the left is from the real machine. The other two are screenshots of the PROM running experimentally in an older version of GXemul from 2005, using -Y2 framebuffer scaledown.
NOTE: Running the O2 PROM image broke somewhere between release 0.3.8 and 0.4.0. Running with graphics broke between 0.3.7 and 0.3.8. The screenshots above show what it looked like back then, but right now nothing works due to bit rot.
Devices in today's GXemul are not implemented well enough to let the PROM run. As of 2018-09-06, with a IP32 PROM version 4.13 for example, it hangs with the above command line, unless a loop is patched with a "nop".
$ gxemul -QXe o2 -c 'put w 0xbfc058d8, 0' 0xbfc00000:prom
This causes the PROM to at least output a prompt on the serial port:
SL-9600-8E>
but nothing else works.