Memdev allocated MemoryRegion 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.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
 hw/sh4/r2d.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c
index 51c7c3e2e07..5fd06b3b731 100644
--- a/hw/sh4/r2d.c
+++ b/hw/sh4/r2d.c
@@ -252,7 +252,7 @@ static void r2d_init(MachineState *machine)
     USBBus *usb_bus;
     r2d_fpga_t *fpga;
     hwaddr sdram_base;
-    uint64_t sdram_size = SDRAM_SIZE;
+    uint64_t sdram_size = machine->ram_size;
 
     switch (machine->ram_size) {
     case 64 * MiB:
@@ -272,7 +272,7 @@ static void r2d_init(MachineState *machine)
     qemu_register_reset(main_cpu_reset, reset_info);
 
     /* Allocate memory space */
-    memory_region_init_ram(sdram, NULL, "r2d.sdram", sdram_size, &error_fatal);
+    memory_region_init_alias(sdram, NULL, "sdram", machine->ram, 0, 
sdram_size);
     memory_region_add_subregion(address_space_mem, sdram_base, sdram);
     /* Register peripherals */
     s = sh7750_init(cpu, address_space_mem);
@@ -396,6 +396,8 @@ static void r2d_machine_init(MachineClass *mc)
     mc->init = r2d_init;
     mc->block_default_type = IF_IDE;
     mc->default_cpu_type = TYPE_SH7751R_CPU;
+    mc->default_ram_size = 64 * MiB;
+    mc->default_ram_id = "ram";
     mc->default_nic = "rtl8139";
 }
 
-- 
2.51.0


Reply via email to