/[gxemul]/trunk/doc/experiments.html
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/doc/experiments.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6 - (hide annotations)
Mon Oct 8 16:18:11 2007 UTC (16 years, 6 months ago) by dpavlin
File MIME type: text/html
File size: 38070 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.772 2005/06/04 12:02:16 debug Exp $
20050428	Disabling the "-fmove-all-movables" option in the configure
		script, because it causes the compile to fail on OpenBSD/sgi.
20050502	Minor updates.
20050503	Removing the WRT54G mode (it was bogus anyway), and adding a
		comment about Windows NT for MIPS in doc/experiments.html.
		Minor updates to the x86 instruction decoding.
20050504	Adding some more x86 instructions.
		Adding support for reading files from ISO9660 CDROMs (including
		gzipped files). It's an ugly hack, but it seems to work.
		Various other minor updates (dev_vga.c, pc_bios.c etc).
20050505	Some more x86-related updates.
		Beginning (what I hope will be) a major code cleanup phase.
		"bootris" (an x86 bootsector) runs :-)
20050506	Adding some more x86 instructions.
20050507	tmpnam => mkstemp.
		Working on a hack to allow VGA charcells to be shown even when
		not running with X11.
		Adding more x86 instructions.
20050508	x86 32-bit SIB addressing fix, and more instructions.
20050509	Adding more x86 instructions.
20050510	Minor documentation updates, and other updates (x86 stuff etc.)
20050511	More x86-related updates.
20050513	Various updates, mostly x86-related. (Trying to fix flag 
		calculation, factoring out the ugly shift/rotate code, and
		some other things.)
20050514	Adding support for loading some old i386 a.out executables.
		Finally beginning the cleanup of machine/PROM/bios dependant
		info.
		Some minor documentation updates.
		Trying to clean up ARCBIOS stuff a little.
20050515	Trying to make it possible to actually use more than one disk
		type per machine (floppy, ide, scsi).
		Trying to clean up the kbd vs PROM console stuff. (For PC and
		ARC emulation modes, mostly.)
		Beginning to add an 8259 interrupt controller, and connecting
		it to the x86 emulation.
20050516	The first x86 interrupts seem to work (keyboard stuff).
		Adding a 8253/8254 programmable interval timer skeleton.
		FreeDOS now reaches a command prompt and can be interacted
		with.
20050517	After some bugfixes, MS-DOS also (sometimes) reaches a
		command prompt now.
		Trying to fix the pckbc to work with MS-DOS' keyb.com, but no
		success yet.
20050518	Adding a simple 32-bit x86 MMU skeleton.
20050519	Some more work on the x86 stuff. (Beginning the work on paging,
		and various other fixes).
20050520	More updates. Working on dev_vga (4-bit graphics modes), adding
		40 columns support to the PC bios emulation.
		Trying to add support for resizing windows when switching
		between graphics modes.
20050521	Many more x86-related updates.
20050522	Correcting the initial stack pointer's sign-extension for
		ARCBIOS emulation (thanks to Alec Voropay for noticing the
		error).
		Continuing on the cleanup (ARCBIOS etc).
		dev_vga updates.
20050523	More x86 updates: trying to add some support for protected mode
		interrupts (via gate descriptors) and many other fixes.
		More ARCBIOS cleanup.
		Adding a device flag which indicates that reads cause no
		side-effects. (Useful for the "dump" command in the debugger,
		and other things.)
		Adding support for directly starting up x86 ELFs, skipping the
		bootloader stage. (Most ELFs, however, are not suitable for
		this.)
20050524	Adding simple 32-bit x86 TSS task switching, but no privilege
		level support yet.
		More work on dev_vga. A small "Copper bars" demo works. :-)
		Adding support for Trap Flag (single-step exceptions), at least
		in real mode, and various other x86-related fixes.
20050525	Adding a new disk image prefix (gH;S;) which can be used to
		override the default nr of heads and sectors per track.
20050527	Various bug fixes, more work on the x86 mode (stack change on
		interrupts between different priv.levels), and some minor
		documentation updates.
20050528	Various fixes (x86 stuff).
20050529	More x86 fixes. An OpenBSD/i386 bootfloppy reaches userland
		and can be interacted with (although there are problems with
		key repetition). NetBSD/i386 triggers a serious CISC-related
		problem: instruction fetches across page boundaries, where
		the later part isn't actually part of the instruction.
20050530	Various minor updates. (Documentation updates, etc.)
20050531	Adding some experimental code (experiments/new_test_*) which
		could be useful for dynamic (but not binary) translation in
		the future.
20050602	Adding a dummy ARM skeleton.
		Fixing the pckbc key repetition problem (by adding release
		scancodes for all keypresses).
20050603	Minor updates for the next release.
20050604	Release testing. Minor updates.

==============  RELEASE 0.3.3  ==============

20050604	There'll probably be a 0.3.3.1 release soon, with some very
		very tiny updates.


1 dpavlin 2 <html>
2     <head><title>GXemul documentation: Experimenting with GXemul</title>
3     </head>
4 dpavlin 4 <body bgcolor="#f8f8f8" text="#000000" link="#4040f0" vlink="#404040" alink="#ff0000">
5     <table border=0 width=100% bgcolor="#d0d0d0"><tr>
6     <td width=100% align=center valign=center><table border=0 width=100%><tr>
7     <td align="left" valign=center bgcolor="#d0efff"><font color="#6060e0" size="6">
8     <b>GXemul documentation:</b></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
9     <font color="#000000" size="6"><b>Experimenting with GXemul</b>
10     </font></td></tr></table></td></tr></table><p>
11 dpavlin 2 <!-- The first 10 lines are cut away by the homepage updating script. -->
12    
13    
14     <!--
15    
16 dpavlin 6 $Id: experiments.html,v 1.68 2005/05/27 07:29:23 debug Exp $
17 dpavlin 2
18     Copyright (C) 2003-2005 Anders Gavare. All rights reserved.
19    
20     Redistribution and use in source and binary forms, with or without
21     modification, are permitted provided that the following conditions are met:
22    
23     1. Redistributions of source code must retain the above copyright
24     notice, this list of conditions and the following disclaimer.
25     2. Redistributions in binary form must reproduce the above copyright
26     notice, this list of conditions and the following disclaimer in the
27     documentation and/or other materials provided with the distribution.
28     3. The name of the author may not be used to endorse or promote products
29     derived from this software without specific prior written permission.
30    
31     THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
32     ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
33     IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
34     ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
35     FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
36     DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
37     OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
39     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
40     OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
41     SUCH DAMAGE.
42    
43     -->
44    
45     <a href="./">Back to the index</a>
46    
47     <p><br>
48     <h2>Experimenting with GXemul</h2>
49    
50     <p>
51     <ul>
52     <li><a href="#hello">Hello world</a>
53     <li><a href="#expdevices">Experimental devices</a>
54     <li><a href="#experiments">Experiments with other kernels and guest OSes</a>
55     </ul>
56    
57    
58    
59    
60    
61    
62     <p><br>
63     <a name="hello"></a>
64     <h3>Hello world:</h3>
65    
66     You might want to use the emulator to develop programs on your own,
67     not just run precompiled kernels such as NetBSD. To get started, I recommend
68     that you do two things:
69    
70     <p>
71     <ul>
72     <li>Build and install a cross-compiler for MIPS.
73     <li>Compile this hello world program, and run it in the emulator.
74     </ul>
75    
76     <p>
77     <table border="0"><tr><td width="40">&nbsp;</td><td>
78     <pre>
79     <font color=#f00000>/* Hello world for GXemul */
80    
81     /* Note: The cast to a signed int causes the address to be sign-extended
82     correctly to 0xffffffffb00000xx when compiled in 64-bit mode */
83     </font><font color=#a0a0a0>#define PUTCHAR_ADDRESS ((signed int)0xb0000000)
84     #define HALT_ADDRESS ((signed int)0xb0000010)
85    
86     </font><font color=#c000c0>void </font><font color=#000000><a name="printchar">printchar</a>(</font><font color=#c000c0>char </font><font color=#000000>ch)
87     {
88     *((</font><font color=#c000c0>volatile unsigned char </font><font color=#000000>*) PUTCHAR_ADDRESS) = ch;
89     }
90    
91     </font><font color=#c000c0>void </font><font color=#000000><a name="halt">halt</a>(</font><font color=#c000c0>void</font><font color=#000000>)
92     {
93     *((</font><font color=#c000c0>volatile unsigned char </font><font color=#000000>*) HALT_ADDRESS) = 0;
94     }
95    
96     </font><font color=#c000c0>void </font><font color=#000000><a name="printstr">printstr</a>(</font><font color=#c000c0>char </font><font color=#000000>*s)
97     {
98     </font><font color=#c000c0>while </font><font color=#000000>(*s)
99     printchar(*s++);
100     }
101    
102     </font><font color=#c000c0>void </font><font color=#000000>f(</font><font color=#c000c0>void</font><font color=#000000>)
103     {
104     printstr(</font><font color=#00c000>"Hello world\n"</font><font color=#000000>);
105     halt();
106     }
107     </font></pre>
108     </td></tr></table>
109    
110     <p>
111 dpavlin 6 (This hello world program is available here as well:
112     <a href="hello_mips.c">hello_mips.c</a>)
113    
114     <p>
115 dpavlin 2 I recommend that you build a GCC cross compiler for the
116     <b>mips64-unknown-elf</b> target, and install it. Other compilers could
117     work too, but GCC is good because of its portability. Then try to compile
118     the hello world program:
119     <pre>
120     $ <b>mips64-unknown-elf-gcc -O2 hello_mips.c -mips4 -mabi=64 -c</b>
121     $ <b>mips64-unknown-elf-ld -Ttext 0xa800000000030000 -e f hello_mips.o -o hello_mips --oformat=elf64-bigmips</b>
122     $ <b>file hello_mips</b>
123     hello_mips: ELF 64-bit MSB mips-4 executable, MIPS R3000_BE, version 1 (SYSV), statically linked, not stripped
124     $ <b>gxemul -q -E testmips hello_mips</b>
125     Hello world
126    
127     $ <b>mips64-unknown-elf-gcc -O2 hello_mips.c -c</b>
128     $ <b>mips64-unknown-elf-ld -Ttext 0x80030000 -e f hello_mips.o -o hello_mips</b>
129     $ <b>file hello_mips</b>
130     hello_mips: ELF 32-bit MSB mips-3 executable, MIPS R3000_BE, version 1 (SYSV), statically linked, not stripped
131     $ <b>gxemul -q -E testmips hello_mips</b>
132     Hello world
133     </pre>
134    
135     <p>
136     As you can see above, a GCC configured for mips64-unknown-elf can produce
137     both 64-bit and 32-bit binaries. If you don't want to run the entire
138     Hello World program, but want to single-step through the execution to
139     learn more about how MIPS programs run, then add -V to the command line:
140    
141     <p>
142     <pre>
143     $ <b>gxemul -V -E testmips hello_mips</b>
144     ..
145     GXemul&gt; <b>r</b>
146     cpu0: pc = a800000000030078 <f>
147     cpu0: hi = 0000000000000000 lo = 0000000000000000
148     cpu0: zr = 0000000000000000 at = 0000000000000000
149     cpu0: v0 = 0000000000000000 v1 = 0000000000000000
150     ..
151     cpu0: gp = a8000000000780c0 sp = ffffffffa0007f00
152     cpu0: fp = 0000000000000000 ra = 0000000000000000
153     GXemul&gt; <b>s 15</b>
154     &lt;f&gt;
155     a800000000030078: 67bdfff0 daddiu sp,sp,-16
156     a80000000003007c: 3c04a800 lui a0,0xa800
157     a800000000030080: 3c010003 lui at,0x3
158     a800000000030084: 64840000 daddiu a0,a0,0
159     a800000000030088: 642100b8 daddiu at,at,184
160     a80000000003008c: 0004203c dsll32 a0,a0,0
161     a800000000030090: 0081202d daddu a0,a0,at
162     a800000000030094: ffbf0000 sd ra,0(sp) [0xffffffffa0007ef0, data=0x0000000000000000]
163     a800000000030098: 0c00c00a jal 0xa800000000030028 &lt;printstr&gt;
164     a80000000003009c: 00000000 (d) nop
165     &lt;printstr("Hello world\n",0,0,0,..)&gt;
166     &lt;printstr&gt;
167     a800000000030028: 67bdfff0 daddiu sp,sp,-16
168     a80000000003002c: ffb00000 sd s0,0(sp) [0xffffffffa0007ee0, data=0x0000000000000000]
169     a800000000030030: ffbf0008 sd ra,8(sp) [0xffffffffa0007ee8, data=0xa8000000000300a0]
170     a800000000030034: 90820000 lbu v0,0(a0) [0xa8000000000300b8 = $LC0, data=0x48]
171     a800000000030038: 00021600 sll v0,v0,24
172     GXemul&gt; <b>print v0</b>
173     v0 = 0x0000000048000000
174     GXemul&gt; <b><blink>_</blink></b>
175     </pre>
176    
177     <p>
178     The syntax of the single-step debugger shouldn't be too hard to grasp.
179     Type 's' to single-step one instruction. Just pressing enter after that
180     will repeat the 's' command. Type 'quit' to quit.
181    
182     <p>
183     Hopefully this is enough to get you inspired. :-)
184    
185    
186    
187     <p><br>
188     <h4>Hello World for GXemul's PPC mode</h4>
189    
190     GXemul also has an experimental PowerPC emulation mode.
191     <a href="hello_ppc.c">hello_ppc.c</a> is similar to hello_mips.c, but
192     should be compiled and run as follows:
193     <p>
194     <pre>
195     $ <b>ppc-unknown-elf-gcc -O2 hello_ppc.c -c</b>
196     $ <b>ppc-unknown-elf-ld -e f hello_ppc.o -o hello_ppc</b>
197     $ <b>file hello_ppc</b>
198     hello_ppc: ELF 32-bit MSB executable, PowerPC or cisco 4500,
199     version 1 (SYSV), statically linked, not stripped
200     $ <b>gxemul -q -E testppc hello_ppc</b>
201     Hello world
202     </pre>
203    
204     <p>
205     [&nbsp;2005-02-18: I haven't yet been able to build a GCC for ppc64 (only the
206     binutils toolchain), because the gcc sources seem to include Linux header files
207     that aren't present on my FreeBSD system. 32-bit PPC works ok, though.&nbsp;]
208    
209    
210    
211    
212    
213    
214     <p><br>
215     <a name="expdevices"></a>
216     <h3>Experimental devices:</h3>
217    
218 dpavlin 6 The emulator has several modes where it doesn't emulate any real machine.
219     It can either run in "bare" mode, where no devices are included by default
220     (just the CPU), or in a "test" mode where some simple devices are
221     emulated.
222    
223     <p>
224 dpavlin 2 The "test" MIPS machine has the following experimental devices:
225    
226     <p>
227     <center><table border="0" width="80%">
228    
229     <tr>
230     <td align="left" valign="top" width="200">
231     <b>cons:</b>
232     <p>This is a simple console device, for writing
233     characters to the controlling terminal.
234     <p>Source code:&nbsp;&nbsp;<font color="#0000f0">devices/dev_cons.c</font>
235     <br>Default physical address:&nbsp&nbsp;<font color="#0000f0">0x10000000</font>
236     </td>
237     <td align="left" valign="top" width="25">&nbsp;</td>
238     <td align="left" valign="top">
239     <table border="0">
240     <tr>
241     <td align="left" valign="top"><i><u>Offset:</u></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
242     <td align="left" valign="top"><i><u>Effect:</u></i></td>
243     </tr>
244     <tr>
245     <td align="left" valign="top">0x0000</td>
246     <td align="left" valign="top">
247     Read: <b>getchar()</b> (non-blocking)<br>
248     Write: <b>putchar(ch)</b></td>
249     </tr>
250     <tr>
251     <td align="left" valign="top">0x0010</td>
252     <td align="left" valign="top">Read or write: <b>halt()</b><br>
253     (Useful for exiting the emulator.)</td>
254     </tr>
255     </table>
256     </td>
257     </tr>
258    
259     <tr height="15">
260     <td height="15">&nbsp;</td>
261     </tr>
262    
263     <tr>
264     <td align="left" valign="top">
265     <b>mp:</b>
266     <p>This device controls the behaviour of CPUs in an emulated
267     multi-processor system.
268     <p>Source code:&nbsp;&nbsp;<font color="#0000f0">devices/dev_mp.c</font>
269     <br>Default physical address:&nbsp&nbsp;<font color="#0000f0">0x11000000</font>
270     </td>
271     <td></td>
272     <td align="left" valign="top">
273     <table border="0">
274     <tr>
275     <td align="left" valign="top"><i><u>Offset:</u></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
276     <td align="left" valign="top"><i><u>Effect:</u></i></td>
277     </tr>
278     <tr>
279     <td align="left" valign="top">0x0000</td>
280     <td align="left" valign="top">Read: <b>whoami()</b>.
281     Returns the id of the CPU doing the read.</td>
282     </tr>
283     <tr>
284     <td align="left" valign="top">0x0010</td>
285     <td align="left" valign="top">Read: <b>ncpus()</b>.
286     Returns the number of CPUs in the system.</td>
287     </tr>
288     <tr>
289     <td align="left" valign="top">0x0020</td>
290     <td align="left" valign="top">Write: <b>startupcpu(i)</b>.
291     Starts CPU i. It begins execution at the address
292     set by a write to startupaddr (see below).</td>
293     </tr>
294     <tr>
295     <td align="left" valign="top">0x0030</td>
296     <td align="left" valign="top">Write: <b>startupaddr(addr)</b>.
297     Sets the starting address for CPUs.</td>
298     </tr>
299     <tr>
300     <td align="left" valign="top">0x0040</td>
301     <td align="left" valign="top">Write: <b>pause_addr(addr)</b>.
302     Sets the pause address. (TODO: This is not
303     used anymore?)</td>
304     </tr>
305     <tr>
306     <td align="left" valign="top">0x0050</td>
307     <td align="left" valign="top">Write: <b>pause_cpu(i)</b>.
308     Stops all CPUs <i>except</i> CPU i.</td>
309     </tr>
310     <tr>
311     <td align="left" valign="top">0x0060</td>
312     <td align="left" valign="top">Write: <b>unpause_cpu(i)</b>.
313     Unpauses all CPUs <i>except</i> CPU i.</td>
314     </tr>
315     <tr>
316     <td align="left" valign="top">0x0070</td>
317     <td align="left" valign="top">Write: <b>startupstack(addr)</b>.
318     Sets the startup stack address. (CPUs started with
319     startupcpu() above will have their stack pointer
320     set to this value.)</td>
321     </tr>
322     <tr>
323     <td align="left" valign="top">0x0080</td>
324     <td align="left" valign="top">Read: <b>hardware_random()</b>.
325     This produces a "random" number.</td>
326     </tr>
327     <tr>
328     <td align="left" valign="top">0x0090</td>
329     <td align="left" valign="top">Read: <b>memory()</b>.
330     Returns the number of bytes of RAM in the system.</td>
331     </tr>
332     </table>
333     </td>
334     </tr>
335    
336     <tr height="15">
337     <td height="15">&nbsp;</td>
338     </tr>
339    
340     <tr>
341     <td align="left" valign="top">
342     <b>fb:</b>
343     <p>A simple linear framebuffer, for graphics output.
344     640 x 480 pixels, 3 bytes per pixel (red, green, blue, 8 bits each).
345     <p>Source code:&nbsp;&nbsp;<font color="#0000f0">devices/dev_fb.c</font>
346     <br>Default physical address:&nbsp&nbsp;<font color="#0000f0">0x12000000</font>
347     </td>
348     <td></td>
349     <td align="left" valign="top">
350     <table border="0">
351     <tr>
352     <td align="left" valign="top"><i><u>Offset:</u></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
353     <td align="left" valign="top"><i><u>Effect:</u></i></td>
354     </tr>
355     <tr>
356     <td align="left" valign="top">...</td>
357     <td align="left" valign="top">Read: read pixel values.
358     <br>Write: write pixel values.</td>
359     </tr>
360     </table>
361     </td>
362     </tr>
363    
364     </table></center>
365    
366     <p>
367     While these devices may resemble real-world hardware, they are
368     intentionally made simpler to use. (An exception is the framebuffer;
369     some machines actually have simple linear framebuffers like this.)
370    
371     <p>
372     If the physical address is 0x10000000, then for MIPS that means that it
373     can be accessed at virtual address 0xffffffffb0000000. (Actually it can be
374     accessed at 0xffffffff90000000 too, but devices should usually be accessed
375     in a non-cached manner.)
376    
377     <p>
378     (When using the PPC test machine, "testppc", the addresses are
379     0x10000000, 0x11000000 etc., so no need to add any virtual displacement.)
380    
381     <p>
382     The <b>mp</b> device is agnostic when it comes to
383     word-length. For example, when reading offset 0x0000 of the <b>mp</b>
384     device, you may use any kind of read (an 8-bit read will work just as well
385     as a 64-bit read, although the value will be truncated to 8 bits in the
386     first case).
387    
388     <p>
389     The <b>cons</b> device should be accessed using 8-bit reads and writes.
390     Doing a getchar() (ie reading from offset 0x0000) returns 0x00 if no
391     character was available.
392    
393     <p>
394     On MIPS, the <b>cons</b> device is hardwired to interrupt 2 (the lowest
395     hardware interrupt). Whenever a character is available, the interrupt is
396     asserted. When there are no more available characters, the interrupt is
397     deasserted. (Remember that the interrupt has to be enabled in the status
398     register of the system coprocessor.)
399    
400    
401    
402    
403    
404    
405     <p><br>
406     <a name="experiments"></a>
407     <h3>Experiments with other kernels and guest OSes:</h3>
408    
409     <p>
410 dpavlin 6 Free Operating system kernels and other test programs can be
411     downloaded from various places on the Internet. Other kinds of software
412     (non-Free), if obsolete enough (such as Ultrix or Windows NT), can
413     sometimes be found in garbage containers, or perhaps be found for a cheap
414     price on ebay or at a flea market.
415 dpavlin 2
416     <p>
417     <font color="#ff0000">
418     NOTE: This is <i>not</i> a list of kernels that work in the emulator.
419     It is a list of kernels that I experiment with.
420     </font>
421    
422     <p>
423     For more information about which of these that actually work, read the
424     <a href="intro.html#guestos">section in the Introduction chapter</a>
425     that lists guest operating systems. If a system is not listed there, it
426     probably doesn't work in GXemul.
427    
428     <p>
429     <ul>
430     <li>DECstation:
431     <ul>
432     <li><a href="http://www.netbsd.org/Ports/pmax/">NetBSD/pmax</a>:
433     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.gz</a>
434     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmax/binary/kernel/netbsd-INSTALL.symbols.gz</a>
435 dpavlin 6 <br>gunzip the files, and run the emulator with <b><tt>-E dec -e 3max -q -N -XY2</tt></b>
436     for a graphical framebuffer console. Remove <b><tt>-XY2</tt></b> and <b><tt>-N</tt></b> to use serial (stdin/stdout) console.
437 dpavlin 2 Read <a href="guestoses.html#netbsdinstall">this section</a> about how to install NetBSD/pmax onto a harddisk image.
438     <p>
439     <li><a href="http://www.openbsd.org/pmax.html">OpenBSD/pmax</a>:
440     <br><a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/bsd">ftp://ftp.se.openbsd.org/pub/OpenBSD/2.8/pmax/bsd</a>
441 dpavlin 6 <br>This is an old OpenBSD kernel in a.out format. Try <b><tt>-E dec -e 3max</tt></b>.
442 dpavlin 2 <br>Read <a href="guestoses.html#openbsdinstall">this section</a> about how to install OpenBSD/pmax onto a harddisk image.
443 dpavlin 6 It's a bit more complicated than installing NetBSD/pmax, but
444     it usually works.
445 dpavlin 2 <p>
446     <li>Linux for DECstation:
447     <br>Read <a href="guestoses.html#declinux">this section</a> about how to run a Debian Linux install kernel.
448     <br>Here are some older kernels (these don't support framebuffer, I think):
449     <a href="http://www.xs4all.nl/~vhouten/mipsel/kernels.html">http://www.xs4all.nl/~vhouten/mipsel/kernels.html</a>
450 dpavlin 6 <br>Note: Make sure you add <b><tt>-CR4400</tt></b> to the command line for
451 dpavlin 2 R4000 kernels, as Linux doesn't autodetect CPU type at runtime.
452 dpavlin 6 <br>Linux also doesn't detect automatically whether you are booting
453     in graphical or serial console mode, so you need to add
454     <tt><b>-o 'console=ttyS3'</b></tt> or similar for serial
455     console mode.
456 dpavlin 2 <p>
457 dpavlin 6 <li><a href="http://www.cs.berkeley.edu/projects/sprite/retrospective.html">Sprite</a>:
458 dpavlin 2 <br>The Unix Heritage Society (TUHS, <a href="http://www.tuhs.org">www.tuhs.org</a>)
459 dpavlin 6 has preserved a copy of a harddisk image for a DECstation
460     5000/200 (3MAX).
461 dpavlin 2 <br>Read <a href="guestoses.html#sprite">this section</a> for more information
462     about running this harddisk image in the emulator.
463     <p>
464     <li><a href="http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html">Mach</a>:
465 dpavlin 6 <br>Important! Run <b><tt>./configure --caches; make</tt></b>
466     <br>Also important: This is broken right now. :-(
467 dpavlin 2 <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>
468 dpavlin 6 <br><tt><b>tar xfvz pmax.tar.Z pmax_mach/special/mach.boot.MK83.STD+ANY</b></tt>
469     <br><tt><b>gxemul -E dec -e 3max -X pmax_mach/special/mach.boot.MK83.STD+ANY</b></tt>
470 dpavlin 2 </ul>
471     </li>
472    
473     <p>
474    
475     <li>SGI:
476     <ul>
477     <li><a href="http://www.netbsd.org/Ports/sgimips/">NetBSD/sgimips</a>:
478     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.gz</a>
479     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP3x.symbols.gz</a>
480 dpavlin 6 <br>gunzip, and try running with <b><tt>-E sgi -e ip32</tt></b>.
481 dpavlin 2 <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP2x.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP2x.gz</a>
482     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP2x.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sgimips/binary/kernel/netbsd-INSTALL32_IP2x.symbols.gz</a>
483 dpavlin 6 <br>gunzip, and try running with <b><tt>-E sgi -e ip22</tt></b> (or <b><tt>ip24</tt></b> or <b><tt>ip20</tt></b>).
484 dpavlin 2 <p>
485     <li>Linux/SGI:
486     <br>Some kernels are available here: <a href="http://www.linux-mips.org/~glaurung/">http://www.linux-mips.org/~glaurung/</a>
487 dpavlin 6 <br>Try running with <b><tt>-E sgi -e ip32 -X</tt></b> for a graphical framebuffer, or
488     <b><tt>-E sgi -e ip32 -o 'console=ttyS0'</tt></b> for serial console.
489     <br>Adding <b><tt>-b</tt></b> (bintrans) might work sometimes.
490     <br>(You need to add <b><tt>-CR5000</tt></b> if you're trying to run
491     a kernel compiled for R5000, because Linux doesn't autodetect
492     the CPU type at runtime.)
493 dpavlin 2 <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>
494 dpavlin 6 <br>Try <b><tt>-E sgi -e ip32 -b -X -CR5000 vmlinux64-2.6.8.1-IP32</tt></b>.
495 dpavlin 2 <br>And also some IP27 kernels:
496     <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>
497     and
498     <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>
499     (but unfortunately these lack symbols).
500 dpavlin 6 <br>Try the IP27 kernels with <b><tt>-E sgi -e ip27 -t</tt></b>.
501 dpavlin 2 <p>
502     <li><a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a>:
503 dpavlin 6 <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>
504     <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>.
505     <br>Try <b><tt>gxemul -b -E sgi -e ip32 bsd.rd</tt></b>
506 dpavlin 2 <p>
507     <li><a href="http://www.freebsd.org/platforms/mips.html">FreeBSD/MIPS</a>:
508     I don't think public binary snapshots are available yet.
509     <p>
510     <li>arcdiag:
511     <br>The NetBSD people have also made available an "arcdiag" for SGI-IP22:
512     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/sgimips/arcdiag.ip22">ftp://ftp.netbsd.org/pub/NetBSD/arch/sgimips/arcdiag.ip22</a>
513 dpavlin 6 <br>Try running <tt><b>gxemul -E sgi -e ip22 -x arcdiag.ip22</b></tt>.
514 dpavlin 2 </ul>
515     </li>
516    
517     <p>
518    
519     <li>ARC:
520     <ul>
521     <li><a href="http://www.netbsd.org/Ports/arc/">NetBSD/arc</a>:
522     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/arc/binary/kernel/netbsd-RAMDISK.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/arc/binary/kernel/netbsd-RAMDISK.gz</a>
523     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/arc/binary/kernel/netbsd-RAMDISK.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/arc/binary/kernel/netbsd-RAMDISK.symbols.gz</a>
524 dpavlin 6 <br>gunzip, and try with <b><tt>-E arc -e rd94</tt></b>.
525 dpavlin 2 <br>(You may also try other ARC models.)
526     <br>Read <a href="guestoses.html#netbsdarcinstall">this section</a> about how
527 dpavlin 6 to install NetBSD/arc 1.6.2 onto a harddisk image.
528     <br>(NetBSD/arc 2.0 doesn't work with disk images yet in GXemul.)
529 dpavlin 2 <p>
530     <li><a href="http://www.openbsd.org/arc.html">OpenBSD/arc</a>:
531     <br><a href="ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd.rd.elf">ftp://ftp.se.openbsd.org/pub/OpenBSD/2.3/arc/bsd.rd.elf</a>
532 dpavlin 6 <br>Try running with <b><tt>-X -E arc -e pica</tt></b> or <b><tt>-X -E arc -e tyne</tt></b>.
533 dpavlin 2 <br>Read <a href="guestoses.html#openbsdarcinstall">this section</a> about how
534     to install OpenBSD/arc onto a harddisk image.
535     <p>
536     <li>Linux:
537     <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>
538 dpavlin 6 <br>gunzip, and run with <b><tt>-v -J -X -N -E arc -e m700</tt></b> (Olivetti M700)
539     <br>(This probably doesn't work anymore.)
540 dpavlin 2 <p>
541     <li>Pandora:
542     <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>
543     <br>A generic test/diagnostics program for ARC-based machines.
544 dpavlin 6 <br>Run with <b><tt>-E arc -e r94 milo-0.27.1/pandora</tt></b>
545 dpavlin 2 <p>
546     <li>arcdiag:
547     <br>Precompiled binary:<a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/arc/arcdiag">ftp://ftp.netbsd.org/pub/NetBSD/arch/arc/arcdiag</a>
548     <br>(alternative: <a href="http://www.sensi.org/~alec/mips/arcdiag">http://www.sensi.org/~alec/mips/arcdiag</a>)
549     <br>A generic test/diagnostics program for ARC-based machines.
550 dpavlin 6 <br>Run with <b><tt>-E arc -e pica arcdiag</tt></b> (or some other ARC mode).
551 dpavlin 2 <br>Example arcdiag output (from real machines):
552     <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)
553     <br><a href="http://www.sensi.org/~alec/mips/arcdiag.txt">http://www.sensi.org/~alec/mips/arcdiag.txt</a> (PICA-61)
554     <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)
555     <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)
556     <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)
557 dpavlin 6 <br>For some machines, such as <tt><b>-e pica</b></tt>, you can
558     add <b><tt>-X</tt></b> to boot with a graphical VGA-style
559     console. This however is probably a bit unstable and/or
560     broken right now.
561     <p>
562     <li>Windows NT:
563     <br>Put a "Windows NT 4.0 for MIPS" CDROM (or similar) into
564     your CDROM drive. (On FreeBSD systems, it is usually called
565     /dev/cd0c or similar. Change that to whatever the CDROM
566     is called on your system, or the name of a raw .iso image.)
567     <br>I have tried this with the Swedish version, but it might
568     work with other versions too.<pre>
569     $ <b><tt>dd if=/dev/zero of=winnt_test.img bs=1024 count=1 seek=999000</tt></b>
570     $ <b><tt>gxemul -X -b -Earc -epica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\ARCINST</tt></b>
571     $ <b><tt>gxemul -X -b -Earc -epica -d winnt_test.img -d bc6:/dev/cd0c -j MIPS\\SETUPLDR</tt></b>
572     </pre> <br><tt>ARCINST</tt> tries to prepare the disk image for installation. (It <i>almost</i> works.)
573     <br><tt>SETUPLDR</tt> should load some drivers from the cdrom, but then it crashes with a bluescreen.
574 dpavlin 2 </ul>
575     </li>
576    
577     <p>
578    
579     <li>HPCmips:
580     <ul>
581     <li><a href="http://www.netbsd.org/Ports/hpcmips/">NetBSD/hpcmips</a>:
582     <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>
583 dpavlin 6 <br>Try <b><tt>gxemul -X -b -E hpc -e mobilepro770 netbsd</tt></b>
584 dpavlin 2 <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>
585 dpavlin 6 <br>Try <b><tt>gxemul -X -b -E hpc -e mobilepro770 netbsd-GENERIC</tt></b>
586 dpavlin 2 <p>
587     <li>Linux for BE300:
588     <br><a href="http://www.linux4.be/2004/linux4be20040908.zip">http://www.linux4.be/2004/linux4be20040908.zip</a>
589 dpavlin 6 <br>Try <b><tt>gxemul -X -b -E hpc -e be300 vmlinux</tt></b>
590 dpavlin 2 <p>
591     <li>Linux for Agenda VR3:
592     <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>
593     <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>.
594     <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>)
595 dpavlin 6 <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>
596 dpavlin 2 <br>(or replace root1.2.6.cramfs with dream-1-noxip.cramfs)
597 dpavlin 6 <br>Remove <b><tt>-X</tt></b> to try with serial console instead of X, and
598     remove <b><tt>-b</tt></b> to try without (old) bintrans.
599     <br>Add <b><tt>-o 'init=/bin/sh'</tt></b> to boot into a single-user shell.
600     <br>Add <b><tt>-o 'init=/sbin/restore_defaults'</tt></b> to run
601     a <tt>/sbin/restore_defaults</tt> (attempt to initialize the
602     flash memory).
603 dpavlin 2 <p>
604     <li>Linux for MobilePro etc.:
605     <br><a href="http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/">http://pc1.peanuts.gr.jp/~kei/Hard-Float/Kernels/</a>
606     <br>Uncompress the archive to get a kernel, vmlinux-800 for example.
607 dpavlin 6 <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>
608 dpavlin 2 <br>where disk.img is an ext2fs filesystem with contents from
609     <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>
610     <br>(Note the double disk arguments.)
611     <br>Note 2: This doesn't work yet.
612     <p>
613     <li><a href="http://www.disorder.ru/openbsd/be300/">OpenBSD/be300</a>:
614     <br><a href="http://www.disorder.ru/openbsd/be300/bsd.rd">http://www.disorder.ru/openbsd/be300/bsd.rd</a>
615 dpavlin 6 <br>Try <b><tt>gxemul -X -b -E hpc -e be300 bsd.rd</tt></b>
616 dpavlin 2 <br>Note: -b might be buggy, so you can try without that if you want to.
617     </ul>
618     </li>
619    
620     <p>
621    
622 dpavlin 6 <li>Cobalt:
623     <ul>
624     <li><a href="http://www.netbsd.org/Ports/cobalt/">NetBSD/cobalt</a>:
625     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/cobalt/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6.2/cobalt/binary/kernel/netbsd-GENERIC.gz</a>
626     <br>gunzip, and run with <b><tt>-E cobalt</tt></b>
627     <br>(Or read <a href="guestoses.html#netbsdcobaltinstall">this
628     section</a> on how to install NetBSD/cobalt onto a harddisk image.)
629     <p>
630     <li>Linux:
631     <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>
632     <br>gunzip, and run with <b><tt>-E cobalt</tt></b>
633     <p>
634     <li>CoLo:
635     <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>
636     <br><tt><b>tar zxvf colo-1.19.tar.gz colo-1.19/binaries/colo-rom-image.bin</b></tt>
637     <br><tt><b>gxemul -Q -Ecobalt -v 0xbfc00000:colo-1.19/binaries/colo-rom-image.bin</b></tt>
638     <br>(This doesn't work yet.)
639     </ul>
640     </li>
641    
642     <p>
643    
644 dpavlin 2 <li>Playstation 2:
645     <ul>
646     <li><a href="http://www.netbsd.org/Ports/playstation2/">NetBSD/playstation2</a>:
647     <br>NetBSD/playstation2 snapshot kernels are available here: (RAMDISK and GENERIC)
648     <br><a href="ftp://ftp.NetBSD.org/pub/NetBSD/arch/playstation2/snapshot/20020327/installation/netbsd.gz">ftp://ftp.NetBSD.org/pub/NetBSD/arch/playstation2/snapshot/20020327/installation/netbsd.gz</a>
649     <br><a href="ftp://ftp.NetBSD.org/pub/NetBSD/arch/playstation2/snapshot/20020327/binary/kernel/netbsd-GENERIC.gz">ftp://ftp.NetBSD.org/pub/NetBSD/arch/playstation2/snapshot/20020327/binary/kernel/netbsd-GENERIC.gz</a>
650 dpavlin 6 <br>Try running with <b><tt>-X -E playstation2</tt></b> (<b><tt>-X</tt></b> is required, for the framebuffer).
651 dpavlin 2
652     <p>
653     <li>Linux:
654     <br>A Linux kernel (2.2.21-pre1-xr7) is available from
655     <a href="http://playstation2-linux.com/projects/xrhino-kernel/">http://playstation2-linux.com/projects/xrhino-kernel/</a>
656 dpavlin 6 <br>Try running with <b><tt>-X -E playstation2</tt></b> (<b><tt>-X</tt></b> is required, for the framebuffer).
657 dpavlin 2 </ul>
658     </li>
659    
660     </ul>
661    
662     <p>
663     The following work even less than the ones listed above:
664    
665     <p>
666     <ul>
667     <li>Sony NeWS:
668     <ul>
669     <li><a href="http://www.netbsd.org/Ports/newsmips/">NetBSD/newsmips</a>:
670     <br>A NetBSD/newsmips kernel and corresponding symbols are
671     available here:
672     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/newsmips/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/newsmips/binary/kernel/netbsd-INSTALL.gz</a>
673     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/newsmips/binary/kernel/netbsd-INSTALL.symbols.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/newsmips/binary/kernel/netbsd-INSTALL.symbols.gz</a>
674 dpavlin 6 <br>Try running with <b><tt>-E sonynews</tt></b>.
675 dpavlin 2 <br>There's also a boot floppy available, but the emulator currently
676     doesn't support booting from it:
677     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6/newsmips/installation/floppy/boot.fs">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.6/newsmips/installation/floppy/boot.fs</a>
678     </ul>
679     </li>
680    
681     <p>
682    
683     <li><a href="http://www.meshcube.org/">MeshCube</a>:
684     <ul>
685     <li>Linux:
686     <br>A Linux kernel is available from
687     <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>
688 dpavlin 6 <br>(This is a Debian package, you can use <tt><b>ar</b></tt> and
689     <tt><b>tar</b></tt> to extract kernel.img from it.)
690     <br>Try running with <b><tt>-E meshcube 0x80800000:kernel.img</tt></b>.
691 dpavlin 2 </ul>
692     </li>
693    
694     <p>
695    
696     <li><a href="http://www.seattlewireless.net/index.cgi/NetgearWG602">NetGear WG602</a>:
697     <ul>
698     <li>Linux:
699     <br>A Linux kernel is available from
700     <a href="ftp://downloads.netgear.com/files/wg602_v1715.zip">ftp://downloads.netgear.com/files/wg602_v1715.zip</a>
701     <br>(Unzip wg602_v1715.zip to get WG602_V1715.img.)
702 dpavlin 6 <br>Try running with <b><tt>-E netgear 0xbfc80000:0x40:WG602_V1715.img</tt></b>.
703 dpavlin 2 <br>(It takes some time to decompress the kernel, so be patient.)
704 dpavlin 6 <br>(This doesn't really work yet.)
705 dpavlin 2 </ul>
706     </li>
707    
708     </ul>
709    
710     <p>
711     The following don't work at all, actually, because the PPC and SPARC
712     modes are just skeletons so far.
713    
714     <p>
715     <ul>
716    
717     <li>Walnut (evbppc):
718     <ul>
719     <li><a href="http://www.netbsd.org/Ports/evbppc/">NetBSD/evbppc</a>:
720     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/evbppc/binary/kernel/netbsd-INSTALL_WALNUT.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/evbppc/binary/kernel/netbsd-INSTALL_WALNUT.gz</a>
721     <br>gunzip, and try the following:
722 dpavlin 6 <br><tt><b>gxemul -E walnut -v -t netbsd-INSTALL_WALNUT</b></tt>
723 dpavlin 2 </ul>
724     </li>
725    
726     <p>
727    
728     <li>Artesyn's PM/PPC board (pmppc):
729     <ul>
730     <li><a href="http://www.netbsd.org/Ports/pmppc/">NetBSD/pmppc</a>:
731     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmppc/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/pmppc/binary/kernel/netbsd-INSTALL.gz</a>
732     <br>gunzip, and try the following:
733 dpavlin 6 <br><tt><b>gxemul -E pmppc netbsd-INSTALL</b></tt>
734 dpavlin 2 </ul>
735     </li>
736    
737     <p>
738    
739     <li>Motorola Sandpoint (sandpoint):
740     <ul>
741     <li><a href="http://www.netbsd.org/Ports/sandpoint/">NetBSD/sandpoint</a>:
742     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sandpoint/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sandpoint/binary/kernel/netbsd-INSTALL.gz</a>
743     <br>gunzip, and try the following:
744 dpavlin 6 <br><tt><b>gxemul -E sandpoint -v -t netbsd-INSTALL</b></tt>
745 dpavlin 2 </ul>
746     </li>
747    
748     <p>
749    
750     <li>PReP:
751     <ul>
752     <li><a href="http://www.netbsd.org/Ports/prep/">NetBSD/prep</a>:
753     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/prep/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/prep/binary/kernel/netbsd-INSTALL.gz</a>
754     <br>gunzip, and try the following:
755 dpavlin 6 <br><tt><b>gxemul -E prep -v -t netbsd-INSTALL</b></tt>
756 dpavlin 2 <p>
757     <li>Linux:
758     <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>
759 dpavlin 6 <br><tt><b>gxemul -E prep -v -t vmlinux</b></tt>
760 dpavlin 2 </ul>
761     </li>
762    
763     <p>
764    
765     <li>MacPPC:
766     <ul>
767     <li><a href="http://www.netbsd.org/Ports/macppc/">NetBSD/macppc</a>:
768     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/macppc/binary/kernel/">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/macppc/binary/kernel</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/macppc/binary/kernel/netbsd-INSTALL.gz">netbsd-INSTALL.gz</a>
769 dpavlin 6 <br><tt><b>gxemul -E macppc -e g4 -t netbsd-INSTALL</b></tt>
770 dpavlin 2 <p>
771     <li><a href="http://www.openbsd.org/macppc.html">OpenBSD/macppc</a>:
772     <br><a href="ftp://ftp.openbsd.org/pub/OpenBSD/3.6/macppc/">ftp://ftp.openbsd.org/pub/OpenBSD/3.6/macppc</a>/<a href="ftp://ftp.openbsd.org/pub/OpenBSD/3.6/macppc/bsd.rd">bsd.rd</a>
773 dpavlin 6 <br><tt><b>gxemul -E macppc -e g4 -t bsd.rd</b></tt>
774 dpavlin 2 </ul>
775     </li>
776    
777     <p>
778    
779     <li>BeBox:
780     <ul>
781     <li><a href="http://www.netbsd.org/Ports/bebox/">NetBSD/bebox</a>:
782     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119/">ftp://ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119</a>/<a href="ftp://ftp.netbsd.org/pub/NetBSD/arch/bebox/snapshot/19981119/kern.tgz">kern.tgz</a>
783 dpavlin 6 <br><tt><b>tar xvzf kern.tgz</b></tt>
784     <br><tt><b>gxemul -E bebox netbsd</b></tt>
785 dpavlin 2 <p>
786     <li><a href="http://www.bebox.nu/os.php?s=os/linux/index">Linux/bebox</a>:
787     <br><a href="http://www.bebox.nu/files/linux/BeBox-scsi-980610.gz">http://www.bebox.nu/files/linux/BeBox-scsi-980610.gz</a>
788 dpavlin 6 <br><tt><b>gunzip BeBox-scsi-980610.gz</b></tt>
789     <br><tt><b>gxemul -E bebox 0x3100:0x400:BeBox-scsi-980610</b></tt>
790 dpavlin 2 </ul>
791     </li>
792    
793     <p>
794    
795     <li>SPARC64:
796     <ul>
797     <li><a href="http://www.netbsd.org/Ports/sparc64/">NetBSD/sparc64</a>:
798     <br><a href="ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sparc64/binary/kernel/netbsd-INSTALL.gz">ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-2.0/sparc64/binary/kernel/netbsd-INSTALL.gz</a>
799     <br>gunzip, and try the following:
800 dpavlin 6 <br><tt><b>gxemul -E ultra1 -v -i netbsd-INSTALL</b></tt>
801 dpavlin 2 <p>
802     <li><a href="http://www.openbsd.org/sparc64.html">OpenBSD/sparc64</a>:
803     <br><a href="ftp://ftp.openbsd.org/pub/OpenBSD/3.6/sparc64/bsd.rd">ftp://ftp.openbsd.org/pub/OpenBSD/3.6/sparc64/bsd.rd</a>
804     <br>rename to bsd.rd.gz, gunzip, and try the following:
805 dpavlin 6 <br><tt><b>gxemul -E ultra1 -v -i bsd.rd</b></tt>
806 dpavlin 2 </ul>
807     </li>
808     </ul>
809    
810     <p>
811     The URISC emulation mode is just for fun. (Read
812     <a href="http://en.wikipedia.org/wiki/URISC">http://en.wikipedia.org/wiki/URISC</a>
813     for more info.)
814    
815     <p>
816     <ul>
817    
818     <li>URISC:
819     <ul>
820     <li>I've placed a small test program in the experiments directory.
821 dpavlin 6 <br>Start like this: <tt><b>gxemul -E testurisc 0:urisc_test.bin</b></tt>
822 dpavlin 2 <br>or, if you want to single-step:
823 dpavlin 6 <b><tt>gxemul -V -E testurisc 0:urisc_test.bin</b></tt>
824 dpavlin 2 <br>2005-03-01: All outputed characters are printed twice. I'll
825     try to make a pseudo-device for outputing to "normal" devices
826     later.
827     </ul>
828     </li>
829    
830     </ul>
831    
832    
833    
834    
835    
836    
837     </p>
838    
839     </body>
840     </html>

  ViewVC Help
Powered by ViewVC 1.1.26