Commit 15a34c63642d8b70ad90bfbb2c2f823753e2dbf4
1 parent
1bfe856e
doc update
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@990 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
176 additions
and
118 deletions
qemu-doc.texi
| ... | ... | @@ -41,18 +41,19 @@ For system emulation, the following hardware targets are supported: |
| 41 | 41 | @itemize |
| 42 | 42 | @item PC (x86 processor) |
| 43 | 43 | @item PREP (PowerPC processor) |
| 44 | +@item PowerMac (PowerPC processor, in progress) | |
| 44 | 45 | @end itemize |
| 45 | 46 | |
| 46 | 47 | For user emulation, x86, PowerPC, ARM, and SPARC CPUs are supported. |
| 47 | 48 | |
| 48 | 49 | @chapter Installation |
| 49 | 50 | |
| 51 | +If you want to compile QEMU yourself, see @ref{compilation}. | |
| 52 | + | |
| 50 | 53 | @section Linux |
| 51 | 54 | |
| 52 | -If you want to compile QEMU, please read the @file{README} which gives | |
| 53 | -the related information. Otherwise just download the binary | |
| 54 | -distribution (@file{qemu-XXX-i386.tar.gz}) and untar it as root in | |
| 55 | -@file{/}: | |
| 55 | +Download the binary distribution (@file{qemu-XXX-i386.tar.gz}) and | |
| 56 | +untar it as root in @file{/}: | |
| 56 | 57 | |
| 57 | 58 | @example |
| 58 | 59 | su |
| ... | ... | @@ -62,67 +63,13 @@ tar zxvf /tmp/qemu-XXX-i386.tar.gz |
| 62 | 63 | |
| 63 | 64 | @section Windows |
| 64 | 65 | |
| 65 | -@itemize | |
| 66 | -@item Install the current versions of MSYS and MinGW from | |
| 67 | -@url{http://www.mingw.org/}. You can find detailed installation | |
| 68 | -instructions in the download section and the FAQ. | |
| 69 | - | |
| 70 | -@item Download | |
| 71 | -the MinGW development library of SDL 1.2.x | |
| 72 | -(@file{SDL-devel-1.2.x-mingw32.tar.gz}) from | |
| 73 | -@url{http://www.libsdl.org}. Unpack it in a temporary place, and | |
| 74 | -unpack the archive @file{i386-mingw32msvc.tar.gz} in the MinGW tool | |
| 75 | -directory. Edit the @file{sdl-config} script so that it gives the | |
| 76 | -correct SDL directory when invoked. | |
| 77 | - | |
| 78 | -@item Extract the current version of QEMU. | |
| 79 | - | |
| 80 | -@item Start the MSYS shell (file @file{msys.bat}). | |
| 81 | - | |
| 82 | -@item Change to the QEMU directory. Launch @file{./configure} and | |
| 83 | -@file{make}. If you have problems using SDL, verify that | |
| 84 | -@file{sdl-config} can be launched from the MSYS command line. | |
| 85 | - | |
| 86 | -@item You can install QEMU in @file{Program Files/Qemu} by typing | |
| 87 | -@file{make install}. Don't forget to copy @file{SDL.dll} in | |
| 88 | -@file{Program Files/Qemu}. | |
| 89 | - | |
| 90 | -@end itemize | |
| 91 | - | |
| 92 | -@section Cross compilation for Windows with Linux | |
| 93 | - | |
| 94 | -@itemize | |
| 95 | -@item | |
| 96 | -Install the MinGW cross compilation tools available at | |
| 97 | -@url{http://www.mingw.org/}. | |
| 98 | - | |
| 99 | -@item | |
| 100 | -Install the Win32 version of SDL (@url{http://www.libsdl.org}) by | |
| 101 | -unpacking @file{i386-mingw32msvc.tar.gz}. Set up the PATH environment | |
| 102 | -variable so that @file{i386-mingw32msvc-sdl-config} can be launched by | |
| 103 | -the QEMU configuration script. | |
| 104 | - | |
| 105 | -@item | |
| 106 | -Configure QEMU for Windows cross compilation: | |
| 107 | -@example | |
| 108 | -./configure --enable-mingw32 | |
| 109 | -@end example | |
| 110 | -If necessary, you can change the cross-prefix according to the prefix | |
| 111 | -choosen for the MinGW tools with --cross-prefix. You can also use | |
| 112 | ---prefix to set the Win32 install path. | |
| 113 | - | |
| 114 | -@item You can install QEMU in the installation directory by typing | |
| 115 | -@file{make install}. Don't forget to copy @file{SDL.dll} in the | |
| 116 | -installation directory. | |
| 117 | - | |
| 118 | -@end itemize | |
| 119 | - | |
| 120 | -Note: Currently, Wine does not seem able to launch | |
| 121 | -QEMU for Win32. | |
| 66 | +Download the experimental binary installer at | |
| 67 | +@url{http://www.freeoszoo.org/download.php}. | |
| 122 | 68 | |
| 123 | 69 | @section Mac OS X |
| 124 | 70 | |
| 125 | -Mac OS X is currently not supported. | |
| 71 | +Download the experimental binary installer at | |
| 72 | +@url{http://www.freeoszoo.org/download.php}. | |
| 126 | 73 | |
| 127 | 74 | @chapter QEMU PC System emulator invocation |
| 128 | 75 | |
| ... | ... | @@ -138,11 +85,11 @@ available: |
| 138 | 85 | @enumerate |
| 139 | 86 | |
| 140 | 87 | @item |
| 141 | -@code{qemu-fast} uses the host Memory Management Unit (MMU) to simulate | |
| 142 | -the x86 MMU. It is @emph{fast} but has limitations because the whole 4 GB | |
| 143 | -address space cannot be used and some memory mapped peripherials | |
| 144 | -cannot be emulated accurately yet. Therefore, a specific Linux kernel | |
| 145 | -must be used (@xref{linux_compile}). | |
| 88 | +@code{qemu-fast} uses the host Memory Management Unit (MMU) to | |
| 89 | +simulate the x86 MMU. It is @emph{fast} but has limitations because | |
| 90 | +the whole 4 GB address space cannot be used and some memory mapped | |
| 91 | +peripherials cannot be emulated accurately yet. Therefore, a specific | |
| 92 | +guest Linux kernel can be used (@xref{linux_compile}) as guest OS. | |
| 146 | 93 | |
| 147 | 94 | @item |
| 148 | 95 | @code{qemu} uses a software MMU. It is about @emph{two times |
| ... | ... | @@ -153,22 +100,28 @@ slower} but gives a more accurate emulation. |
| 153 | 100 | QEMU emulates the following PC peripherials: |
| 154 | 101 | |
| 155 | 102 | @itemize @minus |
| 103 | +@item | |
| 104 | +i440FX host PCI bridge and PIIX3 PCI to ISA bridge | |
| 156 | 105 | @item |
| 157 | -VGA (hardware level, including all non standard modes) | |
| 106 | +Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA | |
| 107 | +extensions (hardware level, including all non standard modes). | |
| 158 | 108 | @item |
| 159 | 109 | PS/2 mouse and keyboard |
| 160 | 110 | @item |
| 161 | -2 IDE interfaces with hard disk and CD-ROM support | |
| 111 | +2 PCI IDE interfaces with hard disk and CD-ROM support | |
| 162 | 112 | @item |
| 163 | 113 | Floppy disk |
| 164 | 114 | @item |
| 165 | -up to 6 NE2000 network adapters | |
| 115 | +NE2000 PCI network adapters | |
| 166 | 116 | @item |
| 167 | 117 | Serial port |
| 168 | 118 | @item |
| 169 | 119 | Soundblaster 16 card |
| 170 | 120 | @end itemize |
| 171 | 121 | |
| 122 | +QEMU uses the PC BIOS from the Bochs project and the Plex86/Bochs LGPL | |
| 123 | +VGA BIOS. | |
| 124 | + | |
| 172 | 125 | @c man end |
| 173 | 126 | |
| 174 | 127 | @section Quick Start |
| ... | ... | @@ -220,7 +173,7 @@ the raw disk image you use is not written back. You can however force |
| 220 | 173 | the write back by pressing @key{C-a s} (@xref{disk_images}). |
| 221 | 174 | |
| 222 | 175 | @item -m megs |
| 223 | -Set virtual RAM size to @var{megs} megabytes. | |
| 176 | +Set virtual RAM size to @var{megs} megabytes. Default is 128 MB. | |
| 224 | 177 | |
| 225 | 178 | @item -initrd file |
| 226 | 179 | Use @var{file} as initial ram disk. |
| ... | ... | @@ -238,6 +191,11 @@ with a serial console. |
| 238 | 191 | The SB16 emulation is disabled by default as it may give problems with |
| 239 | 192 | Windows. You can enable it manually with this option. |
| 240 | 193 | |
| 194 | +@item -localtime | |
| 195 | +Set the real time clock to local time (the default is to UTC | |
| 196 | +time). This option is needed to have correct date in MS-DOS or | |
| 197 | +Windows. | |
| 198 | + | |
| 241 | 199 | @end table |
| 242 | 200 | |
| 243 | 201 | Network options: |
| ... | ... | @@ -261,11 +219,11 @@ it. Read @url{http://bellard.org/qemu/tetrinet.html} to have an |
| 261 | 219 | example of its use. |
| 262 | 220 | |
| 263 | 221 | @item -user-net |
| 264 | -(Experimental) Use the user mode network stack. This is the default if | |
| 265 | -no tun/tap network init script is found. | |
| 222 | +Use the user mode network stack. This is the default if no tun/tap | |
| 223 | +network init script is found. | |
| 266 | 224 | |
| 267 | 225 | @item -dummy-net |
| 268 | -Use the dummy network stack: no packet will be received on the network | |
| 226 | +Use the dummy network stack: no packet will be received by the network | |
| 269 | 227 | cards. |
| 270 | 228 | |
| 271 | 229 | @end table |
| ... | ... | @@ -287,7 +245,7 @@ Use @var{file} as initial ram disk. |
| 287 | 245 | |
| 288 | 246 | @end table |
| 289 | 247 | |
| 290 | -Debug options: | |
| 248 | +Debug/Expert options: | |
| 291 | 249 | @table @option |
| 292 | 250 | @item -s |
| 293 | 251 | Wait gdb connection to port 1234 (@xref{gdb_usage}). |
| ... | ... | @@ -297,6 +255,12 @@ Change gdb connection port. |
| 297 | 255 | Do not start CPU at startup (you must type 'c' in the monitor). |
| 298 | 256 | @item -d |
| 299 | 257 | Output log in /tmp/qemu.log |
| 258 | +@item -isa | |
| 259 | +Simulate an ISA-only system (default is PCI system). | |
| 260 | +@item -std-vga | |
| 261 | +Simulate a standard VGA card with Bochs VBE extensions (default is | |
| 262 | +Cirrus Logic GD5446 PCI VGA) | |
| 263 | + | |
| 300 | 264 | @end table |
| 301 | 265 | |
| 302 | 266 | During the graphical emulation, you can use the following keys: |
| ... | ... | @@ -495,6 +459,10 @@ sendkey ctrl-alt-f1 |
| 495 | 459 | This command is useful to send keys that your graphical user interface |
| 496 | 460 | intercepts at low level, such as @code{ctrl-alt-f1} in X Window. |
| 497 | 461 | |
| 462 | +@item system_reset | |
| 463 | + | |
| 464 | +Reset the system. | |
| 465 | + | |
| 498 | 466 | @end table |
| 499 | 467 | |
| 500 | 468 | @subsection Integer expressions |
| ... | ... | @@ -904,63 +872,93 @@ Use @code{set architecture i8086} to dump 16 bit code. Then use |
| 904 | 872 | |
| 905 | 873 | @subsection Linux |
| 906 | 874 | |
| 907 | -To have access to SVGA graphic modes under X11, use the @code{vesa} | |
| 908 | -X11 driver. For optimal performances, use the same depth as your | |
| 909 | -native display. | |
| 875 | +To have access to SVGA graphic modes under X11, use the @code{vesa} or | |
| 876 | +the @code{cirrus} X11 driver. For optimal performances, use 16 bit | |
| 877 | +color depth in the guest and the host OS. | |
| 910 | 878 | |
| 911 | 879 | @subsection Windows |
| 912 | 880 | |
| 913 | 881 | If you have a slow host, using Windows 95 is better as it gives the |
| 914 | 882 | best speed. Windows 2000 is also a good choice. |
| 915 | 883 | |
| 916 | -SVGA graphic modes support: QEMU currently supports the Bochs VESA VBE | |
| 917 | -extensions. It supports color depths of 8, 15, 16 and 32 bits per | |
| 918 | -pixel in 640x480, 800x600 and 1024x768. For optimal performances, use | |
| 919 | -the same depth as your native display. | |
| 884 | +SVGA graphic modes support: QEMU emulates a Cirrus Logic GD5446 Video | |
| 885 | +card. All Windows versions starting from Windows 95 should recognize | |
| 886 | +and use this graphic card. For optimal performances, use 16 bit color | |
| 887 | +depth in the guest and the host OS. | |
| 920 | 888 | |
| 921 | -@itemize | |
| 889 | +CPU usage reduction: Windows 9x does not correctly use the CPU HLT | |
| 890 | +instruction. The result is that it takes host CPU cycles even when | |
| 891 | +idle. You can install the utility from | |
| 892 | +@url{http://www.user.cityline.ru/~maxamn/amnhltm.zip} to solve this | |
| 893 | +problem. Note that no such tool is needed for NT, 2000 or XP. | |
| 922 | 894 | |
| 923 | -@item Windows XP: it should be automatically detected. | |
| 895 | +@chapter QEMU PowerPC System emulator invocation | |
| 924 | 896 | |
| 925 | -@item Windows NT4 or 2000: use the driver | |
| 926 | -@url{http://www.volny.cz/xnavara/qemuvid_bin.zip} by Filip Navara. | |
| 897 | +Use the executable @file{qemu-system-ppc} to simulate a complete PREP | |
| 898 | +or PowerMac PowerPC system. | |
| 927 | 899 | |
| 928 | -@item Windows 95/98/Me: no clean solution yet (but it will change | |
| 929 | -soon). You can however use the shareware driver from SciTech. Here are | |
| 930 | -the steps recommended by Christophe Bothamy on the Bochs mailing list: | |
| 900 | +QEMU emulates the following PowerMac peripherials: | |
| 931 | 901 | |
| 932 | -@itemize | |
| 933 | -@item install win95 with the VGA driver. | |
| 934 | -@item download sdd 7 beta from @url{http://www.majorgeeks.com/download382.html} | |
| 935 | -@item download pmhelp.vxd from @url{http://unununium.org/viewcvs/snap/redist/release/pmhelp.vxd} | |
| 936 | -@item copy pmhelp.vxd to the win95 system directory | |
| 937 | -@item install sdd7 | |
| 938 | -@end itemize | |
| 902 | +@itemize @minus | |
| 903 | +@item | |
| 904 | +UniNorth PCI Bridge | |
| 905 | +@item | |
| 906 | +PCI VGA compatible card with VESA Bochs Extensions | |
| 907 | +@item | |
| 908 | +2 PMAC IDE interfaces with hard disk and CD-ROM support | |
| 909 | +@item | |
| 910 | +NE2000 PCI adapters | |
| 911 | +@item | |
| 912 | +Non Volatile RAM | |
| 913 | +@item | |
| 914 | +VIA-CUDA with ADB keyboard and mouse. | |
| 939 | 915 | @end itemize |
| 940 | 916 | |
| 941 | -@chapter QEMU PREP PowerPC System emulator invocation | |
| 942 | - | |
| 943 | -Use the executable @file{qemu-system-ppc} to simulate a complete PREP | |
| 944 | -PowerPC system. | |
| 945 | - | |
| 946 | 917 | QEMU emulates the following PREP peripherials: |
| 947 | 918 | |
| 948 | 919 | @itemize @minus |
| 949 | 920 | @item |
| 921 | +PCI Bridge | |
| 922 | +@item | |
| 923 | +PCI VGA compatible card with VESA Bochs Extensions | |
| 924 | +@item | |
| 950 | 925 | 2 IDE interfaces with hard disk and CD-ROM support |
| 951 | 926 | @item |
| 952 | 927 | Floppy disk |
| 953 | 928 | @item |
| 954 | -up to 6 NE2000 network adapters | |
| 929 | +NE2000 network adapters | |
| 955 | 930 | @item |
| 956 | 931 | Serial port |
| 957 | 932 | @item |
| 958 | 933 | PREP Non Volatile RAM |
| 934 | +@item | |
| 935 | +PC compatible keyboard and mouse. | |
| 959 | 936 | @end itemize |
| 960 | 937 | |
| 938 | +QEMU uses the Open Hack'Ware Open Firmware Compatible BIOS available at | |
| 939 | +@url{http://site.voila.fr/jmayer/OpenHackWare/index.htm}. | |
| 940 | + | |
| 961 | 941 | You can read the qemu PC system emulation chapter to have more |
| 962 | 942 | informations about QEMU usage. |
| 963 | 943 | |
| 944 | +@c man begin OPTIONS | |
| 945 | + | |
| 946 | +The following options are specific to the PowerPC emulation: | |
| 947 | + | |
| 948 | +@table @option | |
| 949 | + | |
| 950 | +@item -prep | |
| 951 | +Simulate a PREP system (default is PowerMAC) | |
| 952 | + | |
| 953 | +@item -g WxH[xDEPTH] | |
| 954 | + | |
| 955 | +Set the initial VGA graphic mode. The default is 800x600x15. | |
| 956 | + | |
| 957 | +@end table | |
| 958 | + | |
| 959 | +@c man end | |
| 960 | + | |
| 961 | + | |
| 964 | 962 | More information is available at |
| 965 | 963 | @url{http://jocelyn.mayer.free.fr/qemu-ppc/}. |
| 966 | 964 | |
| ... | ... | @@ -1065,3 +1063,76 @@ Activate log (logfile=/tmp/qemu.log) |
| 1065 | 1063 | Act as if the host page size was 'pagesize' bytes |
| 1066 | 1064 | @end table |
| 1067 | 1065 | |
| 1066 | +@node compilation | |
| 1067 | +@chapter Compilation from the sources | |
| 1068 | + | |
| 1069 | +@section Linux/BSD | |
| 1070 | + | |
| 1071 | +Read the @file{README} which gives the related information. | |
| 1072 | + | |
| 1073 | +@section Windows | |
| 1074 | + | |
| 1075 | +@itemize | |
| 1076 | +@item Install the current versions of MSYS and MinGW from | |
| 1077 | +@url{http://www.mingw.org/}. You can find detailed installation | |
| 1078 | +instructions in the download section and the FAQ. | |
| 1079 | + | |
| 1080 | +@item Download | |
| 1081 | +the MinGW development library of SDL 1.2.x | |
| 1082 | +(@file{SDL-devel-1.2.x-mingw32.tar.gz}) from | |
| 1083 | +@url{http://www.libsdl.org}. Unpack it in a temporary place, and | |
| 1084 | +unpack the archive @file{i386-mingw32msvc.tar.gz} in the MinGW tool | |
| 1085 | +directory. Edit the @file{sdl-config} script so that it gives the | |
| 1086 | +correct SDL directory when invoked. | |
| 1087 | + | |
| 1088 | +@item Extract the current version of QEMU. | |
| 1089 | + | |
| 1090 | +@item Start the MSYS shell (file @file{msys.bat}). | |
| 1091 | + | |
| 1092 | +@item Change to the QEMU directory. Launch @file{./configure} and | |
| 1093 | +@file{make}. If you have problems using SDL, verify that | |
| 1094 | +@file{sdl-config} can be launched from the MSYS command line. | |
| 1095 | + | |
| 1096 | +@item You can install QEMU in @file{Program Files/Qemu} by typing | |
| 1097 | +@file{make install}. Don't forget to copy @file{SDL.dll} in | |
| 1098 | +@file{Program Files/Qemu}. | |
| 1099 | + | |
| 1100 | +@end itemize | |
| 1101 | + | |
| 1102 | +@section Cross compilation for Windows with Linux | |
| 1103 | + | |
| 1104 | +@itemize | |
| 1105 | +@item | |
| 1106 | +Install the MinGW cross compilation tools available at | |
| 1107 | +@url{http://www.mingw.org/}. | |
| 1108 | + | |
| 1109 | +@item | |
| 1110 | +Install the Win32 version of SDL (@url{http://www.libsdl.org}) by | |
| 1111 | +unpacking @file{i386-mingw32msvc.tar.gz}. Set up the PATH environment | |
| 1112 | +variable so that @file{i386-mingw32msvc-sdl-config} can be launched by | |
| 1113 | +the QEMU configuration script. | |
| 1114 | + | |
| 1115 | +@item | |
| 1116 | +Configure QEMU for Windows cross compilation: | |
| 1117 | +@example | |
| 1118 | +./configure --enable-mingw32 | |
| 1119 | +@end example | |
| 1120 | +If necessary, you can change the cross-prefix according to the prefix | |
| 1121 | +choosen for the MinGW tools with --cross-prefix. You can also use | |
| 1122 | +--prefix to set the Win32 install path. | |
| 1123 | + | |
| 1124 | +@item You can install QEMU in the installation directory by typing | |
| 1125 | +@file{make install}. Don't forget to copy @file{SDL.dll} in the | |
| 1126 | +installation directory. | |
| 1127 | + | |
| 1128 | +@end itemize | |
| 1129 | + | |
| 1130 | +Note: Currently, Wine does not seem able to launch | |
| 1131 | +QEMU for Win32. | |
| 1132 | + | |
| 1133 | +@section Mac OS X | |
| 1134 | + | |
| 1135 | +The Mac OS X patches are not fully merged in QEMU, so you should look | |
| 1136 | +at the QEMU mailing list archive to have all the necessary | |
| 1137 | +information. | |
| 1138 | + | ... | ... |
qemu-tech.texi
| ... | ... | @@ -258,7 +258,7 @@ segment base. |
| 258 | 258 | |
| 259 | 259 | @section Translation cache |
| 260 | 260 | |
| 261 | -A 2MByte cache holds the most recently used translations. For | |
| 261 | +A 16 MByte cache holds the most recently used translations. For | |
| 262 | 262 | simplicity, it is completely flushed when it is full. A translation unit |
| 263 | 263 | contains just a single basic block (a block of x86 instructions |
| 264 | 264 | terminated by a jump or by a virtual CPU state change which the |
| ... | ... | @@ -489,19 +489,6 @@ This program tests various Linux system calls. It is used to verify |
| 489 | 489 | that the system call parameters are correctly converted between target |
| 490 | 490 | and host CPUs. |
| 491 | 491 | |
| 492 | -@section @file{hello-i386} | |
| 493 | - | |
| 494 | -Very simple statically linked x86 program, just to test QEMU during a | |
| 495 | -port to a new host CPU. | |
| 496 | - | |
| 497 | -@section @file{hello-arm} | |
| 498 | - | |
| 499 | -Very simple statically linked ARM program, just to test QEMU during a | |
| 500 | -port to a new host CPU. | |
| 501 | - | |
| 502 | -@section @file{sha1} | |
| 503 | - | |
| 504 | -It is a simple benchmark. Care must be taken to interpret the results | |
| 505 | -because it mostly tests the ability of the virtual CPU to optimize the | |
| 506 | -@code{rol} x86 instruction and the condition code computations. | |
| 492 | +@section @file{qruncom.c} | |
| 507 | 493 | |
| 494 | +Example of usage of @code{libqemu} to emulate a user mode i386 CPU. | ... | ... |