mirror of https://gitee.com/openkylin/qemu.git
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:
parent
d17b5288d9
commit
44ae28f315
22
hw/pc.c
22
hw/pc.c
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue