/[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 8 - (hide annotations)
Mon Oct 8 16:18:19 2007 UTC (16 years, 6 months ago) by dpavlin
File MIME type: text/html
File size: 40174 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.777 2005/06/12 12:31:52 debug Exp $
==============  RELEASE 0.3.3.1  ==============

20050609	Adding simple MIPS IPIs (to dev_mp).
20050611	Adding an ugly hack to track down low-reference bugs
		(define TRACE_NULL_CRASHES, or configure --tracenull).
		Other minor updates.
20050612	Adding a dummy evbmips mode.

==============  RELEASE 0.3.3.2  ==============


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

  ViewVC Help
Powered by ViewVC 1.1.26