|
@@ -1,81 +0,0 @@
|
|
-
|
|
|
|
-QEMU Standard VGA
|
|
|
|
-=================
|
|
|
|
-
|
|
|
|
-Exists in two variants, for isa and pci.
|
|
|
|
-
|
|
|
|
-command line switches:
|
|
|
|
- -vga std [ picks isa for -M isapc, otherwise pci ]
|
|
|
|
- -device VGA [ pci variant ]
|
|
|
|
- -device isa-vga [ isa variant ]
|
|
|
|
- -device secondary-vga [ legacy-free pci variant ]
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-PCI spec
|
|
|
|
---------
|
|
|
|
-
|
|
|
|
-Applies to the pci variant only for obvious reasons.
|
|
|
|
-
|
|
|
|
-PCI ID: 1234:1111
|
|
|
|
-
|
|
|
|
-PCI Region 0:
|
|
|
|
- Framebuffer memory, 16 MB in size (by default).
|
|
|
|
- Size is tunable via vga_mem_mb property.
|
|
|
|
-
|
|
|
|
-PCI Region 1:
|
|
|
|
- Reserved (so we have the option to make the framebuffer bar 64bit).
|
|
|
|
-
|
|
|
|
-PCI Region 2:
|
|
|
|
- MMIO bar, 4096 bytes in size (qemu 1.3+)
|
|
|
|
-
|
|
|
|
-PCI ROM Region:
|
|
|
|
- Holds the vgabios (qemu 0.14+).
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-The legacy-free variant has no ROM and has PCI_CLASS_DISPLAY_OTHER
|
|
|
|
-instead of PCI_CLASS_DISPLAY_VGA.
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-IO ports used
|
|
|
|
--------------
|
|
|
|
-
|
|
|
|
-Doesn't apply to the legacy-free pci variant, use the MMIO bar instead.
|
|
|
|
-
|
|
|
|
-03c0 - 03df : standard vga ports
|
|
|
|
-01ce : bochs vbe interface index port
|
|
|
|
-01cf : bochs vbe interface data port (x86 only)
|
|
|
|
-01d0 : bochs vbe interface data port
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-Memory regions used
|
|
|
|
--------------------
|
|
|
|
-
|
|
|
|
-0xe0000000 : Framebuffer memory, isa variant only.
|
|
|
|
-
|
|
|
|
-The pci variant used to mirror the framebuffer bar here, qemu 0.14+
|
|
|
|
-stops doing that (except when in -M pc-$old compat mode).
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-MMIO area spec
|
|
|
|
---------------
|
|
|
|
-
|
|
|
|
-Likewise applies to the pci variant only for obvious reasons.
|
|
|
|
-
|
|
|
|
-0000 - 03ff : edid data blob.
|
|
|
|
-0400 - 041f : vga ioports (0x3c0 -> 0x3df), remapped 1:1.
|
|
|
|
- word access is supported, bytes are written
|
|
|
|
- in little endia order (aka index port first),
|
|
|
|
- so indexed registers can be updated with a
|
|
|
|
- single mmio write (and thus only one vmexit).
|
|
|
|
-0500 - 0515 : bochs dispi interface registers, mapped flat
|
|
|
|
- without index/data ports. Use (index << 1)
|
|
|
|
- as offset for (16bit) register access.
|
|
|
|
-
|
|
|
|
-0600 - 0607 : qemu extended registers. qemu 2.2+ only.
|
|
|
|
- The pci revision is 2 (or greater) when
|
|
|
|
- these registers are present. The registers
|
|
|
|
- are 32bit.
|
|
|
|
- 0600 : qemu extended register region size, in bytes.
|
|
|
|
- 0604 : framebuffer endianness register.
|
|
|
|
- - 0xbebebebe indicates big endian.
|
|
|
|
- - 0x1e1e1e1e indicates little endian.
|
|
|