]> git.proxmox.com Git - qemu.git/blame - docs/specs/standard-vga.txt
vga: fix bochs alignment issue
[qemu.git] / docs / specs / standard-vga.txt
CommitLineData
cc228248
GH
1
2QEMU Standard VGA
3=================
4
5Exists in two variants, for isa and pci.
6
7command 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
13PCI spec
14--------
15
16Applies to the pci variant only for obvious reasons.
17
18PCI ID: 1234:1111
19
20PCI Region 0:
21 Framebuffer memory, 16 MB in size (by default).
22 Size is tunable via vga_mem_mb property.
23
24PCI Region 1:
25 Reserved (so we have the option to make the framebuffer bar 64bit).
26
27PCI Region 2:
28 MMIO bar, 4096 bytes in size (qemu 1.3+)
29
30PCI ROM Region:
31 Holds the vgabios (qemu 0.14+).
32
33
34IO ports used
35-------------
36
3703c0 - 03df : standard vga ports
3801ce : bochs vbe interface index port
df9ffb72
GH
3901cf : bochs vbe interface data port (x86 only)
4001d0 : bochs vbe interface data port
cc228248
GH
41
42
43Memory regions used
44-------------------
45
460xe0000000 : Framebuffer memory, isa variant only.
47
48The pci variant used to mirror the framebuffer bar here, qemu 0.14+
49stops doing that (except when in -M pc-$old compat mode).
50
51
52MMIO area spec
53--------------
54
55Likewise applies to the pci variant only for obvious reasons.
56
570000 - 03ff : reserved, for possible virtio extension.
580400 - 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).
630500 - 0515 : bochs dispi interface registers, mapped flat
64 without index/data ports. Use (index << 1)
65 as offset for (16bit) register access.