1 |
.\" $Id: gxemul.1,v 1.69 2006/08/11 17:43:29 debug Exp $ |
.\" $Id: gxemul.1,v 1.76 2006/11/04 06:40:20 debug Exp $ |
2 |
.\" |
.\" |
3 |
.\" Copyright (C) 2004-2006 Anders Gavare. All rights reserved. |
.\" Copyright (C) 2004-2006 Anders Gavare. All rights reserved. |
4 |
.\" |
.\" |
29 |
.\" This is a minimal man page for GXemul. Process this file with |
.\" This is a minimal man page for GXemul. Process this file with |
30 |
.\" groff -man -Tascii gxemul.1 or nroff -man gxemul.1 |
.\" groff -man -Tascii gxemul.1 or nroff -man gxemul.1 |
31 |
.\" |
.\" |
32 |
.Dd AUGUST 2006 |
.Dd NOVEMBER 2006 |
33 |
.Dt GXEMUL 1 |
.Dt GXEMUL 1 |
34 |
.Os |
.Os |
35 |
.Sh NAME |
.Sh NAME |
54 |
systems (e.g. NetBSD) run inside the emulator as if they were running on a |
systems (e.g. NetBSD) run inside the emulator as if they were running on a |
55 |
real machine. |
real machine. |
56 |
.Pp |
.Pp |
57 |
Processors (ARM, MIPS, PowerPC) are emulated using dynamic translation. |
Processors (ARM, MIPS, PowerPC, SuperH) are emulated using dynamic translation. |
58 |
However, unlike some other dynamically translating emulators, GXemul does |
However, unlike some other dynamically translating emulators, GXemul does |
59 |
not currently generate native code, only a "runnable intermediate |
not currently generate native code, only a "runnable intermediate |
60 |
representation", and will thus run on any host architecture, without the |
representation", and will thus run on any host architecture, without the |
197 |
.Ar port |
.Ar port |
198 |
for incoming remote GDB connections. The emulator starts up in paused |
for incoming remote GDB connections. The emulator starts up in paused |
199 |
mode, and it is up to the remote GDB instance to start the session. |
mode, and it is up to the remote GDB instance to start the session. |
200 |
.It Fl I Ar x |
.It Fl I Ar hz |
201 |
Emulate clock interrupts at |
Set the main CPUs frequency to |
202 |
.Ar x |
.Ar hz |
203 |
Hz. (This affects emulated clock devices only, not actual runtime speed. |
Hz. This option does not work for all emulated machine modes. It affects |
204 |
This disables automatic clock adjustments, which is otherwise turned on.) |
the way count/compare interrupts are faked to simulate emulated time = |
205 |
(This option is probably only valid for DECstation emulation.) |
real world time. If the guest operating system relies on RTC interrupts |
206 |
|
instead of count/compare interrupts, then this option has no effect. |
207 |
|
.Pp |
208 |
|
Setting the frequency to zero disables automatic synchronization of |
209 |
|
emulated time vs real world time, and the count/compare system runs at a |
210 |
|
fixed rate. |
211 |
.It Fl i |
.It Fl i |
212 |
Enable instruction trace, i.e. display disassembly of each instruction as |
Enable instruction trace, i.e. display disassembly of each instruction as |
213 |
it is being executed. |
it is being executed. |
378 |
.Fl V |
.Fl V |
379 |
option, and entering the commands manually. |
option, and entering the commands manually. |
380 |
.It Fl D |
.It Fl D |
381 |
Guarantee fully deterministic behavior. Normally, the emulator calls |
Causes the emulator to skip a call to srandom(). This leads to somewhat |
382 |
srandom() with a seed based on the current time at startup. When the |
more deterministic behaviour than running without this option. |
383 |
.Fl D |
However, if the emulated machine has clocks or timer interrupt sources, |
384 |
option is used, the srandom() call is skipped, which should cause two |
or if user interaction is taking place (e.g. keyboard input at irregular |
385 |
subsequent invocations of the emulator to be identical, if all other |
intervals), then this option is meaningless. |
|
settings are identical and no user input is taking place. (If this option |
|
|
is used, then |
|
|
.Fl I |
|
|
must also be used.) |
|
386 |
.It Fl H |
.It Fl H |
387 |
Display a list of available CPU types, machine types, and userland |
Display a list of available CPU types, machine types, and userland |
388 |
emulation modes. (Most of these don't work. Please read the documentation |
emulation modes. (Most of these don't work. Please read the documentation |
466 |
.Nm |
.Nm |
467 |
source distribution, some are marked as TODO in the source code itself. |
source distribution, some are marked as TODO in the source code itself. |
468 |
.Pp |
.Pp |
469 |
Userland (syscall-only) emulation doesn't really work yet. |
Userland (syscall-only) emulation, i.e. running a userland binary directly |
470 |
|
without simulating an entire machine, doesn't really work yet. |
471 |
.Pp |
.Pp |
472 |
The documentation sometimes only reflects the way things worked with |
The documentation sometimes only reflects the way things worked with |
473 |
the old MIPS emulation mode (prior to 0.4.0), and it is incorrect when |
the old MIPS emulation mode (prior to 0.4.0), and it is incorrect when |
480 |
real-world processor. |
real-world processor. |
481 |
.Pp |
.Pp |
482 |
.Nm |
.Nm |
483 |
is not timing-accurate, i.e. clocks inside the emulator are in general |
is in general not timing-accurate. Some emulation modes |
484 |
not at all synched with clocks in the real world. There are a few |
(DECstation, CATS, NetWinder, MobilePro (hpcmips), Malta (evbmips), |
485 |
exceptions to this rule (the mc146818 device tries to automagically |
Cobalt, Algor, and Dreamcast) try to make the guest |
486 |
adjust emulated timer ticks to actual emulation speed). |
operating system's clock run at the same speed as the host clock. |
487 |
|
However, the number of instructions executed per clock tick can |
488 |
|
obviously vary, depending on the current CPU load on the host. |
489 |
.Sh AUTHOR |
.Sh AUTHOR |
490 |
GXemul is Copyright (C) 2003-2006 Anders Gavare <anders@gavare.se> |
GXemul is Copyright (C) 2003-2006 Anders Gavare <anders@gavare.se> |
491 |
.Pp |
.Pp |