pc: Allocate all ram in a single qemu_ram_alloc()

This will benefit us when we migrate based on ramblock name since
we won't be bouncing between separate blocks.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Alex Williamson 2010-06-25 11:08:45 -06:00 committed by Anthony Liguori
parent d17b5288d9
commit 44ae28f315
1 changed files with 9 additions and 13 deletions

22
hw/pc.c
View File

@ -901,27 +901,23 @@ void pc_memory_init(ram_addr_t ram_size,
*above_4g_mem_size_p = above_4g_mem_size;
*below_4g_mem_size_p = below_4g_mem_size;
#if TARGET_PHYS_ADDR_BITS == 32
if (above_4g_mem_size > 0) {
hw_error("To much RAM for 32-bit physical address");
}
#endif
linux_boot = (kernel_filename != NULL);
/* allocate RAM */
ram_addr = qemu_ram_alloc(below_4g_mem_size);
ram_addr = qemu_ram_alloc(below_4g_mem_size + above_4g_mem_size);
cpu_register_physical_memory(0, 0xa0000, ram_addr);
cpu_register_physical_memory(0x100000,
below_4g_mem_size - 0x100000,
ram_addr + 0x100000);
/* above 4giga memory allocation */
if (above_4g_mem_size > 0) {
#if TARGET_PHYS_ADDR_BITS == 32
hw_error("To much RAM for 32-bit physical address");
#else
ram_addr = qemu_ram_alloc(above_4g_mem_size);
cpu_register_physical_memory(0x100000000ULL,
above_4g_mem_size,
ram_addr);
#if TARGET_PHYS_ADDR_BITS > 32
cpu_register_physical_memory(0x100000000ULL, above_4g_mem_size,
ram_addr + below_4g_mem_size);
#endif
}
/* BIOS load */
if (bios_name == NULL)