[SeaBIOS] [PATCH] remove pci_bios_bigmem_addr; pci_bios_mem_addr=0xe0000000

Kevin O'Connor kevin at koconnor.net
Thu Dec 24 03:33:44 CET 2009


This patch removes pci_bios_bigmem_addr, and it changes
pci_bios_mem_addr to start at 0xe0000000.

The pci_bios_bigmem_addr was removed from bochs.  Also, the current
code looks wrong as nothing stops an address given from
pci_bios_bigmem_addr from overlapping an address given from
pci_bios_mem_addr.

The change also moves pci_bios_mem_addr back to 0xe0000000 - both the
acpi and mtrr code use 0xe0000000 - I'm not sure why the code was
using 0xf0000000.

-Kevin


--- a/src/pciinit.c
+++ b/src/pciinit.c
@@ -16,7 +16,6 @@
 
 static u32 pci_bios_io_addr;
 static u32 pci_bios_mem_addr;
-static u32 pci_bios_bigmem_addr;
 /* host irqs corresponding to PCI irqs A-D */
 static u8 pci_irqs[4] = {
     10, 10, 11, 11
@@ -150,8 +149,6 @@ static void pci_bios_init_device(u16 bdf)
                 u32 size = (~(val & mask)) + 1;
                 if (val & PCI_BASE_ADDRESS_SPACE_IO)
                     paddr = &pci_bios_io_addr;
-                else if (size >= 0x04000000)
-                    paddr = &pci_bios_bigmem_addr;
                 else
                     paddr = &pci_bios_mem_addr;
                 *paddr = ALIGN(*paddr, size);
@@ -197,10 +194,7 @@ pci_setup(void)
     dprintf(3, "pci setup\n");
 
     pci_bios_io_addr = 0xc000;
-    pci_bios_mem_addr = 0xf0000000;
-    pci_bios_bigmem_addr = RamSize;
-    if (pci_bios_bigmem_addr < 0x90000000)
-        pci_bios_bigmem_addr = 0x90000000;
+    pci_bios_mem_addr = BUILD_MAX_HIGHMEM;
 
     int bdf, max;
     foreachpci(bdf, max) {



More information about the SeaBIOS mailing list