/[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

Contents of /trunk/doc/experiments.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8 - (show 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 <html>
2 <head><title>GXemul documentation: Experimenting with GXemul</title>
3 <meta name="robots" content="noarchive,nofollow,noindex">
4 </head>
5 <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
13 <!--
14
15 $Id: experiments.html,v 1.71 2005/06/12 12:31:53 debug Exp $
16
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 (This hello world program is available here as well:
111 <a href="hello_mips.c">hello_mips.c</a>)
112
113 <p>
114 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 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 The <tt>testmips</tt> machine has the following experimental devices:
224
225 <p>
226 <center><table border="0" width="80%">
227
228 <tr>
229 <td align="left" valign="top" width="200">
230 <b><tt>cons</tt>:</b>
231 <p>This is a simple console device, for writing
232 characters to the controlling terminal.
233 <p>Source code:&nbsp;&nbsp;<font color="#0000f0"><tt>src/devices/dev_cons.c</tt></font>
234 <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 Read: <b><tt>getchar()</tt></b> (non-blocking)<br>
247 Write: <b><tt>putchar(ch)</tt></b></td>
248 </tr>
249 <tr>
250 <td align="left" valign="top">0x0010</td>
251 <td align="left" valign="top">Read or write: <b><tt>halt()</tt></b><br>
252 (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 <b><tt>mp</tt>:</b>
265 <p>This device controls the behaviour of CPUs in an emulated
266 multi-processor system.
267 <p>Source code:&nbsp;&nbsp;<font color="#0000f0"><tt>src/devices/dev_mp.c</tt></font>
268 <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 <td align="left" valign="top">Read: <b><tt>whoami()</tt></b>.
280 Returns the id of the CPU doing the read.</td>
281 </tr>
282 <tr>
283 <td align="left" valign="top">0x0010</td>
284 <td align="left" valign="top">Read: <b><tt>ncpus()</tt></b>.
285 Returns the number of CPUs in the system.</td>
286 </tr>
287 <tr>
288 <td align="left" valign="top">0x0020</td>
289 <td align="left" valign="top">Write: <b><tt>startupcpu(i)</tt></b>.
290 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 <td align="left" valign="top">Write: <b><tt>startupaddr(addr)</tt></b>.
296 Sets the starting address for CPUs.</td>
297 </tr>
298 <tr>
299 <td align="left" valign="top">0x0040</td>
300 <td align="left" valign="top">Write: <b><tt>pause_addr(addr)</tt></b>.
301 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 <td align="left" valign="top">Write: <b><tt>pause_cpu(i)</tt></b>.
307 Stops all CPUs <i>except</i> CPU i.</td>
308 </tr>
309 <tr>
310 <td align="left" valign="top">0x0060</td>
311 <td align="left" valign="top">Write: <b><tt>unpause_cpu(i)</tt></b>.
312 Unpauses all CPUs <i>except</i> CPU i.</td>
313 </tr>
314 <tr>
315 <td align="left" valign="top">0x0070</td>
316 <td align="left" valign="top">Write: <b><tt>startupstack(addr)</tt></b>.
317 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 <td align="left" valign="top">Read: <b><tt>hardware_random()</tt></b>.
324 This produces a "random" number.</td>
325 </tr>
326 <tr>
327 <td align="left" valign="top">0x0090</td>
328 <td align="left" valign="top">Read: <b><tt>memory()</tt></b>.
329 Returns the number of bytes of RAM in the system.</td>
330 </tr>
331 <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 </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 <b><tt>fb</tt>:</b>
362 <p>A simple linear framebuffer, for graphics output.
363 640 x 480 pixels, 3 bytes per pixel (red, green, blue, 8 bits each).
364 <p>Source code:&nbsp;&nbsp;<font color="#0000f0"><tt>src/devices/dev_fb.c</tt></font>
365 <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 (When using the PPC test machine (<tt>testppc</tt>), the addresses are
398 0x10000000, 0x11000000 etc., so no need to add any virtual displacement.)
399
400 <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
406 <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
410 <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
416 <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
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 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
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 <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 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 <br>This is an old OpenBSD kernel in a.out format. Try <b><tt>-E dec -e 3max</tt></b>.
463 <br>Read <a href="guestoses.html#openbsdinstall">this section</a> about how to install OpenBSD/pmax onto a harddisk image.
464 It's a bit more complicated than installing NetBSD/pmax, but
465 it usually works.
466 <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 <br>Note: Make sure you add <b><tt>-CR4400</tt></b> to the command line for
472 R4000 kernels, as Linux doesn't autodetect CPU type at runtime.
473 <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 <p>
478 <li><a href="http://www.cs.berkeley.edu/projects/sprite/retrospective.html">Sprite</a>:
479 <br>The Unix Heritage Society (TUHS, <a href="http://www.tuhs.org">www.tuhs.org</a>)
480 has preserved a copy of a harddisk image for a DECstation
481 5000/200 (3MAX).
482 <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 <br>Important! Run <b><tt>./configure --caches; make</tt></b>
487 <br>Also important: This is broken right now. :-(
488 <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 <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 </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 <br>gunzip, and try running with <b><tt>-E sgi -e ip32</tt></b>.
502 <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 <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 <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 <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 <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 <br>Try <b><tt>-E sgi -e ip32 -b -X -CR5000 vmlinux64-2.6.8.1-IP32</tt></b>.
516 <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 <br>Try the IP27 kernels with <b><tt>-E sgi -e ip27 -t</tt></b>.
522 <p>
523 <li><a href="http://www.openbsd.org/sgi.html">OpenBSD/sgi</a>:
524 <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 <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 <br>Try running <tt><b>gxemul -E sgi -e ip22 -x arcdiag.ip22</b></tt>.
535 </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 <br>gunzip, and try with <b><tt>-E arc -e rd94</tt></b>.
546 <br>(You may also try other ARC models.)
547 <br>Read <a href="guestoses.html#netbsdarcinstall">this section</a> about how
548 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 <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 <br>Try running with <b><tt>-X -E arc -e pica</tt></b> or <b><tt>-X -E arc -e tyne</tt></b>.
554 <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 <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 <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 <br>Run with <b><tt>-E arc -e r94 milo-0.27.1/pandora</tt></b>
566 <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 <br>Run with <b><tt>-E arc -e pica arcdiag</tt></b> (or some other ARC mode).
572 <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 <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 </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 <br>Try <b><tt>gxemul -X -b -E hpc -e mobilepro770 netbsd</tt></b>
605 <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 <br>Try <b><tt>gxemul -X -b -E hpc -e mobilepro770 netbsd-GENERIC</tt></b>
607 <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 <br>Try <b><tt>gxemul -X -b -E hpc -e be300 vmlinux</tt></b>
611 <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 <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 <br>(or replace root1.2.6.cramfs with dream-1-noxip.cramfs)
618 <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 <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 <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 <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 <br>Try <b><tt>gxemul -X -b -E hpc -e be300 bsd.rd</tt></b>
637 <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 <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 <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 <br>Try running with <b><tt>-X -E playstation2</tt></b> (<b><tt>-X</tt></b> is required, for the framebuffer).
672
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 <br>Try running with <b><tt>-X -E playstation2</tt></b> (<b><tt>-X</tt></b> is required, for the framebuffer).
678 </ul>
679 </li>
680
681 </ul>
682
683 <p>
684 The following don't work at all, or just very very little.
685
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 <br>Try running with <b><tt>-E sonynews</tt></b>.
696 <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 <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 </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 <br>Try running with <b><tt>-E netgear 0xbfc80000:0x40:WG602_V1715.img</tt></b>.
724 <br>(It takes some time to decompress the kernel, so be patient.)
725 <br>(This doesn't really work yet.)
726 </ul>
727 </li>
728
729 <p>
730
731 <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
742 <p>
743
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 <br><tt><b>gxemul -E walnut -v -t netbsd-INSTALL_WALNUT</b></tt>
750 </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 <br><tt><b>gxemul -E pmppc netbsd-INSTALL</b></tt>
761 </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 <br><tt><b>gxemul -E sandpoint -v -t netbsd-INSTALL</b></tt>
772 </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 <br><tt><b>gxemul -E prep -v -t netbsd-INSTALL</b></tt>
783 <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 <br><tt><b>gxemul -E prep -v -t vmlinux</b></tt>
787 </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 <br><tt><b>gxemul -E macppc -e g4 -t netbsd-INSTALL</b></tt>
797 <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 <br><tt><b>gxemul -E macppc -e g4 -t bsd.rd</b></tt>
801 </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 <br><tt><b>tar xvzf kern.tgz</b></tt>
811 <br><tt><b>gxemul -E bebox netbsd</b></tt>
812 <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 <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 </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 <br><tt><b>gxemul -E ultra1 -v -i netbsd-INSTALL</b></tt>
828 <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 <br><tt><b>gxemul -E ultra1 -v -i bsd.rd</b></tt>
833 </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 <br>Start like this: <tt><b>gxemul -E testurisc 0:urisc_test.bin</b></tt>
849 <br>or, if you want to single-step:
850 <b><tt>gxemul -V -E testurisc 0:urisc_test.bin</b></tt>
851 <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