[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 65/86] ppc:ppc405_boards: use memdev for RAM
From: |
David Gibson |
Subject: |
Re: [PATCH v2 65/86] ppc:ppc405_boards: use memdev for RAM |
Date: |
Thu, 16 Jan 2020 14:21:14 +1000 |
On Wed, Jan 15, 2020 at 04:07:20PM +0100, Igor Mammedov 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.
>
> PS:
> in ref405ep alias RAM into ram_memories[] to avoid re-factoring
> its user ppc405ep_init(), which would be invasive and out of
> scope this patch.
>
> Signed-off-by: Igor Mammedov <address@hidden>
Acked-by: David Gibson <address@hidden>
> ---
> CC: address@hidden
> CC: address@hidden
> ---
> hw/ppc/ppc405_boards.c | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c
> index a7a432d..f447e6e 100644
> --- a/hw/ppc/ppc405_boards.c
> +++ b/hw/ppc/ppc405_boards.c
> @@ -168,8 +168,8 @@ static void ref405ep_init(MachineState *machine)
> }
>
> /* XXX: fix this */
> - memory_region_allocate_system_memory(&ram_memories[0], NULL,
> "ef405ep.ram",
> - machine->ram_size);
> + memory_region_init_alias(&ram_memories[0], NULL, "ef405ep.ram.alias",
> + machine->ram, 0, machine->ram_size);
> ram_bases[0] = 0;
> ram_sizes[0] = machine->ram_size;
> memory_region_init(&ram_memories[1], NULL, "ef405ep.ram1", 0);
> @@ -310,6 +310,7 @@ static void ref405ep_class_init(ObjectClass *oc, void
> *data)
> mc->desc = "ref405ep";
> mc->init = ref405ep_init;
> mc->default_ram_size = 0x08000000;
> + mc->default_ram_id = "ef405ep.ram";
> }
>
> static const TypeInfo ref405ep_type = {
> @@ -422,7 +423,6 @@ static void taihu_405ep_init(MachineState *machine)
> MemoryRegion *sysmem = get_system_memory();
> MemoryRegion *bios;
> MemoryRegion *ram_memories = g_new(MemoryRegion, 2);
> - MemoryRegion *ram = g_malloc0(sizeof(*ram));
> hwaddr ram_bases[2], ram_sizes[2];
> long bios_size;
> target_ulong kernel_base, initrd_base;
> @@ -436,18 +436,16 @@ static void taihu_405ep_init(MachineState *machine)
> mc->default_ram_size);
> exit(EXIT_FAILURE);
> }
> - memory_region_allocate_system_memory(ram, NULL, "taihu_405ep.ram",
> - machine->ram_size);
>
> ram_bases[0] = 0;
> ram_sizes[0] = 0x04000000;
> memory_region_init_alias(&ram_memories[0], NULL,
> - "taihu_405ep.ram-0", ram, ram_bases[0],
> + "taihu_405ep.ram-0", machine->ram, ram_bases[0],
> ram_sizes[0]);
> ram_bases[1] = 0x04000000;
> ram_sizes[1] = 0x04000000;
> memory_region_init_alias(&ram_memories[1], NULL,
> - "taihu_405ep.ram-1", ram, ram_bases[1],
> + "taihu_405ep.ram-1", machine->ram, ram_bases[1],
> ram_sizes[1]);
> ppc405ep_init(sysmem, ram_memories, ram_bases, ram_sizes,
> 33333333, &pic, kernel_filename == NULL ? 0 : 1);
> @@ -543,6 +541,7 @@ static void taihu_class_init(ObjectClass *oc, void *data)
> mc->desc = "taihu";
> mc->init = taihu_405ep_init;
> mc->default_ram_size = 0x08000000;
> + mc->default_ram_id = "ef405ep.ram";
> }
>
> static const TypeInfo taihu_type = {
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature