[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 23/80] arm/mps2: use memdev for RAM
From: |
Igor Mammedov |
Subject: |
[PATCH v4 23/80] arm/mps2: use memdev for RAM |
Date: |
Fri, 31 Jan 2020 16:08:53 +0100 |
memory_region_allocate_system_memory() API is going away, so
replace it with memdev allocated MemoryRegion. The later is
initialized by generic code, so board only needs to opt in
to memdev scheme by providing
MachineClass::default_ram_id
and using MachineState::ram instead of manually initializing
RAM memory region.
PS:
while at it add check for user supplied RAM size and error
out if it mismatches board expected value.
Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: Andrew Jones <address@hidden>
---
v2:
* fix format string causing build failure on 32-bit host
(Philippe Mathieu-Daudé <address@hidden>)
---
hw/arm/mps2.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c
index d002b12..f246213 100644
--- a/hw/arm/mps2.c
+++ b/hw/arm/mps2.c
@@ -24,6 +24,7 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
+#include "qemu/cutils.h"
#include "qapi/error.h"
#include "qemu/error-report.h"
#include "hw/arm/boot.h"
@@ -55,7 +56,6 @@ typedef struct {
MachineState parent;
ARMv7MState armv7m;
- MemoryRegion psram;
MemoryRegion ssram1;
MemoryRegion ssram1_m;
MemoryRegion ssram23;
@@ -118,6 +118,13 @@ static void mps2_common_init(MachineState *machine)
exit(1);
}
+ if (machine->ram_size != mc->default_ram_size) {
+ char *sz = size_to_str(mc->default_ram_size);
+ error_report("Invalid RAM size, should be %s", sz);
+ g_free(sz);
+ exit(EXIT_FAILURE);
+ }
+
/* The FPGA images have an odd combination of different RAMs,
* because in hardware they are different implementations and
* connected to different buses, giving varying performance/size
@@ -146,9 +153,7 @@ static void mps2_common_init(MachineState *machine)
* This is of no use for QEMU so we don't implement it (as if
* zbt_boot_ctrl is always zero).
*/
- memory_region_allocate_system_memory(&mms->psram,
- NULL, "mps.ram", 16 * MiB);
- memory_region_add_subregion(system_memory, 0x21000000, &mms->psram);
+ memory_region_add_subregion(system_memory, 0x21000000, machine->ram);
switch (mmc->fpga_type) {
case FPGA_AN385:
@@ -338,6 +343,8 @@ static void mps2_class_init(ObjectClass *oc, void *data)
mc->init = mps2_common_init;
mc->max_cpus = 1;
+ mc->default_ram_size = 16 * MiB;
+ mc->default_ram_id = "mps.ram";
}
static void mps2_an385_class_init(ObjectClass *oc, void *data)
--
2.7.4
- [PATCH v4 07/80] vl.c: ensure that ram_size matches size of machine.memory-backend, (continued)
- [PATCH v4 07/80] vl.c: ensure that ram_size matches size of machine.memory-backend, Igor Mammedov, 2020/01/31
- [PATCH v4 10/80] arm/aspeed: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 14/80] arm/highbank: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 09/80] arm/aspeed: actually check RAM size, Igor Mammedov, 2020/01/31
- [PATCH v4 13/80] arm/digic_boards: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 12/80] arm/cubieboard: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 03/80] machine: alias -mem-path and -mem-prealloc into memory-foo backend, Igor Mammedov, 2020/01/31
- [PATCH v4 19/80] arm/kzm: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 16/80] arm/imx25_pdk: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 15/80] arm/imx25_pdk: drop RAM size fixup, Igor Mammedov, 2020/01/31
- [PATCH v4 23/80] arm/mps2: use memdev for RAM,
Igor Mammedov <=
- [PATCH v4 18/80] arm/kzm: drop RAM size fixup, Igor Mammedov, 2020/01/31
- [PATCH v4 17/80] arm/integratorcp: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 20/80] arm/mcimx6ul-evk: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 25/80] arm/nseries: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 26/80] arm/omap_sx1: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 27/80] arm/palm: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 21/80] arm/mcimx7d-sabre: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 24/80] arm/musicpal: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 28/80] arm/raspi: use memdev for RAM, Igor Mammedov, 2020/01/31
- [PATCH v4 29/80] arm/sabrelite: use memdev for RAM, Igor Mammedov, 2020/01/31