]>
Commit | Line | Data |
---|---|---|
cc228248 GH |
1 | |
2 | QEMU Standard VGA | |
3 | ================= | |
4 | ||
5 | Exists in two variants, for isa and pci. | |
6 | ||
7 | command line switches: | |
8 | -vga std [ picks isa for -M isapc, otherwise pci ] | |
9 | -device VGA [ pci variant ] | |
10 | -device isa-vga [ isa variant ] | |
11 | ||
12 | ||
13 | PCI spec | |
14 | -------- | |
15 | ||
16 | Applies to the pci variant only for obvious reasons. | |
17 | ||
18 | PCI ID: 1234:1111 | |
19 | ||
20 | PCI Region 0: | |
21 | Framebuffer memory, 16 MB in size (by default). | |
22 | Size is tunable via vga_mem_mb property. | |
23 | ||
24 | PCI Region 1: | |
25 | Reserved (so we have the option to make the framebuffer bar 64bit). | |
26 | ||
27 | PCI Region 2: | |
28 | MMIO bar, 4096 bytes in size (qemu 1.3+) | |
29 | ||
30 | PCI ROM Region: | |
31 | Holds the vgabios (qemu 0.14+). | |
32 | ||
33 | ||
34 | IO ports used | |
35 | ------------- | |
36 | ||
37 | 03c0 - 03df : standard vga ports | |
38 | 01ce : bochs vbe interface index port | |
df9ffb72 GH |
39 | 01cf : bochs vbe interface data port (x86 only) |
40 | 01d0 : bochs vbe interface data port | |
cc228248 GH |
41 | |
42 | ||
43 | Memory regions used | |
44 | ------------------- | |
45 | ||
46 | 0xe0000000 : Framebuffer memory, isa variant only. | |
47 | ||
48 | The pci variant used to mirror the framebuffer bar here, qemu 0.14+ | |
49 | stops doing that (except when in -M pc-$old compat mode). | |
50 | ||
51 | ||
52 | MMIO area spec | |
53 | -------------- | |
54 | ||
55 | Likewise applies to the pci variant only for obvious reasons. | |
56 | ||
57 | 0000 - 03ff : reserved, for possible virtio extension. | |
58 | 0400 - 041f : vga ioports (0x3c0 -> 0x3df), remapped 1:1. | |
59 | word access is supported, bytes are written | |
60 | in little endia order (aka index port first), | |
61 | so indexed registers can be updated with a | |
62 | single mmio write (and thus only one vmexit). | |
63 | 0500 - 0515 : bochs dispi interface registers, mapped flat | |
64 | without index/data ports. Use (index << 1) | |
65 | as offset for (16bit) register access. |