[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 6/6] hw/vexpress.c: Allow >4GB of RAM for Cortex-
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH v2 6/6] hw/vexpress.c: Allow >4GB of RAM for Cortex-A15 daughterboard |
Date: |
Mon, 16 Jul 2012 14:24:16 +0100 |
Now that we have LPAE support and can handle passing 64 bit
RAM sizes to Linux via the device tree, we can lift the
restriction in the Versatile Express A15 daughterboard model
on not having more than 2GB of RAM. Allow up to 30GB, which
is the maximum that can fit in the address map before running
into the (unmodelled) aliases of the first 2GB.
Signed-off-by: Peter Maydell <address@hidden>
---
hw/vexpress.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/hw/vexpress.c b/hw/vexpress.c
index 8072c5a..b2dc8a5 100644
--- a/hw/vexpress.c
+++ b/hw/vexpress.c
@@ -284,9 +284,16 @@ static void a15_daughterboard_init(const VEDBoardInfo
*daughterboard,
cpu_irq[n] = irqp[ARM_PIC_CPU_IRQ];
}
- if (ram_size > 0x80000000) {
- fprintf(stderr, "vexpress-a15: cannot model more than 2GB RAM\n");
- exit(1);
+ {
+ /* We have to use a separate 64 bit variable here to avoid the gcc
+ * "comparison is always false due to limited range of data type"
+ * warning if we are on a host where ram_addr_t is 32 bits.
+ */
+ uint64_t rsz = ram_size;
+ if (rsz > (30ULL * 1024 * 1024 * 1024)) {
+ fprintf(stderr, "vexpress-a15: cannot model more than 30GB RAM\n");
+ exit(1);
+ }
}
memory_region_init_ram(ram, "vexpress.highmem", ram_size);
--
1.7.5.4
- [Qemu-devel] [PATCH v2 0/6] arm_boot/vexpress-a15: Support >4GB of RAM, Peter Maydell, 2012/07/16
- [Qemu-devel] [PATCH v2 6/6] hw/vexpress.c: Allow >4GB of RAM for Cortex-A15 daughterboard,
Peter Maydell <=
- [Qemu-devel] [PATCH v2 1/6] hw/arm_boot.c: Make ram_size a uint64_t, Peter Maydell, 2012/07/16
- [Qemu-devel] [PATCH v2 4/6] device_tree: Add support for reading device tree properties, Peter Maydell, 2012/07/16
- [Qemu-devel] [PATCH v2 2/6] hw/arm_boot.c: Consistently use ram_size from arm_boot_info struct, Peter Maydell, 2012/07/16
- [Qemu-devel] [PATCH v2 3/6] hw/arm_boot.c: Check for RAM sizes exceeding ATAGS capacity, Peter Maydell, 2012/07/16
- [Qemu-devel] [PATCH v2 5/6] hw/arm_boot.c: Support DTBs which use 64 bit addresses, Peter Maydell, 2012/07/16