]>
Commit | Line | Data |
---|---|---|
386405f7 | 1 | \input texinfo @c -*- texinfo -*- |
debc7065 FB |
2 | @c %**start of header |
3 | @setfilename qemu-doc.info | |
44cb280d | 4 | @include version.texi |
e080e785 SW |
5 | |
6 | @documentlanguage en | |
7 | @documentencoding UTF-8 | |
8 | ||
44cb280d | 9 | @settitle QEMU version @value{VERSION} User Documentation |
debc7065 FB |
10 | @exampleindent 0 |
11 | @paragraphindent 0 | |
12 | @c %**end of header | |
386405f7 | 13 | |
664785ac TH |
14 | @set qemu_system qemu-system-x86_64 |
15 | @set qemu_system_x86 qemu-system-x86_64 | |
16 | ||
a1a32b05 SW |
17 | @ifinfo |
18 | @direntry | |
19 | * QEMU: (qemu-doc). The QEMU Emulator User Documentation. | |
20 | @end direntry | |
21 | @end ifinfo | |
22 | ||
0806e3f6 | 23 | @iftex |
386405f7 FB |
24 | @titlepage |
25 | @sp 7 | |
44cb280d | 26 | @center @titlefont{QEMU version @value{VERSION}} |
debc7065 FB |
27 | @sp 1 |
28 | @center @titlefont{User Documentation} | |
386405f7 FB |
29 | @sp 3 |
30 | @end titlepage | |
0806e3f6 | 31 | @end iftex |
386405f7 | 32 | |
debc7065 FB |
33 | @ifnottex |
34 | @node Top | |
35 | @top | |
36 | ||
37 | @menu | |
38 | * Introduction:: | |
debc7065 FB |
39 | * QEMU PC System emulator:: |
40 | * QEMU System emulator for non PC targets:: | |
483c6ad4 | 41 | * System requirements:: |
e8412576 | 42 | * Security:: |
78e87797 | 43 | * Implementation notes:: |
eb22aeca | 44 | * Deprecated features:: |
369e8f5b | 45 | * Recently removed features:: |
45b47130 | 46 | * Supported build platforms:: |
7544a042 | 47 | * License:: |
debc7065 FB |
48 | * Index:: |
49 | @end menu | |
50 | @end ifnottex | |
51 | ||
52 | @contents | |
53 | ||
54 | @node Introduction | |
386405f7 FB |
55 | @chapter Introduction |
56 | ||
debc7065 FB |
57 | @menu |
58 | * intro_features:: Features | |
59 | @end menu | |
60 | ||
61 | @node intro_features | |
322d0c66 | 62 | @section Features |
386405f7 | 63 | |
1f673135 FB |
64 | QEMU is a FAST! processor emulator using dynamic translation to |
65 | achieve good emulation speed. | |
1eb20527 | 66 | |
1f3e7e41 | 67 | @cindex operating modes |
1eb20527 | 68 | QEMU has two operating modes: |
0806e3f6 | 69 | |
d7e5edca | 70 | @itemize |
7544a042 | 71 | @cindex system emulation |
1f3e7e41 | 72 | @item Full system emulation. In this mode, QEMU emulates a full system (for |
3f9f3aa1 FB |
73 | example a PC), including one or several processors and various |
74 | peripherals. It can be used to launch different Operating Systems | |
75 | without rebooting the PC or to debug system code. | |
1eb20527 | 76 | |
7544a042 | 77 | @cindex user mode emulation |
1f3e7e41 | 78 | @item User mode emulation. In this mode, QEMU can launch |
83195237 | 79 | processes compiled for one CPU on another CPU. It can be used to |
70b7fba9 | 80 | launch the Wine Windows API emulator (@url{https://www.winehq.org}) or |
1f673135 | 81 | to ease cross-compilation and cross-debugging. |
1eb20527 FB |
82 | |
83 | @end itemize | |
84 | ||
1f3e7e41 PB |
85 | QEMU has the following features: |
86 | ||
87 | @itemize | |
88 | @item QEMU can run without a host kernel driver and yet gives acceptable | |
89 | performance. It uses dynamic translation to native code for reasonable speed, | |
90 | with support for self-modifying code and precise exceptions. | |
91 | ||
92 | @item It is portable to several operating systems (GNU/Linux, *BSD, Mac OS X, | |
93 | Windows) and architectures. | |
94 | ||
95 | @item It performs accurate software emulation of the FPU. | |
96 | @end itemize | |
322d0c66 | 97 | |
1f3e7e41 | 98 | QEMU user mode emulation has the following features: |
52c00a5f | 99 | @itemize |
1f3e7e41 PB |
100 | @item Generic Linux system call converter, including most ioctls. |
101 | ||
102 | @item clone() emulation using native CPU clone() to use Linux scheduler for threads. | |
103 | ||
104 | @item Accurate signal handling by remapping host signals to target signals. | |
105 | @end itemize | |
106 | ||
107 | QEMU full system emulation has the following features: | |
108 | @itemize | |
109 | @item | |
110 | QEMU uses a full software MMU for maximum portability. | |
111 | ||
112 | @item | |
326c4c3c | 113 | QEMU can optionally use an in-kernel accelerator, like kvm. The accelerators |
1f3e7e41 PB |
114 | execute most of the guest code natively, while |
115 | continuing to emulate the rest of the machine. | |
116 | ||
117 | @item | |
118 | Various hardware devices can be emulated and in some cases, host | |
119 | devices (e.g. serial and parallel ports, USB, drives) can be used | |
120 | transparently by the guest Operating System. Host device passthrough | |
121 | can be used for talking to external physical peripherals (e.g. a | |
122 | webcam, modem or tape drive). | |
123 | ||
124 | @item | |
125 | Symmetric multiprocessing (SMP) support. Currently, an in-kernel | |
126 | accelerator is required to use more than one host CPU for emulation. | |
127 | ||
52c00a5f | 128 | @end itemize |
386405f7 | 129 | |
0806e3f6 | 130 | |
debc7065 | 131 | @node QEMU PC System emulator |
3f9f3aa1 | 132 | @chapter QEMU PC System emulator |
7544a042 | 133 | @cindex system emulation (PC) |
1eb20527 | 134 | |
debc7065 FB |
135 | @menu |
136 | * pcsys_introduction:: Introduction | |
137 | * pcsys_quickstart:: Quick Start | |
138 | * sec_invocation:: Invocation | |
a40db1b3 PM |
139 | * pcsys_keys:: Keys in the graphical frontends |
140 | * mux_keys:: Keys in the character backend multiplexer | |
debc7065 | 141 | * pcsys_monitor:: QEMU Monitor |
5600d275 | 142 | * cpu_models_x86:: Supported CPU model configurations on x86 hosts |
debc7065 FB |
143 | * disk_images:: Disk Images |
144 | * pcsys_network:: Network emulation | |
debc7065 | 145 | * pcsys_usb:: USB emulation |
fdeccf93 PB |
146 | * pcsys_ivshmem:: Inter-VM Shared Memory device |
147 | * direct_linux_boot:: Direct Linux Boot | |
f858dcae | 148 | * vnc_security:: VNC security |
5d19a6ea | 149 | * network_tls:: TLS setup for network services |
debc7065 | 150 | * gdb_usage:: GDB usage |
debc7065 FB |
151 | @end menu |
152 | ||
153 | @node pcsys_introduction | |
0806e3f6 FB |
154 | @section Introduction |
155 | ||
156 | @c man begin DESCRIPTION | |
157 | ||
3f9f3aa1 FB |
158 | The QEMU PC System emulator simulates the |
159 | following peripherals: | |
0806e3f6 FB |
160 | |
161 | @itemize @minus | |
5fafdf24 | 162 | @item |
15a34c63 | 163 | i440FX host PCI bridge and PIIX3 PCI to ISA bridge |
0806e3f6 | 164 | @item |
15a34c63 FB |
165 | Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA |
166 | extensions (hardware level, including all non standard modes). | |
0806e3f6 FB |
167 | @item |
168 | PS/2 mouse and keyboard | |
5fafdf24 | 169 | @item |
15a34c63 | 170 | 2 PCI IDE interfaces with hard disk and CD-ROM support |
1f673135 FB |
171 | @item |
172 | Floppy disk | |
5fafdf24 | 173 | @item |
3a2eeac0 | 174 | PCI and ISA network adapters |
0806e3f6 | 175 | @item |
05d5818c FB |
176 | Serial ports |
177 | @item | |
23076bb3 CM |
178 | IPMI BMC, either and internal or external one |
179 | @item | |
c0fe3827 FB |
180 | Creative SoundBlaster 16 sound card |
181 | @item | |
182 | ENSONIQ AudioPCI ES1370 sound card | |
183 | @item | |
e5c9a13e AZ |
184 | Intel 82801AA AC97 Audio compatible sound card |
185 | @item | |
7d72e762 GH |
186 | Intel HD Audio Controller and HDA codec |
187 | @item | |
2d983446 | 188 | Adlib (OPL2) - Yamaha YM3812 compatible chip |
b389dbfb | 189 | @item |
26463dbc AZ |
190 | Gravis Ultrasound GF1 sound card |
191 | @item | |
cc53d26d | 192 | CS4231A compatible sound card |
193 | @item | |
a92ff8c1 | 194 | PCI UHCI, OHCI, EHCI or XHCI USB controller and a virtual USB-1.1 hub. |
0806e3f6 FB |
195 | @end itemize |
196 | ||
3f9f3aa1 FB |
197 | SMP is supported with up to 255 CPUs. |
198 | ||
a8ad4159 | 199 | QEMU uses the PC BIOS from the Seabios project and the Plex86/Bochs LGPL |
15a34c63 FB |
200 | VGA BIOS. |
201 | ||
c0fe3827 FB |
202 | QEMU uses YM3812 emulation by Tatsuyuki Satoh. |
203 | ||
2d983446 | 204 | QEMU uses GUS emulation (GUSEMU32 @url{http://www.deinmeister.de/gusemu/}) |
26463dbc | 205 | by Tibor "TS" Schütz. |
423d65f4 | 206 | |
1a1a0e20 | 207 | Note that, by default, GUS shares IRQ(7) with parallel ports and so |
b65ee4fa | 208 | QEMU must be told to not have parallel ports to have working GUS. |
720036a5 | 209 | |
210 | @example | |
664785ac | 211 | @value{qemu_system_x86} dos.img -soundhw gus -parallel none |
720036a5 | 212 | @end example |
213 | ||
214 | Alternatively: | |
215 | @example | |
664785ac | 216 | @value{qemu_system_x86} dos.img -device gus,irq=5 |
720036a5 | 217 | @end example |
218 | ||
219 | Or some other unclaimed IRQ. | |
220 | ||
cc53d26d | 221 | CS4231A is the chip used in Windows Sound System and GUSMAX products |
222 | ||
0806e3f6 FB |
223 | @c man end |
224 | ||
fdeccf93 PB |
225 | @include docs/system/quickstart.texi |
226 | @include docs/system/invocation.texi | |
227 | @include docs/system/keys.texi | |
228 | @include docs/system/mux-chardev.texi | |
229 | @include docs/system/monitor.texi | |
5600d275 | 230 | @include docs/system/cpu-models-x86.texi |
fdeccf93 PB |
231 | @include docs/system/images.texi |
232 | @include docs/system/net.texi | |
233 | @include docs/system/usb.texi | |
234 | @include docs/system/ivshmem.texi | |
235 | @include docs/system/linuxboot.texi | |
236 | @include docs/system/vnc-security.texi | |
237 | @include docs/system/tls.texi | |
238 | @include docs/system/gdb.texi | |
60897d36 | 239 | |
debc7065 | 240 | @node QEMU System emulator for non PC targets |
3f9f3aa1 FB |
241 | @chapter QEMU System emulator for non PC targets |
242 | ||
243 | QEMU is a generic emulator and it emulates many non PC | |
244 | machines. Most of the options are similar to the PC emulator. The | |
4be456f1 | 245 | differences are mentioned in the following sections. |
3f9f3aa1 | 246 | |
debc7065 | 247 | @menu |
7544a042 | 248 | * PowerPC System emulator:: |
24d4de45 TS |
249 | * Sparc32 System emulator:: |
250 | * Sparc64 System emulator:: | |
251 | * MIPS System emulator:: | |
252 | * ARM System emulator:: | |
253 | * ColdFire System emulator:: | |
7544a042 SW |
254 | * Cris System emulator:: |
255 | * Microblaze System emulator:: | |
256 | * SH4 System emulator:: | |
3aeaea65 | 257 | * Xtensa System emulator:: |
debc7065 FB |
258 | @end menu |
259 | ||
7544a042 SW |
260 | @node PowerPC System emulator |
261 | @section PowerPC System emulator | |
262 | @cindex system emulation (PowerPC) | |
1a084f3d | 263 | |
b2ce76a0 | 264 | Use the executable @file{qemu-system-ppc} to simulate a complete 40P (PREP) |
15a34c63 | 265 | or PowerMac PowerPC system. |
1a084f3d | 266 | |
b671f9ed | 267 | QEMU emulates the following PowerMac peripherals: |
1a084f3d | 268 | |
15a34c63 | 269 | @itemize @minus |
5fafdf24 | 270 | @item |
006f3a48 | 271 | UniNorth or Grackle PCI Bridge |
15a34c63 FB |
272 | @item |
273 | PCI VGA compatible card with VESA Bochs Extensions | |
5fafdf24 | 274 | @item |
15a34c63 | 275 | 2 PMAC IDE interfaces with hard disk and CD-ROM support |
5fafdf24 | 276 | @item |
15a34c63 FB |
277 | NE2000 PCI adapters |
278 | @item | |
279 | Non Volatile RAM | |
280 | @item | |
281 | VIA-CUDA with ADB keyboard and mouse. | |
1a084f3d FB |
282 | @end itemize |
283 | ||
b2ce76a0 | 284 | QEMU emulates the following 40P (PREP) peripherals: |
52c00a5f FB |
285 | |
286 | @itemize @minus | |
5fafdf24 | 287 | @item |
15a34c63 FB |
288 | PCI Bridge |
289 | @item | |
290 | PCI VGA compatible card with VESA Bochs Extensions | |
5fafdf24 | 291 | @item |
52c00a5f FB |
292 | 2 IDE interfaces with hard disk and CD-ROM support |
293 | @item | |
294 | Floppy disk | |
5fafdf24 | 295 | @item |
b2ce76a0 | 296 | PCnet network adapters |
52c00a5f FB |
297 | @item |
298 | Serial port | |
299 | @item | |
300 | PREP Non Volatile RAM | |
15a34c63 FB |
301 | @item |
302 | PC compatible keyboard and mouse. | |
52c00a5f FB |
303 | @end itemize |
304 | ||
70b7fba9 | 305 | Since version 0.9.1, QEMU uses OpenBIOS @url{https://www.openbios.org/} |
b2ce76a0 TH |
306 | for the g3beige and mac99 PowerMac and the 40p machines. OpenBIOS is a free |
307 | (GPL v2) portable firmware implementation. The goal is to implement a 100% | |
006f3a48 | 308 | IEEE 1275-1994 (referred to as Open Firmware) compliant firmware. |
992e5acd | 309 | |
15a34c63 FB |
310 | @c man begin OPTIONS |
311 | ||
312 | The following options are specific to the PowerPC emulation: | |
313 | ||
314 | @table @option | |
315 | ||
4e257e5e | 316 | @item -g @var{W}x@var{H}[x@var{DEPTH}] |
15a34c63 | 317 | |
340fb41b | 318 | Set the initial VGA graphic mode. The default is 800x600x32. |
15a34c63 | 319 | |
4e257e5e | 320 | @item -prom-env @var{string} |
95efd11c BS |
321 | |
322 | Set OpenBIOS variables in NVRAM, for example: | |
323 | ||
324 | @example | |
325 | qemu-system-ppc -prom-env 'auto-boot?=false' \ | |
326 | -prom-env 'boot-device=hd:2,\yaboot' \ | |
327 | -prom-env 'boot-args=conf=hd:2,\yaboot.conf' | |
328 | @end example | |
329 | ||
15a34c63 FB |
330 | @end table |
331 | ||
5fafdf24 | 332 | @c man end |
15a34c63 FB |
333 | |
334 | ||
52c00a5f | 335 | More information is available at |
3f9f3aa1 | 336 | @url{http://perso.magic.fr/l_indien/qemu-ppc/}. |
52c00a5f | 337 | |
24d4de45 TS |
338 | @node Sparc32 System emulator |
339 | @section Sparc32 System emulator | |
7544a042 | 340 | @cindex system emulation (Sparc32) |
e80cfcfc | 341 | |
34a3d239 BS |
342 | Use the executable @file{qemu-system-sparc} to simulate the following |
343 | Sun4m architecture machines: | |
344 | @itemize @minus | |
345 | @item | |
346 | SPARCstation 4 | |
347 | @item | |
348 | SPARCstation 5 | |
349 | @item | |
350 | SPARCstation 10 | |
351 | @item | |
352 | SPARCstation 20 | |
353 | @item | |
354 | SPARCserver 600MP | |
355 | @item | |
356 | SPARCstation LX | |
357 | @item | |
358 | SPARCstation Voyager | |
359 | @item | |
360 | SPARCclassic | |
361 | @item | |
362 | SPARCbook | |
363 | @end itemize | |
364 | ||
365 | The emulation is somewhat complete. SMP up to 16 CPUs is supported, | |
366 | but Linux limits the number of usable CPUs to 4. | |
e80cfcfc | 367 | |
6a4e1771 | 368 | QEMU emulates the following sun4m peripherals: |
e80cfcfc FB |
369 | |
370 | @itemize @minus | |
3475187d | 371 | @item |
6a4e1771 | 372 | IOMMU |
e80cfcfc | 373 | @item |
33632788 | 374 | TCX or cgthree Frame buffer |
5fafdf24 | 375 | @item |
e80cfcfc FB |
376 | Lance (Am7990) Ethernet |
377 | @item | |
34a3d239 | 378 | Non Volatile RAM M48T02/M48T08 |
e80cfcfc | 379 | @item |
3475187d FB |
380 | Slave I/O: timers, interrupt controllers, Zilog serial ports, keyboard |
381 | and power/reset logic | |
382 | @item | |
383 | ESP SCSI controller with hard disk and CD-ROM support | |
384 | @item | |
6a3b9cc9 | 385 | Floppy drive (not on SS-600MP) |
a2502b58 BS |
386 | @item |
387 | CS4231 sound device (only on SS-5, not working yet) | |
e80cfcfc FB |
388 | @end itemize |
389 | ||
6a3b9cc9 BS |
390 | The number of peripherals is fixed in the architecture. Maximum |
391 | memory size depends on the machine type, for SS-5 it is 256MB and for | |
7d85892b | 392 | others 2047MB. |
3475187d | 393 | |
30a604f3 | 394 | Since version 0.8.2, QEMU uses OpenBIOS |
70b7fba9 | 395 | @url{https://www.openbios.org/}. OpenBIOS is a free (GPL v2) portable |
0986ac3b FB |
396 | firmware implementation. The goal is to implement a 100% IEEE |
397 | 1275-1994 (referred to as Open Firmware) compliant firmware. | |
3475187d FB |
398 | |
399 | A sample Linux 2.6 series kernel and ram disk image are available on | |
34a3d239 | 400 | the QEMU web site. There are still issues with NetBSD and OpenBSD, but |
9bb9f217 | 401 | most kernel versions work. Please note that currently older Solaris kernels |
34a3d239 BS |
402 | don't work probably due to interface issues between OpenBIOS and |
403 | Solaris. | |
3475187d FB |
404 | |
405 | @c man begin OPTIONS | |
406 | ||
a2502b58 | 407 | The following options are specific to the Sparc32 emulation: |
3475187d FB |
408 | |
409 | @table @option | |
410 | ||
4e257e5e | 411 | @item -g @var{W}x@var{H}x[x@var{DEPTH}] |
3475187d | 412 | |
33632788 MCA |
413 | Set the initial graphics mode. For TCX, the default is 1024x768x8 with the |
414 | option of 1024x768x24. For cgthree, the default is 1024x768x8 with the option | |
415 | of 1152x900x8 for people who wish to use OBP. | |
3475187d | 416 | |
4e257e5e | 417 | @item -prom-env @var{string} |
66508601 BS |
418 | |
419 | Set OpenBIOS variables in NVRAM, for example: | |
420 | ||
421 | @example | |
422 | qemu-system-sparc -prom-env 'auto-boot?=false' \ | |
423 | -prom-env 'boot-device=sd(0,2,0):d' -prom-env 'boot-args=linux single' | |
424 | @end example | |
425 | ||
6a4e1771 | 426 | @item -M [SS-4|SS-5|SS-10|SS-20|SS-600MP|LX|Voyager|SPARCClassic] [|SPARCbook] |
a2502b58 BS |
427 | |
428 | Set the emulated machine type. Default is SS-5. | |
429 | ||
3475187d FB |
430 | @end table |
431 | ||
5fafdf24 | 432 | @c man end |
3475187d | 433 | |
24d4de45 TS |
434 | @node Sparc64 System emulator |
435 | @section Sparc64 System emulator | |
7544a042 | 436 | @cindex system emulation (Sparc64) |
e80cfcfc | 437 | |
34a3d239 BS |
438 | Use the executable @file{qemu-system-sparc64} to simulate a Sun4u |
439 | (UltraSPARC PC-like machine), Sun4v (T1 PC-like machine), or generic | |
9bb9f217 MCA |
440 | Niagara (T1) machine. The Sun4u emulator is mostly complete, being |
441 | able to run Linux, NetBSD and OpenBSD in headless (-nographic) mode. The | |
a2664ca0 AT |
442 | Sun4v emulator is still a work in progress. |
443 | ||
444 | The Niagara T1 emulator makes use of firmware and OS binaries supplied in the S10image/ directory | |
445 | of the OpenSPARC T1 project @url{http://download.oracle.com/technetwork/systems/opensparc/OpenSPARCT1_Arch.1.5.tar.bz2} | |
446 | and is able to boot the disk.s10hw2 Solaris image. | |
447 | @example | |
448 | qemu-system-sparc64 -M niagara -L /path-to/S10image/ \ | |
449 | -nographic -m 256 \ | |
450 | -drive if=pflash,readonly=on,file=/S10image/disk.s10hw2 | |
451 | @end example | |
452 | ||
b756921a | 453 | |
c7ba218d | 454 | QEMU emulates the following peripherals: |
83469015 FB |
455 | |
456 | @itemize @minus | |
457 | @item | |
5fafdf24 | 458 | UltraSparc IIi APB PCI Bridge |
83469015 FB |
459 | @item |
460 | PCI VGA compatible card with VESA Bochs Extensions | |
461 | @item | |
34a3d239 BS |
462 | PS/2 mouse and keyboard |
463 | @item | |
83469015 FB |
464 | Non Volatile RAM M48T59 |
465 | @item | |
466 | PC-compatible serial ports | |
c7ba218d BS |
467 | @item |
468 | 2 PCI IDE interfaces with hard disk and CD-ROM support | |
34a3d239 BS |
469 | @item |
470 | Floppy disk | |
83469015 FB |
471 | @end itemize |
472 | ||
c7ba218d BS |
473 | @c man begin OPTIONS |
474 | ||
475 | The following options are specific to the Sparc64 emulation: | |
476 | ||
477 | @table @option | |
478 | ||
4e257e5e | 479 | @item -prom-env @var{string} |
34a3d239 BS |
480 | |
481 | Set OpenBIOS variables in NVRAM, for example: | |
482 | ||
483 | @example | |
484 | qemu-system-sparc64 -prom-env 'auto-boot?=false' | |
485 | @end example | |
486 | ||
a2664ca0 | 487 | @item -M [sun4u|sun4v|niagara] |
c7ba218d BS |
488 | |
489 | Set the emulated machine type. The default is sun4u. | |
490 | ||
491 | @end table | |
492 | ||
493 | @c man end | |
494 | ||
24d4de45 TS |
495 | @node MIPS System emulator |
496 | @section MIPS System emulator | |
7544a042 | 497 | @cindex system emulation (MIPS) |
9d0a8e6f | 498 | |
f7d257cb | 499 | @menu |
5600d275 | 500 | * recommendations_cpu_models_MIPS:: Supported CPU model configurations on MIPS hosts |
f7d257cb SM |
501 | * nanoMIPS System emulator :: |
502 | @end menu | |
503 | ||
d9aedc32 TS |
504 | Four executables cover simulation of 32 and 64-bit MIPS systems in |
505 | both endian options, @file{qemu-system-mips}, @file{qemu-system-mipsel} | |
506 | @file{qemu-system-mips64} and @file{qemu-system-mips64el}. | |
88cb0a02 | 507 | Five different machine types are emulated: |
24d4de45 TS |
508 | |
509 | @itemize @minus | |
510 | @item | |
511 | A generic ISA PC-like machine "mips" | |
512 | @item | |
513 | The MIPS Malta prototype board "malta" | |
514 | @item | |
d9aedc32 | 515 | An ACER Pica "pica61". This machine needs the 64-bit emulator. |
6bf5b4e8 | 516 | @item |
f0fc6f8f | 517 | MIPS emulator pseudo board "mipssim" |
88cb0a02 AJ |
518 | @item |
519 | A MIPS Magnum R4000 machine "magnum". This machine needs the 64-bit emulator. | |
24d4de45 TS |
520 | @end itemize |
521 | ||
522 | The generic emulation is supported by Debian 'Etch' and is able to | |
523 | install Debian into a virtual disk image. The following devices are | |
524 | emulated: | |
3f9f3aa1 FB |
525 | |
526 | @itemize @minus | |
5fafdf24 | 527 | @item |
6bf5b4e8 | 528 | A range of MIPS CPUs, default is the 24Kf |
3f9f3aa1 FB |
529 | @item |
530 | PC style serial port | |
531 | @item | |
24d4de45 TS |
532 | PC style IDE disk |
533 | @item | |
3f9f3aa1 FB |
534 | NE2000 network card |
535 | @end itemize | |
536 | ||
24d4de45 TS |
537 | The Malta emulation supports the following devices: |
538 | ||
539 | @itemize @minus | |
540 | @item | |
0b64d008 | 541 | Core board with MIPS 24Kf CPU and Galileo system controller |
24d4de45 TS |
542 | @item |
543 | PIIX4 PCI/USB/SMbus controller | |
544 | @item | |
545 | The Multi-I/O chip's serial device | |
546 | @item | |
3a2eeac0 | 547 | PCI network cards (PCnet32 and others) |
24d4de45 TS |
548 | @item |
549 | Malta FPGA serial device | |
550 | @item | |
1f605a76 | 551 | Cirrus (default) or any other PCI VGA graphics card |
24d4de45 TS |
552 | @end itemize |
553 | ||
ba182a18 AM |
554 | The Boston board emulation supports the following devices: |
555 | ||
556 | @itemize @minus | |
557 | @item | |
558 | Xilinx FPGA, which includes a PCIe root port and an UART | |
559 | @item | |
560 | Intel EG20T PCH connects the I/O peripherals, but only the SATA bus is emulated | |
561 | @end itemize | |
562 | ||
24d4de45 TS |
563 | The ACER Pica emulation supports: |
564 | ||
565 | @itemize @minus | |
566 | @item | |
567 | MIPS R4000 CPU | |
568 | @item | |
569 | PC-style IRQ and DMA controllers | |
570 | @item | |
571 | PC Keyboard | |
572 | @item | |
573 | IDE controller | |
574 | @end itemize | |
3f9f3aa1 | 575 | |
88cb0a02 AJ |
576 | The MIPS Magnum R4000 emulation supports: |
577 | ||
578 | @itemize @minus | |
579 | @item | |
580 | MIPS R4000 CPU | |
581 | @item | |
582 | PC-style IRQ controller | |
583 | @item | |
584 | PC Keyboard | |
585 | @item | |
586 | SCSI controller | |
587 | @item | |
588 | G364 framebuffer | |
589 | @end itemize | |
590 | ||
3a1b94d9 AM |
591 | The Fulong 2E emulation supports: |
592 | ||
593 | @itemize @minus | |
594 | @item | |
595 | Loongson 2E CPU | |
596 | @item | |
597 | Bonito64 system controller as North Bridge | |
598 | @item | |
599 | VT82C686 chipset as South Bridge | |
600 | @item | |
601 | RTL8139D as a network card chipset | |
602 | @end itemize | |
603 | ||
53d21e7b AM |
604 | The mipssim pseudo board emulation provides an environment similar |
605 | to what the proprietary MIPS emulator uses for running Linux. | |
606 | It supports: | |
607 | ||
608 | @itemize @minus | |
609 | @item | |
610 | A range of MIPS CPUs, default is the 24Kf | |
611 | @item | |
612 | PC style serial port | |
613 | @item | |
614 | MIPSnet network emulation | |
615 | @end itemize | |
616 | ||
5600d275 PB |
617 | @lowersections |
618 | @include docs/system/cpu-models-mips.texi | |
619 | @raisesections | |
620 | ||
f7d257cb SM |
621 | @node nanoMIPS System emulator |
622 | @subsection nanoMIPS System emulator | |
623 | @cindex system emulation (nanoMIPS) | |
624 | ||
625 | Executable @file{qemu-system-mipsel} also covers simulation of | |
626 | 32-bit nanoMIPS system in little endian mode: | |
627 | ||
628 | @itemize @minus | |
629 | @item | |
630 | nanoMIPS I7200 CPU | |
631 | @end itemize | |
632 | ||
633 | Example of @file{qemu-system-mipsel} usage for nanoMIPS is shown below: | |
634 | ||
635 | Download @code{<disk_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/buildroot/index.html}. | |
636 | ||
637 | Download @code{<kernel_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/index.html}. | |
638 | ||
639 | Start system emulation of Malta board with nanoMIPS I7200 CPU: | |
640 | @example | |
641 | qemu-system-mipsel -cpu I7200 -kernel @code{<kernel_image_file>} \ | |
642 | -M malta -serial stdio -m @code{<memory_size>} -hda @code{<disk_image_file>} \ | |
643 | -append "mem=256m@@0x0 rw console=ttyS0 vga=cirrus vesa=0x111 root=/dev/sda" | |
644 | @end example | |
645 | ||
88cb0a02 | 646 | |
24d4de45 TS |
647 | @node ARM System emulator |
648 | @section ARM System emulator | |
7544a042 | 649 | @cindex system emulation (ARM) |
3f9f3aa1 FB |
650 | |
651 | Use the executable @file{qemu-system-arm} to simulate a ARM | |
652 | machine. The ARM Integrator/CP board is emulated with the following | |
653 | devices: | |
654 | ||
655 | @itemize @minus | |
656 | @item | |
9ee6e8bb | 657 | ARM926E, ARM1026E, ARM946E, ARM1136 or Cortex-A8 CPU |
3f9f3aa1 FB |
658 | @item |
659 | Two PL011 UARTs | |
5fafdf24 | 660 | @item |
3f9f3aa1 | 661 | SMC 91c111 Ethernet adapter |
00a9bf19 PB |
662 | @item |
663 | PL110 LCD controller | |
664 | @item | |
665 | PL050 KMI with PS/2 keyboard and mouse. | |
a1bb27b1 PB |
666 | @item |
667 | PL181 MultiMedia Card Interface with SD card. | |
00a9bf19 PB |
668 | @end itemize |
669 | ||
670 | The ARM Versatile baseboard is emulated with the following devices: | |
671 | ||
672 | @itemize @minus | |
673 | @item | |
9ee6e8bb | 674 | ARM926E, ARM1136 or Cortex-A8 CPU |
00a9bf19 PB |
675 | @item |
676 | PL190 Vectored Interrupt Controller | |
677 | @item | |
678 | Four PL011 UARTs | |
5fafdf24 | 679 | @item |
00a9bf19 PB |
680 | SMC 91c111 Ethernet adapter |
681 | @item | |
682 | PL110 LCD controller | |
683 | @item | |
684 | PL050 KMI with PS/2 keyboard and mouse. | |
685 | @item | |
686 | PCI host bridge. Note the emulated PCI bridge only provides access to | |
687 | PCI memory space. It does not provide access to PCI IO space. | |
4be456f1 TS |
688 | This means some devices (eg. ne2k_pci NIC) are not usable, and others |
689 | (eg. rtl8139 NIC) are only usable when the guest drivers use the memory | |
00a9bf19 | 690 | mapped control registers. |
e6de1bad PB |
691 | @item |
692 | PCI OHCI USB controller. | |
693 | @item | |
694 | LSI53C895A PCI SCSI Host Bus Adapter with hard disk and CD-ROM devices. | |
a1bb27b1 PB |
695 | @item |
696 | PL181 MultiMedia Card Interface with SD card. | |
3f9f3aa1 FB |
697 | @end itemize |
698 | ||
21a88941 PB |
699 | Several variants of the ARM RealView baseboard are emulated, |
700 | including the EB, PB-A8 and PBX-A9. Due to interactions with the | |
701 | bootloader, only certain Linux kernel configurations work out | |
702 | of the box on these boards. | |
703 | ||
704 | Kernels for the PB-A8 board should have CONFIG_REALVIEW_HIGH_PHYS_OFFSET | |
705 | enabled in the kernel, and expect 512M RAM. Kernels for The PBX-A9 board | |
706 | should have CONFIG_SPARSEMEM enabled, CONFIG_REALVIEW_HIGH_PHYS_OFFSET | |
707 | disabled and expect 1024M RAM. | |
708 | ||
40c5c6cd | 709 | The following devices are emulated: |
d7739d75 PB |
710 | |
711 | @itemize @minus | |
712 | @item | |
f7c70325 | 713 | ARM926E, ARM1136, ARM11MPCore, Cortex-A8 or Cortex-A9 MPCore CPU |
d7739d75 PB |
714 | @item |
715 | ARM AMBA Generic/Distributed Interrupt Controller | |
716 | @item | |
717 | Four PL011 UARTs | |
5fafdf24 | 718 | @item |
0ef849d7 | 719 | SMC 91c111 or SMSC LAN9118 Ethernet adapter |
d7739d75 PB |
720 | @item |
721 | PL110 LCD controller | |
722 | @item | |
723 | PL050 KMI with PS/2 keyboard and mouse | |
724 | @item | |
725 | PCI host bridge | |
726 | @item | |
727 | PCI OHCI USB controller | |
728 | @item | |
729 | LSI53C895A PCI SCSI Host Bus Adapter with hard disk and CD-ROM devices | |
a1bb27b1 PB |
730 | @item |
731 | PL181 MultiMedia Card Interface with SD card. | |
d7739d75 PB |
732 | @end itemize |
733 | ||
b00052e4 AZ |
734 | The XScale-based clamshell PDA models ("Spitz", "Akita", "Borzoi" |
735 | and "Terrier") emulation includes the following peripherals: | |
736 | ||
737 | @itemize @minus | |
738 | @item | |
739 | Intel PXA270 System-on-chip (ARM V5TE core) | |
740 | @item | |
741 | NAND Flash memory | |
742 | @item | |
743 | IBM/Hitachi DSCM microdrive in a PXA PCMCIA slot - not in "Akita" | |
744 | @item | |
745 | On-chip OHCI USB controller | |
746 | @item | |
747 | On-chip LCD controller | |
748 | @item | |
749 | On-chip Real Time Clock | |
750 | @item | |
751 | TI ADS7846 touchscreen controller on SSP bus | |
752 | @item | |
753 | Maxim MAX1111 analog-digital converter on I@math{^2}C bus | |
754 | @item | |
755 | GPIO-connected keyboard controller and LEDs | |
756 | @item | |
549444e1 | 757 | Secure Digital card connected to PXA MMC/SD host |
b00052e4 AZ |
758 | @item |
759 | Three on-chip UARTs | |
760 | @item | |
761 | WM8750 audio CODEC on I@math{^2}C and I@math{^2}S busses | |
762 | @end itemize | |
763 | ||
02645926 AZ |
764 | The Palm Tungsten|E PDA (codename "Cheetah") emulation includes the |
765 | following elements: | |
766 | ||
767 | @itemize @minus | |
768 | @item | |
769 | Texas Instruments OMAP310 System-on-chip (ARM 925T core) | |
770 | @item | |
771 | ROM and RAM memories (ROM firmware image can be loaded with -option-rom) | |
772 | @item | |
773 | On-chip LCD controller | |
774 | @item | |
775 | On-chip Real Time Clock | |
776 | @item | |
777 | TI TSC2102i touchscreen controller / analog-digital converter / Audio | |
778 | CODEC, connected through MicroWire and I@math{^2}S busses | |
779 | @item | |
780 | GPIO-connected matrix keypad | |
781 | @item | |
782 | Secure Digital card connected to OMAP MMC/SD host | |
783 | @item | |
784 | Three on-chip UARTs | |
785 | @end itemize | |
786 | ||
c30bb264 AZ |
787 | Nokia N800 and N810 internet tablets (known also as RX-34 and RX-44 / 48) |
788 | emulation supports the following elements: | |
789 | ||
790 | @itemize @minus | |
791 | @item | |
792 | Texas Instruments OMAP2420 System-on-chip (ARM 1136 core) | |
793 | @item | |
794 | RAM and non-volatile OneNAND Flash memories | |
795 | @item | |
796 | Display connected to EPSON remote framebuffer chip and OMAP on-chip | |
797 | display controller and a LS041y3 MIPI DBI-C controller | |
798 | @item | |
799 | TI TSC2301 (in N800) and TI TSC2005 (in N810) touchscreen controllers | |
800 | driven through SPI bus | |
801 | @item | |
802 | National Semiconductor LM8323-controlled qwerty keyboard driven | |
803 | through I@math{^2}C bus | |
804 | @item | |
805 | Secure Digital card connected to OMAP MMC/SD host | |
806 | @item | |
807 | Three OMAP on-chip UARTs and on-chip STI debugging console | |
808 | @item | |
809 | Mentor Graphics "Inventra" dual-role USB controller embedded in a TI | |
810 | TUSB6010 chip - only USB host mode is supported | |
811 | @item | |
812 | TI TMP105 temperature sensor driven through I@math{^2}C bus | |
813 | @item | |
814 | TI TWL92230C power management companion with an RTC on I@math{^2}C bus | |
815 | @item | |
816 | Nokia RETU and TAHVO multi-purpose chips with an RTC, connected | |
817 | through CBUS | |
818 | @end itemize | |
819 | ||
9ee6e8bb PB |
820 | The Luminary Micro Stellaris LM3S811EVB emulation includes the following |
821 | devices: | |
822 | ||
823 | @itemize @minus | |
824 | @item | |
825 | Cortex-M3 CPU core. | |
826 | @item | |
827 | 64k Flash and 8k SRAM. | |
828 | @item | |
829 | Timers, UARTs, ADC and I@math{^2}C interface. | |
830 | @item | |
831 | OSRAM Pictiva 96x16 OLED with SSD0303 controller on I@math{^2}C bus. | |
832 | @end itemize | |
833 | ||
834 | The Luminary Micro Stellaris LM3S6965EVB emulation includes the following | |
835 | devices: | |
836 | ||
837 | @itemize @minus | |
838 | @item | |
839 | Cortex-M3 CPU core. | |
840 | @item | |
841 | 256k Flash and 64k SRAM. | |
842 | @item | |
843 | Timers, UARTs, ADC, I@math{^2}C and SSI interfaces. | |
844 | @item | |
845 | OSRAM Pictiva 128x64 OLED with SSD0323 controller connected via SSI. | |
846 | @end itemize | |
847 | ||
57cd6e97 AZ |
848 | The Freecom MusicPal internet radio emulation includes the following |
849 | elements: | |
850 | ||
851 | @itemize @minus | |
852 | @item | |
853 | Marvell MV88W8618 ARM core. | |
854 | @item | |
855 | 32 MB RAM, 256 KB SRAM, 8 MB flash. | |
856 | @item | |
857 | Up to 2 16550 UARTs | |
858 | @item | |
859 | MV88W8xx8 Ethernet controller | |
860 | @item | |
861 | MV88W8618 audio controller, WM8750 CODEC and mixer | |
862 | @item | |
e080e785 | 863 | 128×64 display with brightness control |
57cd6e97 AZ |
864 | @item |
865 | 2 buttons, 2 navigation wheels with button function | |
866 | @end itemize | |
867 | ||
997641a8 | 868 | The Siemens SX1 models v1 and v2 (default) basic emulation. |
40c5c6cd | 869 | The emulation includes the following elements: |
997641a8 AZ |
870 | |
871 | @itemize @minus | |
872 | @item | |
873 | Texas Instruments OMAP310 System-on-chip (ARM 925T core) | |
874 | @item | |
875 | ROM and RAM memories (ROM firmware image can be loaded with -pflash) | |
876 | V1 | |
877 | 1 Flash of 16MB and 1 Flash of 8MB | |
878 | V2 | |
879 | 1 Flash of 32MB | |
880 | @item | |
881 | On-chip LCD controller | |
882 | @item | |
883 | On-chip Real Time Clock | |
884 | @item | |
885 | Secure Digital card connected to OMAP MMC/SD host | |
886 | @item | |
887 | Three on-chip UARTs | |
888 | @end itemize | |
889 | ||
3f9f3aa1 FB |
890 | A Linux 2.6 test image is available on the QEMU web site. More |
891 | information is available in the QEMU mailing-list archive. | |
9d0a8e6f | 892 | |
d2c639d6 BS |
893 | @c man begin OPTIONS |
894 | ||
895 | The following options are specific to the ARM emulation: | |
896 | ||
897 | @table @option | |
898 | ||
899 | @item -semihosting | |
900 | Enable semihosting syscall emulation. | |
901 | ||
902 | On ARM this implements the "Angel" interface. | |
903 | ||
904 | Note that this allows guest direct access to the host filesystem, | |
905 | so should only be used with trusted guest OS. | |
906 | ||
907 | @end table | |
908 | ||
abc67eb6 TH |
909 | @c man end |
910 | ||
24d4de45 TS |
911 | @node ColdFire System emulator |
912 | @section ColdFire System emulator | |
7544a042 SW |
913 | @cindex system emulation (ColdFire) |
914 | @cindex system emulation (M68K) | |
209a4e69 PB |
915 | |
916 | Use the executable @file{qemu-system-m68k} to simulate a ColdFire machine. | |
917 | The emulator is able to boot a uClinux kernel. | |
707e011b PB |
918 | |
919 | The M5208EVB emulation includes the following devices: | |
920 | ||
921 | @itemize @minus | |
5fafdf24 | 922 | @item |
707e011b PB |
923 | MCF5208 ColdFire V2 Microprocessor (ISA A+ with EMAC). |
924 | @item | |
925 | Three Two on-chip UARTs. | |
926 | @item | |
927 | Fast Ethernet Controller (FEC) | |
928 | @end itemize | |
929 | ||
930 | The AN5206 emulation includes the following devices: | |
209a4e69 PB |
931 | |
932 | @itemize @minus | |
5fafdf24 | 933 | @item |
209a4e69 PB |
934 | MCF5206 ColdFire V2 Microprocessor. |
935 | @item | |
936 | Two on-chip UARTs. | |
937 | @end itemize | |
938 | ||
d2c639d6 BS |
939 | @c man begin OPTIONS |
940 | ||
7544a042 | 941 | The following options are specific to the ColdFire emulation: |
d2c639d6 BS |
942 | |
943 | @table @option | |
944 | ||
945 | @item -semihosting | |
946 | Enable semihosting syscall emulation. | |
947 | ||
948 | On M68K this implements the "ColdFire GDB" interface used by libgloss. | |
949 | ||
950 | Note that this allows guest direct access to the host filesystem, | |
951 | so should only be used with trusted guest OS. | |
952 | ||
953 | @end table | |
954 | ||
abc67eb6 TH |
955 | @c man end |
956 | ||
7544a042 SW |
957 | @node Cris System emulator |
958 | @section Cris System emulator | |
959 | @cindex system emulation (Cris) | |
960 | ||
961 | TODO | |
962 | ||
963 | @node Microblaze System emulator | |
964 | @section Microblaze System emulator | |
965 | @cindex system emulation (Microblaze) | |
966 | ||
967 | TODO | |
968 | ||
969 | @node SH4 System emulator | |
970 | @section SH4 System emulator | |
971 | @cindex system emulation (SH4) | |
972 | ||
973 | TODO | |
974 | ||
3aeaea65 MF |
975 | @node Xtensa System emulator |
976 | @section Xtensa System emulator | |
977 | @cindex system emulation (Xtensa) | |
978 | ||
979 | Two executables cover simulation of both Xtensa endian options, | |
980 | @file{qemu-system-xtensa} and @file{qemu-system-xtensaeb}. | |
981 | Two different machine types are emulated: | |
982 | ||
983 | @itemize @minus | |
984 | @item | |
985 | Xtensa emulator pseudo board "sim" | |
986 | @item | |
987 | Avnet LX60/LX110/LX200 board | |
988 | @end itemize | |
989 | ||
b5e4946f | 990 | The sim pseudo board emulation provides an environment similar |
3aeaea65 MF |
991 | to one provided by the proprietary Tensilica ISS. |
992 | It supports: | |
993 | ||
994 | @itemize @minus | |
995 | @item | |
996 | A range of Xtensa CPUs, default is the DC232B | |
997 | @item | |
998 | Console and filesystem access via semihosting calls | |
999 | @end itemize | |
1000 | ||
1001 | The Avnet LX60/LX110/LX200 emulation supports: | |
1002 | ||
1003 | @itemize @minus | |
1004 | @item | |
1005 | A range of Xtensa CPUs, default is the DC232B | |
1006 | @item | |
1007 | 16550 UART | |
1008 | @item | |
1009 | OpenCores 10/100 Mbps Ethernet MAC | |
1010 | @end itemize | |
1011 | ||
1012 | @c man begin OPTIONS | |
1013 | ||
1014 | The following options are specific to the Xtensa emulation: | |
1015 | ||
1016 | @table @option | |
1017 | ||
1018 | @item -semihosting | |
1019 | Enable semihosting syscall emulation. | |
1020 | ||
1021 | Xtensa semihosting provides basic file IO calls, such as open/read/write/seek/select. | |
1022 | Tensilica baremetal libc for ISS and linux platform "sim" use this interface. | |
1023 | ||
1024 | Note that this allows guest direct access to the host filesystem, | |
1025 | so should only be used with trusted guest OS. | |
1026 | ||
1027 | @end table | |
3f2ce724 | 1028 | |
abc67eb6 TH |
1029 | @c man end |
1030 | ||
483c6ad4 BP |
1031 | @node System requirements |
1032 | @chapter System requirements | |
1033 | ||
1034 | @section KVM kernel module | |
1035 | ||
1036 | On x86_64 hosts, the default set of CPU features enabled by the KVM accelerator | |
1037 | require the host to be running Linux v4.5 or newer. | |
1038 | ||
1039 | The OpteronG[345] CPU models require KVM support for RDTSCP, which was | |
1040 | added with Linux 4.5 which is supported by the major distros. And even | |
1041 | if RHEL7 has kernel 3.10, KVM there has the required functionality there | |
1042 | to make it close to a 4.5 or newer kernel. | |
47eacb4f | 1043 | |
e8412576 SH |
1044 | @include docs/security.texi |
1045 | ||
78e87797 PB |
1046 | @include qemu-tech.texi |
1047 | ||
44c67847 | 1048 | @include qemu-deprecated.texi |
efe2add7 | 1049 | |
fdeccf93 | 1050 | @include docs/system/build-platforms.texi |
7544a042 | 1051 | |
fdeccf93 | 1052 | @include docs/system/license.texi |
7544a042 | 1053 | |
7544a042 | 1054 | |
debc7065 | 1055 | @node Index |
7544a042 SW |
1056 | @appendix Index |
1057 | @menu | |
1058 | * Concept Index:: | |
1059 | * Function Index:: | |
1060 | * Keystroke Index:: | |
1061 | * Program Index:: | |
1062 | * Data Type Index:: | |
1063 | * Variable Index:: | |
1064 | @end menu | |
1065 | ||
1066 | @node Concept Index | |
1067 | @section Concept Index | |
1068 | This is the main index. Should we combine all keywords in one index? TODO | |
debc7065 FB |
1069 | @printindex cp |
1070 | ||
7544a042 SW |
1071 | @node Function Index |
1072 | @section Function Index | |
1073 | This index could be used for command line options and monitor functions. | |
1074 | @printindex fn | |
1075 | ||
1076 | @node Keystroke Index | |
1077 | @section Keystroke Index | |
1078 | ||
1079 | This is a list of all keystrokes which have a special function | |
1080 | in system emulation. | |
1081 | ||
1082 | @printindex ky | |
1083 | ||
1084 | @node Program Index | |
1085 | @section Program Index | |
1086 | @printindex pg | |
1087 | ||
1088 | @node Data Type Index | |
1089 | @section Data Type Index | |
1090 | ||
1091 | This index could be used for qdev device names and options. | |
1092 | ||
1093 | @printindex tp | |
1094 | ||
1095 | @node Variable Index | |
1096 | @section Variable Index | |
1097 | @printindex vr | |
1098 | ||
debc7065 | 1099 | @bye |