Skip to content

Commit

Permalink
vga: add specs for standard vga
Browse files Browse the repository at this point in the history
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
  • Loading branch information
kraxel authored and blueswirl committed Oct 20, 2012
1 parent 803ff05 commit cc22824
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 0 deletions.
64 changes: 64 additions & 0 deletions docs/specs/standard-vga.txt
@@ -0,0 +1,64 @@

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 ]


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+).


IO ports used
-------------

03c0 - 03df : standard vga ports
01ce : bochs vbe interface index port
01cf : 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 : reserved, for possible virtio extension.
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.
2 changes: 2 additions & 0 deletions hw/vga-isa.c
@@ -1,6 +1,8 @@
/*
* QEMU ISA VGA Emulator.
*
* see docs/specs/standard-vga.txt for virtual hardware specs.
*
* Copyright (c) 2003 Fabrice Bellard
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down
2 changes: 2 additions & 0 deletions hw/vga-pci.c
@@ -1,6 +1,8 @@
/*
* QEMU PCI VGA Emulator.
*
* see docs/specs/standard-vga.txt for virtual hardware specs.
*
* Copyright (c) 2003 Fabrice Bellard
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down

0 comments on commit cc22824

Please sign in to comment.