[SeaBIOS] Next version

Gerd Hoffmann kraxel at redhat.com
Wed Feb 16 16:33:11 CET 2011


   Hi,

> The current PCI memory space is limited to 236MB. It would be good to
> increase it to at-least 512MB. KVM supports for device assignment to
> the VM. For most of the PCI devices the 236MB memory might be enough,
> but when you pass-through a graphics device, this memory is very
> limited.
>
> I don't know if the PCI memory space can be dynamically expanded, but
> it would be good to increase the PCI memory space to 512MB at-least.

There is one problem with that:  The bochs bios vesa interface expects 
the linear framebuffer for the graphics card at the magic address 
0xe0000000, size 8 (qemu) or 16 (qemu-kvm) megabytes.  So the area from 
0xe0000000 -> 0xe1000000 might be in use even though this isn't noted 
anythere.

In the upcoming 0.14 qemu release this has been fixed finally, the 
vgabios looks up the framebuffer address in pci config space instead of 
using the hard-coded 0xe0000000 address, and by default the mapping 
isn't present any more.  When starting qemu 0.14 with '-M 
pc-$olderversion' the mapping is still there for live migration 
compatibility reasons though.

Also for large virtual machines qemu maps 3.5 MB (0 -> 0xe0000000) to 
low memory.  This is visible in the e820 map though so it can easily be 
checked for by seabios.  Changing the way qemu maps memory (to free up 
some address space) will break live migration too, so this can't be done 
easily.

Bottom line: Extending the pci memory space to start at 0xe1000000 
(giving a little less than 512MB) should be doable without major trouble 
(from qemu point of view).  Giving more address space to PCI will be tricky.

cheers,
   Gerd



More information about the SeaBIOS mailing list