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