Disable >4G ram support on 32-bit targets
authorPaul Brook <paul@codesourcery.com>
Tue, 19 May 2009 15:05:00 +0000 (19 16:05 +0100)
committerPaul Brook <paul@codesourcery.com>
Tue, 19 May 2009 15:05:00 +0000 (19 16:05 +0100)
If the target only has a 32-bit physical address space then
the code to map >4G ram breaks horribly, and causes compiler warnings.

Signed-off-by: Paul Brook <paul@codesourcery.com>
hw/pc.c

diff --git a/hw/pc.c b/hw/pc.c
index 826cb9d..901489a 100644 (file)
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -908,10 +908,14 @@ static void pc_init1(ram_addr_t ram_size,
 
     /* 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);
+#endif
     }