Commit 322d0c6657ce6fe82eb042c045117fb3888c5c53

Authored by bellard
1 parent 2054396a

update


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@250 c046a42c-6fe2-441c-8c8c-71466251a162
Changelog
... ... @@ -3,7 +3,7 @@ version 0.3:
3 3 - initial support for ARM emulation
4 4 - added fnsave, frstor, fnstenv, fldenv FPU instructions
5 5 - added FPU register save in signal emulation
6   - - ARM port
  6 + - initial ARM port
7 7 - Sparc and Alpha ports work on the regression test
8 8 - generic ioctl number conversion
9 9 - fixed ioctl type conversion
... ...
Makefile
... ... @@ -211,7 +211,7 @@ arm-dis.c \
211 211 tests/Makefile \
212 212 tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h \
213 213 tests/test-i386-muldiv.h tests/test-i386-code16.S tests/test-i386-vm86.S \
214   -tests/hello.c tests/hello \
  214 +tests/hello-i386.c tests/hello-i386 \
215 215 tests/hello-arm.c tests/hello-arm \
216 216 tests/sha1.c \
217 217 tests/testsig.c tests/testclone.c tests/testthread.c \
... ...
qemu-doc.texi
1 1 \input texinfo @c -*- texinfo -*-
2 2  
3   -@settitle QEMU x86 Emulator Reference Documentation
  3 +@settitle QEMU CPU Emulator Reference Documentation
4 4 @titlepage
5 5 @sp 7
6   -@center @titlefont{QEMU x86 Emulator Reference Documentation}
  6 +@center @titlefont{QEMU CPU Emulator Reference Documentation}
7 7 @sp 3
8 8 @end titlepage
9 9  
10 10 @chapter Introduction
11 11  
12   -QEMU is an x86 processor emulator. Its purpose is to run x86 Linux
13   -processes on non-x86 Linux architectures such as PowerPC. By using
14   -dynamic translation it achieves a reasonnable speed while being easy to
15   -port on new host CPUs. Its main goal is to be able to launch the
16   -@code{Wine} Windows API emulator (@url{http://www.winehq.org}) or
17   -@code{DOSEMU} (@url{http://www.dosemu.org}) on non-x86 CPUs.
  12 +@section Features
18 13  
19   -QEMU features:
  14 +QEMU is a FAST! processor emulator. Its purpose is to run Linux executables
  15 +compiled for one architecture on another. For example, x86 Linux
  16 +processes can be ran on PowerPC Linux architectures. By using dynamic
  17 +translation it achieves a reasonnable speed while being easy to port on
  18 +new host CPUs. Its main goal is to be able to launch the @code{Wine}
  19 +Windows API emulator (@url{http://www.winehq.org}) or @code{DOSEMU}
  20 +(@url{http://www.dosemu.org}) on non-x86 CPUs.
  21 +
  22 +QEMU generic features:
20 23  
21 24 @itemize
22 25  
23   -@item User space only x86 emulator.
  26 +@item User space only emulation.
24 27  
25   -@item Currently ported on i386, PowerPC. Work in progress for S390, Alpha and Sparc.
  28 +@item Working on x86 and PowerPC hosts. Being tested on ARM, Sparc32, Alpha and S390.
26 29  
27 30 @item Using dynamic translation to native code for reasonnable speed.
28 31  
29   -@item The virtual x86 CPU supports 16 bit and 32 bit addressing with segmentation.
30   -User space LDT and GDT are emulated. VM86 mode is also supported.
31   -
32 32 @item Generic Linux system call converter, including most ioctls.
33 33  
34 34 @item clone() emulation using native CPU clone() to use Linux scheduler for threads.
35 35  
36   -@item Accurate signal handling by remapping host signals to virtual x86 signals.
37   -
38   -@item Precise user space x86 exceptions.
  36 +@item Accurate signal handling by remapping host signals to target signals.
39 37  
40 38 @item Self-modifying code support.
41 39  
  40 +@item The virtual CPU is a library (@code{libqemu}) which can be used
  41 +in other projects.
  42 +
  43 +@end itemize
  44 +
  45 +@section x86 emulation
  46 +
  47 +QEMU x86 target features:
  48 +
  49 +@itemize
  50 +
  51 +@item The virtual x86 CPU supports 16 bit and 32 bit addressing with segmentation.
  52 +User space LDT and GDT are emulated. VM86 mode is also supported to run DOSEMU.
  53 +
  54 +@item Precise user space x86 exceptions.
  55 +
42 56 @item Support of host page sizes bigger than 4KB.
43 57  
44 58 @item QEMU can emulate itself on x86.
45 59  
46   -@item The virtual x86 CPU is a library (@code{libqemu}) which can be used
47   -in other projects.
48   -
49 60 @item An extensive Linux x86 CPU test program is included @file{tests/test-i386}.
50 61 It can be used to test other x86 virtual CPUs.
51 62  
... ... @@ -70,10 +81,26 @@ maximum performances.
70 81  
71 82 @end itemize
72 83  
  84 +@section ARM emulation
  85 +
  86 +@itemize
  87 +
  88 +@item ARM emulation can currently launch small programs while using the
  89 +generic dynamic code generation architecture of QEMU.
  90 +
  91 +@item No FPU support (yet).
  92 +
  93 +@item No automatic regression testing (yet).
  94 +
  95 +@end itemize
  96 +
73 97 @chapter Invocation
74 98  
75 99 @section Quick Start
76 100  
  101 +If you need to compile QEMU, please read the @file{README} which gives
  102 +the related information.
  103 +
77 104 In order to launch a Linux process, QEMU needs the process executable
78 105 itself and all the target (x86) dynamic libraries used by it.
79 106  
... ... @@ -186,7 +213,7 @@ support for it (QEMU could be used to detect out of bound memory accesses
186 213 as Valgrind, but it has no support to track uninitialised data as
187 214 Valgrind does). Valgrind dynamic translator generates better code than
188 215 QEMU (in particular it does register allocation) but it is closely tied
189   -to an x86 host.
  216 +to an x86 host and target.
190 217  
191 218 EM86 [4] is the closest project to QEMU (and QEMU still uses some of its
192 219 code, in particular the ELF file loader). EM86 was limited to an alpha
... ... @@ -204,7 +231,7 @@ between the API and the x86 code must be converted.
204 231  
205 232 QEMU is a dynamic translator. When it first encounters a piece of code,
206 233 it converts it to the host instruction set. Usually dynamic translators
207   -are very complicated and highly CPU dependant. QEMU uses some tricks
  234 +are very complicated and highly CPU dependent. QEMU uses some tricks
208 235 which make it relatively easily portable and simple while achieving good
209 236 performances.
210 237  
... ... @@ -416,14 +443,19 @@ Willows Software.
416 443  
417 444 @chapter Regression Tests
418 445  
419   -In the directory @file{tests/}, various interesting x86 testing programs
  446 +In the directory @file{tests/}, various interesting testing programs
420 447 are available. There are used for regression testing.
421 448  
422   -@section @file{hello}
  449 +@section @file{hello-i386}
423 450  
424 451 Very simple statically linked x86 program, just to test QEMU during a
425 452 port to a new host CPU.
426 453  
  454 +@section @file{hello-arm}
  455 +
  456 +Very simple statically linked ARM program, just to test QEMU during a
  457 +port to a new host CPU.
  458 +
427 459 @section @file{test-i386}
428 460  
429 461 This program executes most of the 16 bit and 32 bit x86 instructions and
... ...