--- trunk/man/gxemul.1 2007/10/08 16:22:20 41 +++ trunk/man/gxemul.1 2007/10/08 16:22:32 42 @@ -1,4 +1,4 @@ -.\" $Id: gxemul.1,v 1.89 2007/04/10 15:37:00 debug Exp $ +.\" $Id: gxemul.1,v 1.96 2007/06/15 21:43:53 debug Exp $ .\" .\" Copyright (C) 2004-2007 Anders Gavare. All rights reserved. .\" @@ -29,7 +29,7 @@ .\" This is a minimal man page for GXemul. Process this file with .\" groff -man -Tascii gxemul.1 or nroff -man gxemul.1 .\" -.Dd APRIL 2007 +.Dd JUNE 2007 .Dt GXEMUL 1 .Os .Sh NAME @@ -42,10 +42,9 @@ .Nm .Op general options .Ar @configfile -.\" TODO: Reenable this once userland emulation works: -.\" .Nm -.\" .Op userland, other, and general options -.\" .Ar file Op Ar args ... +.Nm +.Op userland, other, and general options +.Ar file Op Ar args ... .Sh DESCRIPTION .Nm is an experimental instruction-level machine emulator. Several @@ -54,37 +53,41 @@ systems (e.g. NetBSD) run inside the emulator as if they were running on a real machine. .Pp -Processors (ARM, MIPS, PowerPC, SuperH) are emulated using dynamic translation. -However, unlike some other dynamically translating emulators, GXemul does -not need to generate native code, only a "runnable intermediate -representation", and will thus run on any host architecture, without the -need to implement per-architecture backends. +Processors (ARM, MIPS, PowerPC, and SuperH) are emulated using dynamic +translation. However, unlike some other dynamically translating emulators, +GXemul does not need to generate native code, only a "runnable +intermediate representation", and will thus run on any host architecture, +without the need to implement per-architecture backends. .Pp The emulator can be invoked in the following ways: .Pp -1. When emulating a complete machine, configuration options can be entered -directly on the command line. +1. When emulating a complete machine, configuration options can be +supplied directly on the command line. .Pp 2. Options can be read from a configuration file. -.\" .Pp -.\" 3. When emulating a userland environment (syscall-only emulation, not -.\" emulating complete machines), then the program name and its argument -.\" should be given on the command line. (This mode doesn't really work yet, -.\" and is disabled for stable release builds.) +.Pp +3. When emulating a userland environment (syscall-only emulation, not +emulating complete machines), then the program name and its argument +should be given on the command line. (This mode is not really usable yet.) .Pp The easiest way to use the emulator is to supply settings directly on the -command line. The most important thing you need to supply is the +command line. +.Pp +The most important thing you need to supply is the file argument. This is the name of a binary file (an ELF, a.out, COFF/ECOFF, SREC, or a raw binary image) which you wish to run in the emulator. This file might be an operating system kernel, or perhaps a ROM image file. -.Pp If more than one filename is supplied, all files are loaded into memory, and the entry point (if available) is taken from the last file. .Pp -Apart from the name of a binary file, it is also necessary to select -which specific emulation mode to use. For example, a MIPS-based machine -from DEC (a DECstation) is very different from a MIPS-based machine -from SGI. Use +Apart from the name of a binary file, you must also use the +.Fl E +and/or +.Fl e +options to select which emulation mode to use. This is necessary because +the emulator cannot in general deduce this from the file being executed. +For example, a MIPS-based machine from DEC (a DECstation) is very different +from a MIPS-based machine from SGI. Use .Nm .Fl H to get a list of available emulation modes. @@ -207,7 +210,7 @@ number of sectors per track is calculated automatically. (This works for 720KB, 1.2MB, 1.44MB, and 2.88MB floppies.) .It Fl I Ar hz -Set the main CPUs frequency to +Set the main CPU's frequency to .Ar hz Hz. This option does not work for all emulated machine modes. It affects the way count/compare interrupts are faked to simulate emulated time = @@ -325,9 +328,6 @@ and .Fl B flags are added to the command line). -.Pp -If a value is missing (e.g. the end-of-page slot does not really have a -known physical address), it is written out as just a dash ("-"). .It Fl T Halt if the emulated program attempts to access non-existing memory. .It Fl t @@ -372,16 +372,18 @@ as an X11 display to use for framebuffers. .El .Pp -.\" Userland options: -.\" .Bl -tag -width Ds -.\" .It Fl u Ar emul-mode -.\" Userland-only (syscall) emulation. (Use -.\" .Fl H -.\" to get a list of available emulation modes.) Some (but not all) of the -.\" options listed under Other options above can also be used with -.\" userland emulation. -.\" .El -.\" .Pp +Userland options: +.Bl -tag -width Ds +.It Fl u Ar emul-mode +Userland-only (syscall) emulation. (Use +.Fl H +to get a list of available emulation modes.) Some (but not all) of the +options listed under Other options above can also be used with +userland emulation. +.Pp +Note: Userland (syscall) emulation does not really work yet. +.El +.Pp General options: .Bl -tag -width Ds .It Fl b @@ -389,8 +391,8 @@ yet. Don't use it unless you know what you are doing. It will most likely not work. .It Fl B -Disable native code generation at runtime. (This is the default in -GXemul 0.4.4; there are no implemented native code generation backends.) +Disable native code generation at runtime. This is the default in this +release of GXemul. .It Fl c Ar cmd Add .Ar cmd @@ -417,15 +419,11 @@ .It Fl k Ar n Set the size of the dyntrans cache (per emulated CPU) to .Ar n -MB. The default size is 32 MB. +MB. The default size is 48 MB. .It Fl K Force the single-step debugger to be entered at the end of a simulation. .It Fl q Quiet mode; this suppresses startup messages. -.\".It Fl s -.\"For MIPS emulation: Show opcode usage statistics after the simulation. -.\"For non-MIPS emulation (i.e. using dyntrans): Save statistics to a file -.\"at regular intervals of which physical addresses that were executed. .It Fl V Start up in the single-step debugger, paused. .It Fl v @@ -501,10 +499,8 @@ real-world processor. .Pp .Nm -is in general not timing-accurate. Some emulation modes -(DECstation, CATS, NetWinder, MobilePro (hpcmips), Malta (evbmips), -Cobalt, Algor, Dreamcast, PICA-61, and IQ80321) try to make the guest -operating system's clock run at the same speed as the host clock. +is in general not timing-accurate. Many emulation modes try to make the +guest operating system's clock run at the same speed as the host clock. However, the number of instructions executed per clock tick can obviously vary, depending on the current CPU load on the host. .Sh AUTHOR