qapi: drop the sentinel in enum array
[qemu/armbru.git] / docs / specs / standard-vga.txt
blob19d2a7450904108a6443c0e43aefa7b5be8ef8de
2 QEMU Standard VGA
3 =================
5 Exists in two variants, for isa and pci.
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     -device secondary-vga  [ legacy-free pci variant ]
14 PCI spec
15 --------
17 Applies to the pci variant only for obvious reasons.
19 PCI ID: 1234:1111
21 PCI Region 0:
22    Framebuffer memory, 16 MB in size (by default).
23    Size is tunable via vga_mem_mb property.
25 PCI Region 1:
26    Reserved (so we have the option to make the framebuffer bar 64bit).
28 PCI Region 2:
29    MMIO bar, 4096 bytes in size (qemu 1.3+)
31 PCI ROM Region:
32    Holds the vgabios (qemu 0.14+).
35 The legacy-free variant has no ROM and has PCI_CLASS_DISPLAY_OTHER
36 instead of PCI_CLASS_DISPLAY_VGA.
39 IO ports used
40 -------------
42 Doesn't apply to the legacy-free pci variant, use the MMIO bar instead.
44 03c0 - 03df : standard vga ports
45 01ce        : bochs vbe interface index port
46 01cf        : bochs vbe interface data port (x86 only)
47 01d0        : bochs vbe interface data port
50 Memory regions used
51 -------------------
53 0xe0000000 : Framebuffer memory, isa variant only.
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).
59 MMIO area spec
60 --------------
62 Likewise applies to the pci variant only for obvious reasons.
64 0000 - 03ff : reserved, for possible virtio extension.
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.
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.