Convert docs/specs/standard-vga.txt to rST format. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20230927151205.70930-6-peter.maydell@linaro.org Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
 | 
						|
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`` to ``0x3df``), remapped 1:1. Word access
 | 
						|
  is supported, bytes are written in little endian 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.
 |