From 15a34c63642d8b70ad90bfbb2c2f823753e2dbf4 Mon Sep 17 00:00:00 2001 From: bellard Date: Thu, 8 Jul 2004 21:26:26 +0000 Subject: [PATCH] doc update git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@990 c046a42c-6fe2-441c-8c8c-71466251a162 --- qemu-doc.texi | 279 +++++++++++++++++++++++++++++++------------------ qemu-tech.texi | 19 +--- 2 files changed, 178 insertions(+), 120 deletions(-) diff --git a/qemu-doc.texi b/qemu-doc.texi index 5c44879737..530dbf1780 100644 --- a/qemu-doc.texi +++ b/qemu-doc.texi @@ -41,18 +41,19 @@ For system emulation, the following hardware targets are supported: @itemize @item PC (x86 processor) @item PREP (PowerPC processor) +@item PowerMac (PowerPC processor, in progress) @end itemize For user emulation, x86, PowerPC, ARM, and SPARC CPUs are supported. @chapter Installation +If you want to compile QEMU yourself, see @ref{compilation}. + @section Linux -If you want to compile QEMU, please read the @file{README} which gives -the related information. Otherwise just download the binary -distribution (@file{qemu-XXX-i386.tar.gz}) and untar it as root in -@file{/}: +Download the binary distribution (@file{qemu-XXX-i386.tar.gz}) and +untar it as root in @file{/}: @example su @@ -62,67 +63,13 @@ tar zxvf /tmp/qemu-XXX-i386.tar.gz @section Windows -@itemize -@item Install the current versions of MSYS and MinGW from -@url{http://www.mingw.org/}. You can find detailed installation -instructions in the download section and the FAQ. - -@item Download -the MinGW development library of SDL 1.2.x -(@file{SDL-devel-1.2.x-mingw32.tar.gz}) from -@url{http://www.libsdl.org}. Unpack it in a temporary place, and -unpack the archive @file{i386-mingw32msvc.tar.gz} in the MinGW tool -directory. Edit the @file{sdl-config} script so that it gives the -correct SDL directory when invoked. - -@item Extract the current version of QEMU. - -@item Start the MSYS shell (file @file{msys.bat}). - -@item Change to the QEMU directory. Launch @file{./configure} and -@file{make}. If you have problems using SDL, verify that -@file{sdl-config} can be launched from the MSYS command line. - -@item You can install QEMU in @file{Program Files/Qemu} by typing -@file{make install}. Don't forget to copy @file{SDL.dll} in -@file{Program Files/Qemu}. - -@end itemize - -@section Cross compilation for Windows with Linux - -@itemize -@item -Install the MinGW cross compilation tools available at -@url{http://www.mingw.org/}. - -@item -Install the Win32 version of SDL (@url{http://www.libsdl.org}) by -unpacking @file{i386-mingw32msvc.tar.gz}. Set up the PATH environment -variable so that @file{i386-mingw32msvc-sdl-config} can be launched by -the QEMU configuration script. - -@item -Configure QEMU for Windows cross compilation: -@example -./configure --enable-mingw32 -@end example -If necessary, you can change the cross-prefix according to the prefix -choosen for the MinGW tools with --cross-prefix. You can also use ---prefix to set the Win32 install path. - -@item You can install QEMU in the installation directory by typing -@file{make install}. Don't forget to copy @file{SDL.dll} in the -installation directory. - -@end itemize - -Note: Currently, Wine does not seem able to launch -QEMU for Win32. +Download the experimental binary installer at +@url{http://www.freeoszoo.org/download.php}. @section Mac OS X -Mac OS X is currently not supported. +Download the experimental binary installer at +@url{http://www.freeoszoo.org/download.php}. @chapter QEMU PC System emulator invocation @@ -138,11 +85,11 @@ available: @enumerate @item -@code{qemu-fast} uses the host Memory Management Unit (MMU) to simulate -the x86 MMU. It is @emph{fast} but has limitations because the whole 4 GB -address space cannot be used and some memory mapped peripherials -cannot be emulated accurately yet. Therefore, a specific Linux kernel -must be used (@xref{linux_compile}). +@code{qemu-fast} uses the host Memory Management Unit (MMU) to +simulate the x86 MMU. It is @emph{fast} but has limitations because +the whole 4 GB address space cannot be used and some memory mapped +peripherials cannot be emulated accurately yet. Therefore, a specific +guest Linux kernel can be used (@xref{linux_compile}) as guest OS. @item @code{qemu} uses a software MMU. It is about @emph{two times @@ -153,22 +100,28 @@ slower} but gives a more accurate emulation. QEMU emulates the following PC peripherials: @itemize @minus +@item +i440FX host PCI bridge and PIIX3 PCI to ISA bridge @item -VGA (hardware level, including all non standard modes) +Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA +extensions (hardware level, including all non standard modes). @item PS/2 mouse and keyboard @item -2 IDE interfaces with hard disk and CD-ROM support +2 PCI IDE interfaces with hard disk and CD-ROM support @item Floppy disk @item -up to 6 NE2000 network adapters +NE2000 PCI network adapters @item Serial port @item Soundblaster 16 card @end itemize +QEMU uses the PC BIOS from the Bochs project and the Plex86/Bochs LGPL +VGA BIOS. + @c man end @section Quick Start @@ -220,7 +173,7 @@ the raw disk image you use is not written back. You can however force the write back by pressing @key{C-a s} (@xref{disk_images}). @item -m megs -Set virtual RAM size to @var{megs} megabytes. +Set virtual RAM size to @var{megs} megabytes. Default is 128 MB. @item -initrd file Use @var{file} as initial ram disk. @@ -238,6 +191,11 @@ with a serial console. The SB16 emulation is disabled by default as it may give problems with Windows. You can enable it manually with this option. +@item -localtime +Set the real time clock to local time (the default is to UTC +time). This option is needed to have correct date in MS-DOS or +Windows. + @end table Network options: @@ -261,11 +219,11 @@ it. Read @url{http://bellard.org/qemu/tetrinet.html} to have an example of its use. @item -user-net -(Experimental) Use the user mode network stack. This is the default if -no tun/tap network init script is found. +Use the user mode network stack. This is the default if no tun/tap +network init script is found. @item -dummy-net -Use the dummy network stack: no packet will be received on the network +Use the dummy network stack: no packet will be received by the network cards. @end table @@ -287,7 +245,7 @@ Use @var{file} as initial ram disk. @end table -Debug options: +Debug/Expert options: @table @option @item -s Wait gdb connection to port 1234 (@xref{gdb_usage}). @@ -297,6 +255,12 @@ Change gdb connection port. Do not start CPU at startup (you must type 'c' in the monitor). @item -d Output log in /tmp/qemu.log +@item -isa +Simulate an ISA-only system (default is PCI system). +@item -std-vga +Simulate a standard VGA card with Bochs VBE extensions (default is +Cirrus Logic GD5446 PCI VGA) + @end table During the graphical emulation, you can use the following keys: @@ -495,6 +459,10 @@ sendkey ctrl-alt-f1 This command is useful to send keys that your graphical user interface intercepts at low level, such as @code{ctrl-alt-f1} in X Window. +@item system_reset + +Reset the system. + @end table @subsection Integer expressions @@ -904,63 +872,93 @@ Use @code{set architecture i8086} to dump 16 bit code. Then use @subsection Linux -To have access to SVGA graphic modes under X11, use the @code{vesa} -X11 driver. For optimal performances, use the same depth as your -native display. +To have access to SVGA graphic modes under X11, use the @code{vesa} or +the @code{cirrus} X11 driver. For optimal performances, use 16 bit +color depth in the guest and the host OS. @subsection Windows If you have a slow host, using Windows 95 is better as it gives the best speed. Windows 2000 is also a good choice. -SVGA graphic modes support: QEMU currently supports the Bochs VESA VBE -extensions. It supports color depths of 8, 15, 16 and 32 bits per -pixel in 640x480, 800x600 and 1024x768. For optimal performances, use -the same depth as your native display. +SVGA graphic modes support: QEMU emulates a Cirrus Logic GD5446 Video +card. All Windows versions starting from Windows 95 should recognize +and use this graphic card. For optimal performances, use 16 bit color +depth in the guest and the host OS. -@itemize +CPU usage reduction: Windows 9x does not correctly use the CPU HLT +instruction. The result is that it takes host CPU cycles even when +idle. You can install the utility from +@url{http://www.user.cityline.ru/~maxamn/amnhltm.zip} to solve this +problem. Note that no such tool is needed for NT, 2000 or XP. -@item Windows XP: it should be automatically detected. - -@item Windows NT4 or 2000: use the driver -@url{http://www.volny.cz/xnavara/qemuvid_bin.zip} by Filip Navara. - -@item Windows 95/98/Me: no clean solution yet (but it will change -soon). You can however use the shareware driver from SciTech. Here are -the steps recommended by Christophe Bothamy on the Bochs mailing list: - -@itemize -@item install win95 with the VGA driver. -@item download sdd 7 beta from @url{http://www.majorgeeks.com/download382.html} -@item download pmhelp.vxd from @url{http://unununium.org/viewcvs/snap/redist/release/pmhelp.vxd} -@item copy pmhelp.vxd to the win95 system directory -@item install sdd7 -@end itemize -@end itemize - -@chapter QEMU PREP PowerPC System emulator invocation +@chapter QEMU PowerPC System emulator invocation Use the executable @file{qemu-system-ppc} to simulate a complete PREP -PowerPC system. +or PowerMac PowerPC system. + +QEMU emulates the following PowerMac peripherials: + +@itemize @minus +@item +UniNorth PCI Bridge +@item +PCI VGA compatible card with VESA Bochs Extensions +@item +2 PMAC IDE interfaces with hard disk and CD-ROM support +@item +NE2000 PCI adapters +@item +Non Volatile RAM +@item +VIA-CUDA with ADB keyboard and mouse. +@end itemize QEMU emulates the following PREP peripherials: @itemize @minus @item +PCI Bridge +@item +PCI VGA compatible card with VESA Bochs Extensions +@item 2 IDE interfaces with hard disk and CD-ROM support @item Floppy disk @item -up to 6 NE2000 network adapters +NE2000 network adapters @item Serial port @item PREP Non Volatile RAM +@item +PC compatible keyboard and mouse. @end itemize +QEMU uses the Open Hack'Ware Open Firmware Compatible BIOS available at +@url{http://site.voila.fr/jmayer/OpenHackWare/index.htm}. + You can read the qemu PC system emulation chapter to have more informations about QEMU usage. +@c man begin OPTIONS + +The following options are specific to the PowerPC emulation: + +@table @option + +@item -prep +Simulate a PREP system (default is PowerMAC) + +@item -g WxH[xDEPTH] + +Set the initial VGA graphic mode. The default is 800x600x15. + +@end table + +@c man end + + More information is available at @url{http://jocelyn.mayer.free.fr/qemu-ppc/}. @@ -1065,3 +1063,76 @@ Activate log (logfile=/tmp/qemu.log) Act as if the host page size was 'pagesize' bytes @end table +@node compilation +@chapter Compilation from the sources + +@section Linux/BSD + +Read the @file{README} which gives the related information. + +@section Windows + +@itemize +@item Install the current versions of MSYS and MinGW from +@url{http://www.mingw.org/}. You can find detailed installation +instructions in the download section and the FAQ. + +@item Download +the MinGW development library of SDL 1.2.x +(@file{SDL-devel-1.2.x-mingw32.tar.gz}) from +@url{http://www.libsdl.org}. Unpack it in a temporary place, and +unpack the archive @file{i386-mingw32msvc.tar.gz} in the MinGW tool +directory. Edit the @file{sdl-config} script so that it gives the +correct SDL directory when invoked. + +@item Extract the current version of QEMU. + +@item Start the MSYS shell (file @file{msys.bat}). + +@item Change to the QEMU directory. Launch @file{./configure} and +@file{make}. If you have problems using SDL, verify that +@file{sdl-config} can be launched from the MSYS command line. + +@item You can install QEMU in @file{Program Files/Qemu} by typing +@file{make install}. Don't forget to copy @file{SDL.dll} in +@file{Program Files/Qemu}. + +@end itemize + +@section Cross compilation for Windows with Linux + +@itemize +@item +Install the MinGW cross compilation tools available at +@url{http://www.mingw.org/}. + +@item +Install the Win32 version of SDL (@url{http://www.libsdl.org}) by +unpacking @file{i386-mingw32msvc.tar.gz}. Set up the PATH environment +variable so that @file{i386-mingw32msvc-sdl-config} can be launched by +the QEMU configuration script. + +@item +Configure QEMU for Windows cross compilation: +@example +./configure --enable-mingw32 +@end example +If necessary, you can change the cross-prefix according to the prefix +choosen for the MinGW tools with --cross-prefix. You can also use +--prefix to set the Win32 install path. + +@item You can install QEMU in the installation directory by typing +@file{make install}. Don't forget to copy @file{SDL.dll} in the +installation directory. + +@end itemize + +Note: Currently, Wine does not seem able to launch +QEMU for Win32. + +@section Mac OS X + +The Mac OS X patches are not fully merged in QEMU, so you should look +at the QEMU mailing list archive to have all the necessary +information. + diff --git a/qemu-tech.texi b/qemu-tech.texi index 659cd203ec..0df2a0b966 100644 --- a/qemu-tech.texi +++ b/qemu-tech.texi @@ -258,7 +258,7 @@ segment base. @section Translation cache -A 2MByte cache holds the most recently used translations. For +A 16 MByte cache holds the most recently used translations. For simplicity, it is completely flushed when it is full. A translation unit contains just a single basic block (a block of x86 instructions 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 that the system call parameters are correctly converted between target and host CPUs. -@section @file{hello-i386} - -Very simple statically linked x86 program, just to test QEMU during a -port to a new host CPU. - -@section @file{hello-arm} - -Very simple statically linked ARM program, just to test QEMU during a -port to a new host CPU. - -@section @file{sha1} - -It is a simple benchmark. Care must be taken to interpret the results -because it mostly tests the ability of the virtual CPU to optimize the -@code{rol} x86 instruction and the condition code computations. +@section @file{qruncom.c} +Example of usage of @code{libqemu} to emulate a user mode i386 CPU.