On 12/31/19 2:02 PM, 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.
>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> hw/alpha/alpha_sys.h | 2 +-
> hw/alpha/dp264.c | 3 ++-
> hw/alpha/typhoon.c | 8 ++------
> 3 files changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/hw/alpha/alpha_sys.h b/hw/alpha/alpha_sys.h
> index 95033d7..bc0a286 100644
> --- a/hw/alpha/alpha_sys.h
> +++ b/hw/alpha/alpha_sys.h
> @@ -11,7 +11,7 @@
> #include "hw/intc/i8259.h"
>
>
> -PCIBus *typhoon_init(ram_addr_t, ISABus **, qemu_irq *, AlphaCPU *[4],
> +PCIBus *typhoon_init(MemoryRegion *, ISABus **, qemu_irq *, AlphaCPU *[4],
> pci_map_irq_fn);
>
> /* alpha_pci.c. */
> diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
> index f2026fd..29439c7 100644
> --- a/hw/alpha/dp264.c
> +++ b/hw/alpha/dp264.c
> @@ -75,7 +75,7 @@ static void clipper_init(MachineState *machine)
> cpus[0]->env.trap_arg2 = smp_cpus;
>
> /* Init the chipset. */
> - pci_bus = typhoon_init(ram_size, &isa_bus, &rtc_irq, cpus,
> + pci_bus = typhoon_init(machine->ram, &isa_bus, &rtc_irq, cpus,
> clipper_pci_map_irq);
>
> /* Since we have an SRM-compatible PALcode, use the SRM epoch. */
> @@ -183,6 +183,7 @@ static void clipper_machine_init(MachineClass *mc)
> mc->max_cpus = 4;
> mc->is_default = 1;
> mc->default_cpu_type = ALPHA_CPU_TYPE_NAME("ev67");
> + mc->default_ram_id = "ram";
> }
>
> DEFINE_MACHINE("clipper", clipper_machine_init)
> diff --git a/hw/alpha/typhoon.c b/hw/alpha/typhoon.c
> index 179e1f7..1795e2f 100644
> --- a/hw/alpha/typhoon.c
> +++ b/hw/alpha/typhoon.c
> @@ -58,7 +58,6 @@ typedef struct TyphoonState {
> TyphoonCchip cchip;
> TyphoonPchip pchip;
> MemoryRegion dchip_region;
> - MemoryRegion ram_region;
> } TyphoonState;
>
> /* Called when one of DRIR or DIM changes. */
> @@ -817,8 +816,7 @@ static void typhoon_alarm_timer(void *opaque)
> cpu_interrupt(CPU(s->cchip.cpu[cpu]), CPU_INTERRUPT_TIMER);
> }
>
> -PCIBus *typhoon_init(ram_addr_t ram_size, ISABus **isa_bus,
> - qemu_irq *p_rtc_irq,
> +PCIBus *typhoon_init(MemoryRegion *ram, ISABus **isa_bus, qemu_irq *p_rtc_irq,
> AlphaCPU *cpus[4], pci_map_irq_fn sys_map_irq)
> {
> MemoryRegion *addr_space = get_system_memory();
> @@ -851,9 +849,7 @@ PCIBus *typhoon_init(ram_addr_t ram_size, ISABus **isa_bus,
>
> /* Main memory region, 0x00.0000.0000. Real hardware supports 32GB,
> but the address space hole reserved at this point is 8TB. */
> - memory_region_allocate_system_memory(&s->ram_region, OBJECT(s), "ram",
> - ram_size);
> - memory_region_add_subregion(addr_space, 0, &s->ram_region);
> + memory_region_add_subregion(addr_space, 0, ram);
>
> /* TIGbus, 0x801.0000.0000, 1GB. */
> /* ??? The TIGbus is used for delivering interrupts, and access to
>