]>
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: | |
63e3e24d GH |
8 | -vga std [ picks isa for -M isapc, otherwise pci ] |
9 | -device VGA [ pci variant ] | |
10 | -device isa-vga [ isa variant ] | |
11 | -device secondary-vga [ legacy-free pci variant ] | |
cc228248 GH |
12 | |
13 | ||
14 | PCI spec | |
15 | -------- | |
16 | ||
17 | Applies to the pci variant only for obvious reasons. | |
18 | ||
19 | PCI ID: 1234:1111 | |
20 | ||
21 | PCI Region 0: | |
22 | Framebuffer memory, 16 MB in size (by default). | |
23 | Size is tunable via vga_mem_mb property. | |
24 | ||
25 | PCI Region 1: | |
26 | Reserved (so we have the option to make the framebuffer bar 64bit). | |
27 | ||
28 | PCI Region 2: | |
29 | MMIO bar, 4096 bytes in size (qemu 1.3+) | |
30 | ||
31 | PCI ROM Region: | |
32 | Holds the vgabios (qemu 0.14+). | |
33 | ||
34 | ||
63e3e24d GH |
35 | The legacy-free variant has no ROM and has PCI_CLASS_DISPLAY_OTHER |
36 | instead of PCI_CLASS_DISPLAY_VGA. | |
37 | ||
38 | ||
cc228248 GH |
39 | IO ports used |
40 | ------------- | |
41 | ||
63e3e24d GH |
42 | Doesn't apply to the legacy-free pci variant, use the MMIO bar instead. |
43 | ||
cc228248 GH |
44 | 03c0 - 03df : standard vga ports |
45 | 01ce : bochs vbe interface index port | |
df9ffb72 GH |
46 | 01cf : bochs vbe interface data port (x86 only) |
47 | 01d0 : bochs vbe interface data port | |
cc228248 GH |
48 | |
49 | ||
50 | Memory regions used | |
51 | ------------------- | |
52 | ||
53 | 0xe0000000 : Framebuffer memory, isa variant only. | |
54 | ||
55 | The pci variant used to mirror the framebuffer bar here, qemu 0.14+ | |
56 | stops doing that (except when in -M pc-$old compat mode). | |
57 | ||
58 | ||
59 | MMIO area spec | |
60 | -------------- | |
61 | ||
62 | Likewise applies to the pci variant only for obvious reasons. | |
63 | ||
d46b40fc | 64 | 0000 - 03ff : edid data blob. |
cc228248 GH |
65 | 0400 - 041f : vga ioports (0x3c0 -> 0x3df), remapped 1:1. |
66 | word access is supported, bytes are written | |
67 | in little endia order (aka index port first), | |
68 | so indexed registers can be updated with a | |
69 | single mmio write (and thus only one vmexit). | |
70 | 0500 - 0515 : bochs dispi interface registers, mapped flat | |
71 | without index/data ports. Use (index << 1) | |
72 | as offset for (16bit) register access. | |
b5682aa4 GH |
73 | |
74 | 0600 - 0607 : qemu extended registers. qemu 2.2+ only. | |
75 | The pci revision is 2 (or greater) when | |
76 | these registers are present. The registers | |
77 | are 32bit. | |
78 | 0600 : qemu extended register region size, in bytes. | |
79 | 0604 : framebuffer endianness register. | |
80 | - 0xbebebebe indicates big endian. | |
81 | - 0x1e1e1e1e indicates little endian. |