qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

standard-vga.txt (2309B)


      1 
      2 QEMU Standard VGA
      3 =================
      4 
      5 Exists in two variants, for isa and pci.
      6 
      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 ]
     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 
     35 The legacy-free variant has no ROM and has PCI_CLASS_DISPLAY_OTHER
     36 instead of PCI_CLASS_DISPLAY_VGA.
     37 
     38 
     39 IO ports used
     40 -------------
     41 
     42 Doesn't apply to the legacy-free pci variant, use the MMIO bar instead.
     43 
     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
     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 
     64 0000 - 03ff : edid data blob.
     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.
     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.