4 |
<table border=0 width=100% bgcolor="#d0d0d0"><tr> |
<table border=0 width=100% bgcolor="#d0d0d0"><tr> |
5 |
<td width=100% align=center valign=center><table border=0 width=100%><tr> |
<td width=100% align=center valign=center><table border=0 width=100%><tr> |
6 |
<td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6"> |
<td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6"> |
7 |
<b>Gavare's eXperimental Emulator: </b></font> |
<b>Gavare's eXperimental Emulator:</b></font><br> |
8 |
<font color="#000000" size="6"><b>Experimenting with GXemul</b> |
<font color="#000000" size="6"><b>Experimenting with GXemul</b> |
9 |
</font></td></tr></table></td></tr></table><p> |
</font></td></tr></table></td></tr></table><p> |
10 |
|
|
11 |
<!-- |
<!-- |
12 |
|
|
13 |
$Id: experiments.html,v 1.92 2005/09/18 19:54:12 debug Exp $ |
$Id: experiments.html,v 1.96 2006/02/18 13:15:20 debug Exp $ |
14 |
|
|
15 |
Copyright (C) 2003-2005 Anders Gavare. All rights reserved. |
Copyright (C) 2003-2006 Anders Gavare. All rights reserved. |
16 |
|
|
17 |
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
18 |
modification, are permitted provided that the following conditions are met: |
modification, are permitted provided that the following conditions are met: |
198 |
|
|
199 |
<tr> |
<tr> |
200 |
<td align="left" valign="top" width="200"> |
<td align="left" valign="top" width="200"> |
201 |
<b><tt>cons</tt>:</b> |
<a name="expdevices_cons"><b><tt>cons</tt>:</b></a> |
202 |
<p>A simple console device, for writing |
<p>A simple console device, for writing |
203 |
characters to the controlling terminal |
characters to the controlling terminal |
204 |
and receiving keypresses. |
and receiving keypresses. |
234 |
|
|
235 |
<tr> |
<tr> |
236 |
<td align="left" valign="top"> |
<td align="left" valign="top"> |
237 |
<b><tt>mp</tt>:</b> |
<a name="expdevices_mp"><b><tt>mp</tt>:</b></a> |
238 |
<p>This device controls the behaviour of CPUs in an emulated |
<p>This device controls the behaviour of CPUs in an emulated |
239 |
multi-processor system. |
multi-processor system. |
240 |
<p>Source code: <font color="#0000f0"><tt>src/devices/dev_mp.c</tt></font> |
<p>Source code: <font color="#0000f0"><tt>src/devices/dev_mp.c</tt></font> |
338 |
|
|
339 |
<tr> |
<tr> |
340 |
<td align="left" valign="top"> |
<td align="left" valign="top"> |
341 |
<b><tt>fb</tt>:</b> |
<a name="expdevices_fb"><b><tt>fb</tt>:</b></a> |
342 |
<p>A simple linear framebuffer, for graphics output. |
<p>A simple linear framebuffer, for graphics output. |
343 |
640 x 480 pixels, 3 bytes per pixel (red, green, blue, 8 bits each). |
640 x 480 pixels, 3 bytes per pixel (red, green, blue, 8 bits each). |
344 |
<p>Source code: <font color="#0000f0"><tt>src/devices/dev_fb.c</tt></font> |
<p>Source code: <font color="#0000f0"><tt>src/devices/dev_fb.c</tt></font> |
366 |
|
|
367 |
<tr> |
<tr> |
368 |
<td align="left" valign="top"> |
<td align="left" valign="top"> |
369 |
<b><tt>disk</tt>:</b> |
<a name="expdevices_disk"><b><tt>disk</tt>:</b></a> |
370 |
<p>Disk controller, which can read from and write |
<p>Disk controller, which can read from and write |
371 |
to disk images. It does not use interrupts; read and |
to disk images. It does not use interrupts; read and |
372 |
write operations finish instantaneously. |
write operations finish instantaneously. |
415 |
|
|
416 |
<tr> |
<tr> |
417 |
<td align="left" valign="top"> |
<td align="left" valign="top"> |
418 |
<b><tt>ether</tt>:</b> |
<a name="expdevices_ether"><b><tt>ether</tt>:</b></a> |
419 |
<p>A simple ethernet controller, enough to send |
<p>A simple ethernet controller, enough to send |
420 |
and receive packets on a simulated network. |
and receive packets on a simulated network. |
421 |
<p>Source code: <font color="#0000f0"><tt>src/devices/dev_ether.c</tt></font> |
<p>Source code: <font color="#0000f0"><tt>src/devices/dev_ether.c</tt></font> |
507 |
|
|
508 |
|
|
509 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- |
|
|
|
|
|
<li><a href="http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html">Mach</a>: |
|
|
<br>Important! Run <b><tt>./configure --caches; make</tt></b> |
|
|
<br>Also important: This is broken right now. :-( |
|
|
<br>Download <a href="http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release/">http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release</a>/<a href="http://lost-contact.mit.edu/afs/athena/user/d/a/daveg/Info/Links/Mach/src/release/pmax.tar.Z">pmax.tar.Z</a> |
|
|
<br><tt><b>tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY</b></tt> |
|
|
<br><tt><b>gxemul -e 3max -X pmax_mach/special/mach.boot.MK83.STD+ANY</b></tt> |
|
|
</ul> |
|
|
</li> |
|
|
|
|
|
<p> |
|
|
|
|
|
<li>SGI: |
|
|
<li>Linux/SGI: |
|
|
<br>Some kernels are available here: <a href="http://www.linux-mips.org/~glaurung/">http://www.linux-mips.org/~glaurung/</a> |
|
|
<br>Try running with <b><tt>-e ip32 -X</tt></b> for a graphical framebuffer, or |
|
|
<b><tt>-e ip32 -o 'console=ttyS0'</tt></b> for serial console. |
|
|
<br>Adding <b><tt>-b</tt></b> (bintrans) might work sometimes. |
|
|
<br>(You need to add <b><tt>-CR5000</tt></b> if you're trying to run |
|
|
a kernel compiled for R5000, because Linux doesn't autodetect |
|
|
the CPU type at runtime.) |
|
|
<br>Also: <a href="http://www.tal.org/~milang/o2/kernels/">http://www.tal.org/~milang/o2/kernels</a>/<a href="http://home.tal.org/~milang/o2/kernels/vmlinux64-2.6.8.1-IP32">vmlinux64-2.6.8.1-IP32</a> |
|
|
<br>Try <b><tt>-e ip32 -X -CR5000 vmlinux64-2.6.8.1-IP32</tt></b>. |
|
|
<br>And also some IP27 kernels: |
|
|
<a href="http://www.total-knowledge.com/progs/mips/kernels/vmlinux.ip27-20040428">http://www.total-knowledge.com/progs/mips/kernels/vmlinux.ip27-20040428</a> |
|
|
and |
|
|
<a href="http://www.total-knowledge.com/progs/mips/kernels/vmlinux.ip27-20040528.bz2">http://www.total-knowledge.com/progs/mips/kernels/vmlinux.ip27-20040528.bz2</a> |
|
|
(but unfortunately these lack symbols). |
|
|
<br>Try the IP27 kernels with <b><tt>-e ip27 -t</tt></b>. |
|
|
<p> |
|
|
<li><a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a>: |
|
|
<br><a href="ftp://ftp.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd">ftp://ftp.openbsd.org/pub/OpenBSD/3.7/sgi/bsd.rd</a> |
|
|
<br>More recent snapshots can be found at <a href="ftp://ftp.OpenBSD.org/pub/OpenBSD/snapshots/sgi/">ftp://ftp.OpenBSD.org/pub/OpenBSD/snapshots/sgi/</a>. |
|
|
<br>Try <b><tt>gxemul -e ip32 bsd.rd</tt></b> |
|
|
<p> |
|
|
<li><a href="http://www.freebsd.org/platforms/mips.html">FreeBSD/MIPS</a>: |
|
|
I don't think public binary snapshots are available yet. |
|
|
<p> |
|
|
<li>arcdiag: |
|
|
<br>The NetBSD people have also made available an "arcdiag" for SGI-IP22: |
|
|
<br><a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/sgimips/arcdiag.ip22">ftp://ftp.netbsd.org/pub/NetBSD/arch/sgimips/arcdiag.ip22</a> |
|
|
<br>Try running <tt><b>gxemul -e ip22 -x arcdiag.ip22</b></tt>. |
|
|
</ul> |
|
|
</li> |
|
|
|
|
|
|
|
|
<li>ARC: |
|
|
<li>Linux: |
|
|
<br><a href="ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/boot/vmlinux-m700-2.1.131.gz">ftp://ftp.linux-mips.org/pub/linux/mips/mipsel-linux/boot/vmlinux-m700-2.1.131.gz</a> |
|
|
<br>gunzip, and run with <b><tt>-v -J -X -N -e m700</tt></b> (Olivetti M700) |
|
|
<br>(This probably doesn't work anymore.) |
|
|
<p> |
|
|
<li>Pandora: |
|
|
<br><a href="ftp://ftp.linux-mips.org/pub/linux/mips/ancient/milo/">ftp://ftp.linux-mips.org/pub/linux/mips/ancient/milo</a>/<a href="ftp://ftp.linux-mips.org/pub/linux/mips/ancient/milo/milo-0.27.1.tar.gz">milo-0.27.1.tar.gz</a> |
|
|
<br>A generic test/diagnostics program for ARC-based machines. |
|
|
<br>Run with <b><tt>-e r94 milo-0.27.1/pandora</tt></b> |
|
|
<p> |
|
|
<li>arcdiag: |
|
|
<br>Precompiled binary:<a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/arc/arcdiag">ftp://ftp.netbsd.org/pub/NetBSD/arch/arc/arcdiag</a> |
|
|
<br>(alternative: <a href="http://www.sensi.org/~alec/mips/arcdiag">http://www.sensi.org/~alec/mips/arcdiag</a>) |
|
|
<br>A generic test/diagnostics program for ARC-based machines. |
|
|
<br>Run with <b><tt>-e pica arcdiag</tt></b> (or some other ARC mode). |
|
|
<br>Example arcdiag output (from real machines): |
|
|
<br><a href="http://mail-index.netbsd.org/port-arc/2000/10/18/0001.html">http://mail-index.netbsd.org/port-arc/2000/10/18/0001.html</a> (Olivetti M700-10) |
|
|
<br><a href="http://www.sensi.org/~alec/mips/arcdiag.txt">http://www.sensi.org/~alec/mips/arcdiag.txt</a> (PICA-61) |
|
|
<br><a href="http://mail-index.netbsd.org/port-arc/2000/10/14/0000.html">http://mail-index.netbsd.org/port-arc/2000/10/14/0000.html</a> (Deskstation Tyne) |
|
|
<br><a href="http://mail-index.netbsd.org/port-arc/2004/02/01/0001.html">http://mail-index.netbsd.org/port-arc/2004/02/01/0001.html</a> (NEC RISCserver 4200) |
|
|
<br><a href="http://mirror.aarnet.edu.au/pub/NetBSD/misc/chs/arcdiag.out">http://mirror.aarnet.edu.au/pub/NetBSD/misc/chs/arcdiag.out</a> (NEC-R96) |
|
|
<br>For some machines, such as <tt><b>-e pica</b></tt>, you can |
|
|
add <b><tt>-X</tt></b> to boot with a graphical VGA-style |
|
|
console. This however is probably a bit unstable and/or |
|
|
broken right now. |
|
|
<p> |
|
|
<li>Windows NT: |
|
|
<br>Put a "Windows NT 4.0 for MIPS" CDROM (or similar) into |
|
|
your CDROM drive. (On FreeBSD systems, it is usually called |
|
|
/dev/cd0c or similar. Change that to whatever the CDROM |
|
|
is called on your system, or the name of a raw .iso image.) |
|
|
<br>I have tried this with the Swedish version, but it might |
|
|
work with other versions too.<pre> |
|
|
$ <b><tt>dd if=/dev/zero of=winnt_test.img bs=1024 count=1 seek=999000</tt></b> |
|
|
$ <b><tt>gxemul -X -e pica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\ARCINST</tt></b> |
|
|
$ <b><tt>gxemul -X -e pica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\SETUPLDR</tt></b> |
|
|
</pre> <br><tt>ARCINST</tt> tries to prepare the disk image for installation. (It <i>almost</i> works.) |
|
|
<br><tt>SETUPLDR</tt> should load some drivers from the cdrom, but then it crashes with a bluescreen. |
|
|
</ul> |
|
|
</li> |
|
|
|
|
|
<p> |
|
|
|
|
|
<li>HPCmips: |
|
|
<li>Linux for BE300: |
|
|
<br><a href="http://www.linux4.be/2004/linux4be20040908.zip">http://www.linux4.be/2004/linux4be20040908.zip</a> |
|
|
<br>Try <b><tt>gxemul -X -e be300 vmlinux</tt></b> |
|
|
<p> |
|
|
<li>Linux for Agenda VR3: |
|
|
<br>Download <a href="http://agenda-snow.sourceforge.net/kernel-old-versions/binary/">http://agenda-snow.sourceforge.net/kernel-old-versions/binary</a>/<a href="http://agenda-snow.sourceforge.net/kernel-old-versions/binary/root1.2.6.kernel-8.00">root1.2.6.kernel-8.00</a> |
|
|
<br>and <a href="http://vr3.uid0.sk/cd/Software/VR3_Distributions/H2O/">http://vr3.uid0.sk/cd/Software/VR3_Distributions/H2O</a>/<a href="http://vr3.uid0.sk/cd/Software/VR3_Distributions/H2O/root1.2.6.cramfs">root1.2.6.cramfs</a>. |
|
|
<br>(or <a href="http://www.ipsec.info/~www/agenda/dream-1-noxip.cramfs">http://www.ipsec.info/~www/agenda/dream-1-noxip.cramfs</a>) |
|
|
<br>Try <b><tt>gxemul -X -e vr3 -x 0xbf200000:root1.2.6.cramfs 0xbf000000:0:0xbf0005e0:root1.2.6.kernel-8.00</tt></b> |
|
|
<br>(or replace root1.2.6.cramfs with dream-1-noxip.cramfs) |
|
|
<br>Remove <b><tt>-X</tt></b> to try with serial console instead of X, and |
|
|
remove <b><tt>-b</tt></b> to try without (old) bintrans. |
|
|
<br>Add <b><tt>-o 'init=/bin/sh'</tt></b> to boot into a single-user shell. |
|
|
<br>Add <b><tt>-o 'init=/sbin/restore_defaults'</tt></b> to run |
|
|
a <tt>/sbin/restore_defaults</tt> (attempt to initialize the |
|
|
flash memory). |
|
|
<p> |
|
|
<li>Linux for MobilePro etc.: |
|
|
<br><a href="http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/">http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/</a> |
|
|
<br>Uncompress the archive to get a kernel, vmlinux-800 for example. |
|
|
<br>Try <b><tt>./gxemul -X -o 'root=/dev/hda1' -d r:disk.img -d r:disk.img -e mobilepro800 vmlinux-800</tt></b> |
|
|
<br>where disk.img is an ext2fs filesystem with contents from |
|
|
<a href="http://pc1.peanuts.gr.jp/~kei/Hard-Float/Miniroots/miniroot-20010330.tar.bz2">http://pc1.peanuts.gr.jp/~kei/Hard-Float/Miniroots/miniroot-20010330.tar.bz2</a> |
|
|
<br>(Note the double disk arguments.) |
|
|
<br>Note 2: This doesn't work yet. |
|
|
<p> |
|
|
<li><a href="http://www.disorder.ru/openbsd/be300/">OpenBSD/be300</a>: |
|
|
<br><a href="http://www.disorder.ru/openbsd/be300/bsd.rd">http://www.disorder.ru/openbsd/be300/bsd.rd</a> |
|
|
<br>Try <b><tt>gxemul -X -e be300 bsd.rd</tt></b> |
|
|
<br>Note: bintrans might be buggy, so you can try with -B if you want to. |
|
|
</ul> |
|
|
</li> |
|
|
|
|
|
<p> |
|
|
|
|
|
<li>Linux: |
|
|
<br><a href="http://people.debian.org/~pm/mips-cobalt/nfsroot/vmlinux_raq-2800.gz">http://people.debian.org/~pm/mips-cobalt/nfsroot/vmlinux_raq-2800.gz</a> |
|
|
<br>gunzip, and run with <b><tt>-E cobalt</tt></b> |
|
|
<p> |
|
|
<br><a href="http://dev.gentoo.org/~kumba/mips/cobalt/netboot/cobalt-netboot-20040428.img.gz">http://dev.gentoo.org/~kumba/mips/</a> |
|
|
<br> <a href="http://dev.gentoo.org/~kumba/mips/cobalt/netboot/cobalt-netboot-20040428.img.gz">cobalt/netboot/cobalt-netboot-20040428.img.gz</a> |
|
|
<br><b><tt>gxemul -E cobalt cobalt-netboot-20040428.img.gz</tt></b> |
|
|
<p> |
|
|
<li>CoLo: |
|
|
<br><a href="http://www.colonel-panic.org/cobalt-mips/colo/colo-1.19.tar.gz">http://www.colonel-panic.org/cobalt-mips/colo/colo-1.19.tar.gz</a> |
|
|
<br><tt><b>tar zxvf colo-1.19.tar.gz colo-1.19/binaries/colo-rom-image.bin</b></tt> |
|
|
<br><tt><b>gxemul -Q -Ecobalt -v 0xbfc00000:colo-1.19/binaries/colo-rom-image.bin</b></tt> |
|
|
<br>(This doesn't work yet.) |
|
|
|
|
|
<p> |
|
|
<li>Linux: |
|
|
<br>A Linux kernel (2.2.21-pre1-xr7) is available from |
|
|
<a href="http://playstation2-linux.com/projects/xrhino-kernel/">http://playstation2-linux.com/projects/xrhino-kernel/</a> |
|
|
<br>Try running with <b><tt>-X -E playstation2</tt></b> (<b><tt>-X</tt></b> is required, for the framebuffer). |
|
|
</ul> |
|
|
</li> |
|
|
|
|
|
<p> |
|
|
|
|
|
|
|
|
|
|
|
meshcube Linux: |
|
|
<br>A Linux kernel is available from |
|
|
<a href="http://www.meshcube.org/feed/stable/">http://www.meshcube.org/feed/stable</a>/<a href="http://www.meshcube.org/feed/stable/kernel-image-mtx_2.4.24-3_mipsel.ipk">kernel-image-mtx_2.4.24-3_mipsel.ipk</a> |
|
|
<br>(This is a Debian package, you can use <tt><b>ar</b></tt> and |
|
|
<tt><b>tar</b></tt> to extract kernel.img from it.) |
|
|
<br>Try running with <b><tt>-E meshcube 0x80800000:kernel.img</tt></b>. |
|
|
|
|
|
<li><a href="http://www.seattlewireless.net/index.cgi/NetgearWG602">NetGear WG602</a>: |
|
|
<li>Linux: |
|
|
<br>A Linux kernel is available from |
|
|
<a href="ftp://downloads.netgear.com/files/wg602_v1715.zip">ftp://downloads.netgear.com/files/wg602_v1715.zip</a> |
|
|
<br>(Unzip wg602_v1715.zip to get WG602_V1715.img.) |
|
|
<br>Try running with <b><tt>-E netgear 0xbfc80000:0x40:WG602_V1715.img</tt></b>. |
|
|
<br>(It takes some time to decompress the kernel, so be patient.) |
|
|
<br>(This doesn't really work yet.) |
|
|
|
|
|
|
|
|
<li>Linux: |
|
|
<br><a href="http://jocelyn.mayer.free.fr/qemu-ppc/linux_images/2.4.25-PPC/vmlinux">http://jocelyn.mayer.free.fr/qemu-ppc/linux_images/2.4.25-PPC/vmlinux</a> |
|
|
<br><tt><b>gxemul -E prep -v -t vmlinux</b></tt> |
|
|
|
|
|
<li><a href="http://www.bebox.nu/os.php?s=os/linux/index">Linux/bebox</a>: |
|
|
<br><a href="http://www.bebox.nu/files/linux/BeBox-scsi-980610.gz">http://www.bebox.nu/files/linux/BeBox-scsi-980610.gz</a> |
|
|
<br><tt><b>gunzip BeBox-scsi-980610.gz</b></tt> |
|
|
<br><tt><b>gxemul -E bebox 0x3100:0x400:BeBox-scsi-980610</b></tt> |
|
|
|
|
|
--> |
|
|
|
|
|
|
|
|
|
|
510 |
|
|
511 |
</p> |
</p> |
512 |
|
|