[SeaBIOS] [PATCH] seabios/pci: enable 64 bit bar on seabios

Gerd Hoffmann kraxel at redhat.com
Fri Nov 2 09:59:55 CET 2012


On 11/02/12 06:42, Xudong Hao wrote:
> 64 bit bar sizing and MMIO allocation. The 64 bit window is placed above high
> memory, top down from the end of guest physical address space.

What problem you are trying to fix?  The existing code should handle
64bit bars just fine.  By default they are placed below 4G though for
compatibility reasons (make old 32bit guests happy).  When running out
of address space seabios will try map them above 4G though to make room
below 4G.

Mapping your 64bit PCI bars above 4G unconditionally (for testing or
other reasons) can simply be done this way:

--- a/src/pciinit.c
+++ b/src/pciinit.c
@@ -599,7 +599,7 @@ static void pci_bios_map_devices(struct pci_bus *busses)
 {
     pcimem_start = RamSize;

-    if (pci_bios_init_root_regions(busses)) {
+    if (1 /* pci_bios_init_root_regions(busses) */) {
         struct pci_region r64_mem, r64_pref;
         r64_mem.list = NULL;
         r64_pref.list = NULL;

We might want add a config option for this.

cheers,
  Gerd




More information about the SeaBIOS mailing list