qxl: add optinal 64bit vram bar
commit6f2b175a090f367c3aab2226c4741b439671307a
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 14 Oct 2011 16:05:48 +0000 (14 18:05 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 28 Feb 2012 16:20:15 +0000 (28 17:20 +0100)
tree156f47bfa8b9839fe159ef464770df705dd18bba
parent81fb6f1504fb9ef71f2382f44af34756668296e8
qxl: add optinal 64bit vram bar

This patch adds an 64bit pci bar for vram.  It is turned off by default.
It can be enabled by setting the size of the 64bit bar to be larger than
the 32bit bar.  Both 32bit and 64bit bar refer to the same memory.  Only
the first part of the memory is available via 32bit bar.

The intention is to allow large vram sizes for 64bit guests, by allowing
the vram bar being mapped above 4G, so we don't have to squeeze it into
the pci I/O window below 4G.

With vram_size_mb=16 and vram64_size_mb=256 it looks like this:

00:02.0 VGA compatible controller: Red Hat, Inc. Device 0100 (rev 02) (prog-if 00 [VGA controller])
        Subsystem: Red Hat, Inc Device 1100
        Physical Slot: 2
        Flags: fast devsel, IRQ 10
        Memory at f8000000 (32-bit, non-prefetchable) [size=64M]
        Memory at fc000000 (32-bit, non-prefetchable) [size=16M]
        Memory at fd020000 (32-bit, non-prefetchable) [size=8K]
        I/O ports at c5a0 [size=32]
        Memory at ffe0000000 (64-bit, prefetchable) [size=256M]
        Expansion ROM at fd000000 [disabled] [size=64K]

[ mapping above 4G needs patched seabios:
  http://www.kraxel.org/cgit/seabios/commit/?h=pci64 ]
hw/qxl.c
hw/qxl.h