Message ID | 1579779525-20065-57-git-send-email-imammedo@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | refactor main RAM allocation to use hostmem backend | expand |
On Thu, Jan 23, 2020 at 1:24 PM Igor Mammedov <imammedo@redhat.com> wrote: > 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. > > Signed-off-by: Igor Mammedov <imammedo@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > hw/mips/mips_r4k.c | 12 ++++-------- > 1 file changed, 4 insertions(+), 8 deletions(-) > > Applied to MIPS queue. > diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c > index fd926a3..69b6549 100644 > --- a/hw/mips/mips_r4k.c > +++ b/hw/mips/mips_r4k.c > @@ -171,13 +171,11 @@ static const int sector_len = 32 * KiB; > static > void mips_r4k_init(MachineState *machine) > { > - ram_addr_t ram_size = machine->ram_size; > const char *kernel_filename = machine->kernel_filename; > const char *kernel_cmdline = machine->kernel_cmdline; > const char *initrd_filename = machine->initrd_filename; > char *filename; > MemoryRegion *address_space_mem = get_system_memory(); > - MemoryRegion *ram = g_new(MemoryRegion, 1); > MemoryRegion *bios; > MemoryRegion *iomem = g_new(MemoryRegion, 1); > MemoryRegion *isa_io = g_new(MemoryRegion, 1); > @@ -203,14 +201,12 @@ void mips_r4k_init(MachineState *machine) > qemu_register_reset(main_cpu_reset, reset_info); > > /* allocate RAM */ > - if (ram_size > 256 * MiB) { > + if (machine->ram_size > 256 * MiB) { > error_report("Too much memory for this machine: %" PRId64 "MB," > " maximum 256MB", ram_size / MiB); > exit(1); > } > - memory_region_allocate_system_memory(ram, NULL, "mips_r4k.ram", > ram_size); > - > - memory_region_add_subregion(address_space_mem, 0, ram); > + memory_region_add_subregion(address_space_mem, 0, machine->ram); > > memory_region_init_io(iomem, NULL, &mips_qemu_ops, > NULL, "mips-qemu", 0x10000); > @@ -261,7 +257,7 @@ void mips_r4k_init(MachineState *machine) > g_free(filename); > > if (kernel_filename) { > - loaderparams.ram_size = ram_size; > + loaderparams.ram_size = machine->ram_size; > loaderparams.kernel_filename = kernel_filename; > loaderparams.kernel_cmdline = kernel_cmdline; > loaderparams.initrd_filename = initrd_filename; > @@ -316,7 +312,7 @@ static void mips_machine_init(MachineClass *mc) > #else > mc->default_cpu_type = MIPS_CPU_TYPE_NAME("24Kf"); > #endif > - > + mc->default_ram_id = "mips_r4k.ram"; > } > > DEFINE_MACHINE("mips", mips_machine_init) > -- > 2.7.4 > > >
diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c index fd926a3..69b6549 100644 --- a/hw/mips/mips_r4k.c +++ b/hw/mips/mips_r4k.c @@ -171,13 +171,11 @@ static const int sector_len = 32 * KiB; static void mips_r4k_init(MachineState *machine) { - ram_addr_t ram_size = machine->ram_size; const char *kernel_filename = machine->kernel_filename; const char *kernel_cmdline = machine->kernel_cmdline; const char *initrd_filename = machine->initrd_filename; char *filename; MemoryRegion *address_space_mem = get_system_memory(); - MemoryRegion *ram = g_new(MemoryRegion, 1); MemoryRegion *bios; MemoryRegion *iomem = g_new(MemoryRegion, 1); MemoryRegion *isa_io = g_new(MemoryRegion, 1); @@ -203,14 +201,12 @@ void mips_r4k_init(MachineState *machine) qemu_register_reset(main_cpu_reset, reset_info); /* allocate RAM */ - if (ram_size > 256 * MiB) { + if (machine->ram_size > 256 * MiB) { error_report("Too much memory for this machine: %" PRId64 "MB," " maximum 256MB", ram_size / MiB); exit(1); } - memory_region_allocate_system_memory(ram, NULL, "mips_r4k.ram", ram_size); - - memory_region_add_subregion(address_space_mem, 0, ram); + memory_region_add_subregion(address_space_mem, 0, machine->ram); memory_region_init_io(iomem, NULL, &mips_qemu_ops, NULL, "mips-qemu", 0x10000); @@ -261,7 +257,7 @@ void mips_r4k_init(MachineState *machine) g_free(filename); if (kernel_filename) { - loaderparams.ram_size = ram_size; + loaderparams.ram_size = machine->ram_size; loaderparams.kernel_filename = kernel_filename; loaderparams.kernel_cmdline = kernel_cmdline; loaderparams.initrd_filename = initrd_filename; @@ -316,7 +312,7 @@ static void mips_machine_init(MachineClass *mc) #else mc->default_cpu_type = MIPS_CPU_TYPE_NAME("24Kf"); #endif - + mc->default_ram_id = "mips_r4k.ram"; } DEFINE_MACHINE("mips", mips_machine_init)