12 |
|
|
13 |
<!-- |
<!-- |
14 |
|
|
15 |
$Id: experiments.html,v 1.71 2005/06/12 12:31:53 debug Exp $ |
$Id: experiments.html,v 1.76 2005/06/24 09:33:32 debug Exp $ |
16 |
|
|
17 |
Copyright (C) 2003-2005 Anders Gavare. All rights reserved. |
Copyright (C) 2003-2005 Anders Gavare. All rights reserved. |
18 |
|
|
106 |
</font></pre> |
</font></pre> |
107 |
</td></tr></table> |
</td></tr></table> |
108 |
|
|
109 |
<p> |
<p>(This hello world program is available here as well: |
110 |
(This hello world program is available here as well: |
<a href="hello_mips.c"><tt>hello_mips.c</tt></a>) |
|
<a href="hello_mips.c">hello_mips.c</a>) |
|
111 |
|
|
112 |
<p> |
<p>I recommend that you build a GCC cross compiler for the |
|
I recommend that you build a GCC cross compiler for the |
|
113 |
<b>mips64-unknown-elf</b> target, and install it. Other compilers could |
<b>mips64-unknown-elf</b> target, and install it. Other compilers could |
114 |
work too, but GCC is good because of its portability. Then try to compile |
work too, but GCC is good because of its portability. Then try to compile |
115 |
the hello world program: |
and link the hello world program: |
116 |
<pre> |
<pre> |
117 |
$ <b>mips64-unknown-elf-gcc -O2 hello_mips.c -mips4 -mabi=64 -c</b> |
$ <b>mips64-unknown-elf-gcc -O2 hello_mips.c -mips4 -mabi=64 -c</b> |
118 |
$ <b>mips64-unknown-elf-ld -Ttext 0xa800000000030000 -e f hello_mips.o -o hello_mips --oformat=elf64-bigmips</b> |
$ <b>mips64-unknown-elf-ld -Ttext 0xa800000000030000 -e f hello_mips.o -o hello_mips --oformat=elf64-bigmips</b> |
185 |
<h4>Hello World for GXemul's PPC mode</h4> |
<h4>Hello World for GXemul's PPC mode</h4> |
186 |
|
|
187 |
GXemul also has an experimental PowerPC emulation mode. |
GXemul also has an experimental PowerPC emulation mode. |
188 |
<a href="hello_ppc.c">hello_ppc.c</a> is similar to hello_mips.c, but |
<a href="hello_ppc.c"><tt>hello_ppc.c</tt></a> is similar to |
189 |
should be compiled and run as follows: |
<tt>hello_mips.c</tt>, but should be compiled and run as follows: |
190 |
<p> |
<p> |
191 |
<pre> |
<pre> |
192 |
$ <b>ppc-unknown-elf-gcc -O2 hello_ppc.c -c</b> |
$ <b>ppc-unknown-elf-gcc -O2 hello_ppc.c -c</b> |
510 |
a kernel compiled for R5000, because Linux doesn't autodetect |
a kernel compiled for R5000, because Linux doesn't autodetect |
511 |
the CPU type at runtime.) |
the CPU type at runtime.) |
512 |
<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>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> |
513 |
<br>Try <b><tt>-E sgi -e ip32 -b -X -CR5000 vmlinux64-2.6.8.1-IP32</tt></b>. |
<br>Try <b><tt>-E sgi -e ip32 -X -CR5000 vmlinux64-2.6.8.1-IP32</tt></b>. |
514 |
<br>And also some IP27 kernels: |
<br>And also some IP27 kernels: |
515 |
<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> |
<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> |
516 |
and |
and |
521 |
<li><a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a>: |
<li><a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a>: |
522 |
<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><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> |
523 |
<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>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>. |
524 |
<br>Try <b><tt>gxemul -b -E sgi -e ip32 bsd.rd</tt></b> |
<br>Try <b><tt>gxemul -E sgi -e ip32 bsd.rd</tt></b> |
525 |
<p> |
<p> |
526 |
<li><a href="http://www.freebsd.org/platforms/mips.html">FreeBSD/MIPS</a>: |
<li><a href="http://www.freebsd.org/platforms/mips.html">FreeBSD/MIPS</a>: |
527 |
I don't think public binary snapshots are available yet. |
I don't think public binary snapshots are available yet. |
586 |
<br>I have tried this with the Swedish version, but it might |
<br>I have tried this with the Swedish version, but it might |
587 |
work with other versions too.<pre> |
work with other versions too.<pre> |
588 |
$ <b><tt>dd if=/dev/zero of=winnt_test.img bs=1024 count=1 seek=999000</tt></b> |
$ <b><tt>dd if=/dev/zero of=winnt_test.img bs=1024 count=1 seek=999000</tt></b> |
589 |
$ <b><tt>gxemul -X -b -Earc -epica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\ARCINST</tt></b> |
$ <b><tt>gxemul -X -Earc -epica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\ARCINST</tt></b> |
590 |
$ <b><tt>gxemul -X -b -Earc -epica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\SETUPLDR</tt></b> |
$ <b><tt>gxemul -X -Earc -epica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\SETUPLDR</tt></b> |
591 |
</pre> <br><tt>ARCINST</tt> tries to prepare the disk image for installation. (It <i>almost</i> works.) |
</pre> <br><tt>ARCINST</tt> tries to prepare the disk image for installation. (It <i>almost</i> works.) |
592 |
<br><tt>SETUPLDR</tt> should load some drivers from the cdrom, but then it crashes with a bluescreen. |
<br><tt>SETUPLDR</tt> should load some drivers from the cdrom, but then it crashes with a bluescreen. |
593 |
</ul> |
</ul> |
599 |
<ul> |
<ul> |
600 |
<li><a href="http://www.netbsd.org/Ports/hpcmips/">NetBSD/hpcmips</a>: |
<li><a href="http://www.netbsd.org/Ports/hpcmips/">NetBSD/hpcmips</a>: |
601 |
<br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation/netbsd.gz">netbsd.gz</a> |
<br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/installation/netbsd.gz">netbsd.gz</a> |
602 |
<br>Try <b><tt>gxemul -X -b -E hpc -e mobilepro770 netbsd</tt></b> |
<br>Try <b><tt>gxemul -X -E hpc -e mobilepro770 netbsd</tt></b> |
603 |
<br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/netbsd-GENERIC.gz</a> |
<br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/hpcmips/binary/kernel/netbsd-GENERIC.gz</a> |
604 |
<br>Try <b><tt>gxemul -X -b -E hpc -e mobilepro770 netbsd-GENERIC</tt></b> |
<br>Try <b><tt>gxemul -X -E hpc -e mobilepro770 netbsd-GENERIC</tt></b> |
605 |
<p> |
<p> |
606 |
<li>Linux for BE300: |
<li>Linux for BE300: |
607 |
<br><a href="http://www.linux4.be/2004/linux4be20040908.zip">http://www.linux4.be/2004/linux4be20040908.zip</a> |
<br><a href="http://www.linux4.be/2004/linux4be20040908.zip">http://www.linux4.be/2004/linux4be20040908.zip</a> |
608 |
<br>Try <b><tt>gxemul -X -b -E hpc -e be300 vmlinux</tt></b> |
<br>Try <b><tt>gxemul -X -E hpc -e be300 vmlinux</tt></b> |
609 |
<p> |
<p> |
610 |
<li>Linux for Agenda VR3: |
<li>Linux for Agenda VR3: |
611 |
<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>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> |
612 |
<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>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>. |
613 |
<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>(or <a href="http://www.ipsec.info/~www/agenda/dream-1-noxip.cramfs">http://www.ipsec.info/~www/agenda/dream-1-noxip.cramfs</a>) |
614 |
<br>Try <b><tt>gxemul -b -X -E hpc -e vr3 -x 0xbf200000:root1.2.6.cramfs 0xbf000000:0:0xbf0005e0:root1.2.6.kernel-8.00</tt></b> |
<br>Try <b><tt>gxemul -X -E hpc -e vr3 -x 0xbf200000:root1.2.6.cramfs 0xbf000000:0:0xbf0005e0:root1.2.6.kernel-8.00</tt></b> |
615 |
<br>(or replace root1.2.6.cramfs with dream-1-noxip.cramfs) |
<br>(or replace root1.2.6.cramfs with dream-1-noxip.cramfs) |
616 |
<br>Remove <b><tt>-X</tt></b> to try with serial console instead of X, and |
<br>Remove <b><tt>-X</tt></b> to try with serial console instead of X, and |
617 |
remove <b><tt>-b</tt></b> to try without (old) bintrans. |
remove <b><tt>-b</tt></b> to try without (old) bintrans. |
623 |
<li>Linux for MobilePro etc.: |
<li>Linux for MobilePro etc.: |
624 |
<br><a href="http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/">http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/</a> |
<br><a href="http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/">http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/</a> |
625 |
<br>Uncompress the archive to get a kernel, vmlinux-800 for example. |
<br>Uncompress the archive to get a kernel, vmlinux-800 for example. |
626 |
<br>Try <b><tt>./gxemul -b -X -o 'root=/dev/hda1' -d r:disk.img -d r:disk.img -Ehpc -e mobilepro800 vmlinux-800</tt></b> |
<br>Try <b><tt>./gxemul -X -o 'root=/dev/hda1' -d r:disk.img -d r:disk.img -Ehpc -e mobilepro800 vmlinux-800</tt></b> |
627 |
<br>where disk.img is an ext2fs filesystem with contents from |
<br>where disk.img is an ext2fs filesystem with contents from |
628 |
<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> |
<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> |
629 |
<br>(Note the double disk arguments.) |
<br>(Note the double disk arguments.) |
631 |
<p> |
<p> |
632 |
<li><a href="http://www.disorder.ru/openbsd/be300/">OpenBSD/be300</a>: |
<li><a href="http://www.disorder.ru/openbsd/be300/">OpenBSD/be300</a>: |
633 |
<br><a href="http://www.disorder.ru/openbsd/be300/bsd.rd">http://www.disorder.ru/openbsd/be300/bsd.rd</a> |
<br><a href="http://www.disorder.ru/openbsd/be300/bsd.rd">http://www.disorder.ru/openbsd/be300/bsd.rd</a> |
634 |
<br>Try <b><tt>gxemul -X -b -E hpc -e be300 bsd.rd</tt></b> |
<br>Try <b><tt>gxemul -X -E hpc -e be300 bsd.rd</tt></b> |
635 |
<br>Note: -b might be buggy, so you can try without that if you want to. |
<br>Note: bintrans might be buggy, so you can try with -B if you want to. |
636 |
</ul> |
</ul> |
637 |
</li> |
</li> |
638 |
|
|
676 |
</ul> |
</ul> |
677 |
</li> |
</li> |
678 |
|
|
679 |
|
<p> |
680 |
|
|
681 |
|
<li>EVBMIPS: |
682 |
|
<ul> |
683 |
|
<li><a href="http://www.netbsd.org/Ports/evbmips/">NetBSD/evbmips</a>: |
684 |
|
<br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel/netbsd-MALTA.gz">netbsd-MALTA.gz</a> |
685 |
|
<br><b><tt>gxemul -E evbmips -e malta netbsd-MALTA</tt></b> |
686 |
|
<br>The default CPU is a 5Kc (MIPS64). Add |
687 |
|
<tt>-C 4Kc</tt> to use a MIPS32 CPU instead. |
688 |
|
<br>(NetBSD/evbmips runs in 32-bit mode on MIPS64 anyway...) |
689 |
|
<br>Read <a href="guestoses.html#netbsdevbmipsinstall">this |
690 |
|
section</a> on how to install NetBSD/evbmips onto a harddisk image. |
691 |
|
<br>or |
692 |
|
<br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel/netbsd-PB1000.gz">netbsd-PB1000.gz</a> |
693 |
|
<br><b><tt>gxemul -E evbmips -e pb1000 netbsd-PB1000</tt></b> |
694 |
|
</ul> |
695 |
|
</li> |
696 |
|
|
697 |
</ul> |
</ul> |
698 |
|
|
699 |
<p> |
<p> |
742 |
</ul> |
</ul> |
743 |
</li> |
</li> |
744 |
|
|
|
<p> |
|
|
|
|
|
<li>EVBMIPS: |
|
|
<ul> |
|
|
<li><a href="http://www.netbsd.org/Ports/evbmips/">NetBSD/evbmips</a>: |
|
|
<br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel/netbsd-MALTA.gz">netbsd-MALTA.gz</a> |
|
|
<br><b><tt>gxemul -t -E evbmips -e malta netbsd-MALTA</tt></b> |
|
|
<br>or |
|
|
<br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0.2/evbmips-mipseb/binary/kernel/netbsd-PB1000.gz">netbsd-PB1000.gz</a> |
|
|
<br><b><tt>gxemul -t -E evbmips -e pb1000 netbsd-PB1000</tt></b> |
|
|
</ul> |
|
|
</li> |
|
|
|
|
745 |
<p> |
<p> |
746 |
|
|
747 |
<li>Walnut (evbppc): |
<li>Walnut (evbppc): |