GXemul: Machines: sgi_ip32

Back to the index.

Back to the machine index.


sgi_ip32 machine

The sgi_ip32 machine template tries to emulate an SGI O2 machine, for experiments with NetBSD/sgimips, OpenBSD/sgi, Linux for O2, and possibly also SGI O2 PROMs and/or IRIX in the future.


Experimenting with a PROM from a real SGI O2:

This requires that you dump the PROM memory range from your real SGI O2 machine into a file. Using a serial console hooked up to your O2, executing the PROM command
	>> dump -b 0xBFC00000:0xBFC80000
will 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.