qemu/docs/specs/standard-vga.txt
<<
>>
Prefs
   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    -device secondary-vga  [ legacy-free pci variant ]
  12
  13
  14PCI spec
  15--------
  16
  17Applies to the pci variant only for obvious reasons.
  18
  19PCI ID: 1234:1111
  20
  21PCI Region 0:
  22   Framebuffer memory, 16 MB in size (by default).
  23   Size is tunable via vga_mem_mb property.
  24
  25PCI Region 1:
  26   Reserved (so we have the option to make the framebuffer bar 64bit).
  27
  28PCI Region 2:
  29   MMIO bar, 4096 bytes in size (qemu 1.3+)
  30
  31PCI ROM Region:
  32   Holds the vgabios (qemu 0.14+).
  33
  34
  35The legacy-free variant has no ROM and has PCI_CLASS_DISPLAY_OTHER
  36instead of PCI_CLASS_DISPLAY_VGA.
  37
  38
  39IO ports used
  40-------------
  41
  42Doesn't apply to the legacy-free pci variant, use the MMIO bar instead.
  43
  4403c0 - 03df : standard vga ports
  4501ce        : bochs vbe interface index port
  4601cf        : bochs vbe interface data port (x86 only)
  4701d0        : bochs vbe interface data port
  48
  49
  50Memory regions used
  51-------------------
  52
  530xe0000000 : Framebuffer memory, isa variant only.
  54
  55The pci variant used to mirror the framebuffer bar here, qemu 0.14+
  56stops doing that (except when in -M pc-$old compat mode).
  57
  58
  59MMIO area spec
  60--------------
  61
  62Likewise applies to the pci variant only for obvious reasons.
  63
  640000 - 03ff : edid data blob.
  650400 - 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).
  700500 - 0515 : bochs dispi interface registers, mapped flat
  71              without index/data ports.  Use (index << 1)
  72              as offset for (16bit) register access.
  73
  740600 - 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.
  82