From 5abf93445552fde53d274307e1958d910620592a Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 13 Jan 2009 15:42:47 +0000 Subject: [PATCH] hvmloader: remove videoram allocation; move reserve base to 0xfc000000. Signed-off-by: Stefano Stabellini --- tools/firmware/hvmloader/config.h | 4 ++-- tools/firmware/hvmloader/hvmloader.c | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/tools/firmware/hvmloader/config.h b/tools/firmware/hvmloader/config.h index e5b4fc4a80..660190be77 100644 --- a/tools/firmware/hvmloader/config.h +++ b/tools/firmware/hvmloader/config.h @@ -19,8 +19,8 @@ #define PCI_MEM_END 0xfc000000 extern unsigned long pci_mem_start, pci_mem_end; -/* We reserve 16MB at the top of the 4GB memory hole. */ -#define RESERVED_MEMBASE 0xff000000 +/* We reserve 16MB for special BIOS mappings, etc. */ +#define RESERVED_MEMBASE 0xfc000000 #define RESERVED_MEMSIZE 0x01000000 #define ROMBIOS_SEG 0xF000 diff --git a/tools/firmware/hvmloader/hvmloader.c b/tools/firmware/hvmloader/hvmloader.c index 19e35bc5e4..cfc225bf7c 100644 --- a/tools/firmware/hvmloader/hvmloader.c +++ b/tools/firmware/hvmloader/hvmloader.c @@ -622,7 +622,11 @@ static void build_e820_table(void) e820[nr].type = E820_RAM; nr++; - /* Explicitly reserve space for special pages. */ + /* + * Explicitly reserve space for special pages. + * This space starts at RESERVED_MEMBASE an extends to cover various + * fixed hardware mappings (e.g., LAPIC, IOAPIC, default SVGA framebuffer). + */ e820[nr].addr = RESERVED_MEMBASE; e820[nr].size = (uint32_t)-e820[nr].addr; e820[nr].type = E820_RESERVED; @@ -644,7 +648,7 @@ int main(void) { int option_rom_sz = 0, vgabios_sz = 0, etherboot_sz = 0; int rombios_sz, smbios_sz; - uint32_t etherboot_phys_addr, option_rom_phys_addr, vga_ram = 0; + uint32_t etherboot_phys_addr, option_rom_phys_addr; uint16_t xen_pfiob; printf("HVM Loader\n"); @@ -692,12 +696,6 @@ int main(void) break; } - if ( virtual_vga != VGA_none ) - { - vga_ram = virt_to_phys(mem_alloc(8 << 20, 4096)); - printf("VGA RAM at %08x\n", vga_ram); - } - etherboot_phys_addr = VGABIOS_PHYSICAL_ADDRESS + vgabios_sz; if ( etherboot_phys_addr < OPTIONROM_PHYSICAL_ADDRESS ) etherboot_phys_addr = OPTIONROM_PHYSICAL_ADDRESS; @@ -739,8 +737,6 @@ int main(void) ROMBIOS_PHYSICAL_ADDRESS + rombios_sz - 1); xen_pfiob = init_xen_platform_io_base(); - if ( xen_pfiob && vga_ram ) - outl(xen_pfiob + 4, vga_ram); build_e820_table(); -- 2.30.2