qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 03/21] hw/arm/collie: Create the RAM in the board


From: Alistair Francis
Subject: Re: [PATCH 03/21] hw/arm/collie: Create the RAM in the board
Date: Mon, 21 Oct 2019 13:49:16 -0700

On Sun, Oct 20, 2019 at 3:59 PM Philippe Mathieu-Daudé
<address@hidden> wrote:
>
> The SDRAM is incorrectly created in the SA1110 SoC.
> Move its creation in the board code, this will later allow the
> board to have the QOM ownership of the RAM.
>
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>

Reviewed-by: Alistair Francis <address@hidden>

Alistair

> ---
>  hw/arm/collie.c    | 8 ++++++--
>  hw/arm/strongarm.c | 7 +------
>  hw/arm/strongarm.h | 4 +---
>  3 files changed, 8 insertions(+), 11 deletions(-)
>
> diff --git a/hw/arm/collie.c b/hw/arm/collie.c
> index b1288ccea8..970a4405cc 100644
> --- a/hw/arm/collie.c
> +++ b/hw/arm/collie.c
> @@ -27,9 +27,13 @@ static void collie_init(MachineState *machine)
>  {
>      StrongARMState *s;
>      DriveInfo *dinfo;
> -    MemoryRegion *sysmem = get_system_memory();
> +    MemoryRegion *sdram = g_new(MemoryRegion, 1);
>
> -    s = sa1110_init(sysmem, collie_binfo.ram_size, machine->cpu_type);
> +    s = sa1110_init(machine->cpu_type);
> +
> +    memory_region_allocate_system_memory(sdram, NULL, "strongarm.sdram",
> +                                         collie_binfo.ram_size);
> +    memory_region_add_subregion(get_system_memory(), SA_SDCS0, sdram);
>
>      dinfo = drive_get(IF_PFLASH, 0, 0);
>      pflash_cfi01_register(SA_CS0, "collie.fl1", 0x02000000,
> diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c
> index dc65d88a65..6bee034914 100644
> --- a/hw/arm/strongarm.c
> +++ b/hw/arm/strongarm.c
> @@ -1586,8 +1586,7 @@ static const TypeInfo strongarm_ssp_info = {
>  };
>
>  /* Main CPU functions */
> -StrongARMState *sa1110_init(MemoryRegion *sysmem,
> -                            unsigned int sdram_size, const char *cpu_type)
> +StrongARMState *sa1110_init(const char *cpu_type)
>  {
>      StrongARMState *s;
>      int i;
> @@ -1601,10 +1600,6 @@ StrongARMState *sa1110_init(MemoryRegion *sysmem,
>
>      s->cpu = ARM_CPU(cpu_create(cpu_type));
>
> -    memory_region_allocate_system_memory(&s->sdram, NULL, "strongarm.sdram",
> -                                         sdram_size);
> -    memory_region_add_subregion(sysmem, SA_SDCS0, &s->sdram);
> -
>      s->pic = sysbus_create_varargs("strongarm_pic", 0x90050000,
>                      qdev_get_gpio_in(DEVICE(s->cpu), ARM_CPU_IRQ),
>                      qdev_get_gpio_in(DEVICE(s->cpu), ARM_CPU_FIQ),
> diff --git a/hw/arm/strongarm.h b/hw/arm/strongarm.h
> index e98840b461..192821f6aa 100644
> --- a/hw/arm/strongarm.h
> +++ b/hw/arm/strongarm.h
> @@ -55,7 +55,6 @@ enum {
>
>  typedef struct {
>      ARMCPU *cpu;
> -    MemoryRegion sdram;
>      DeviceState *pic;
>      DeviceState *gpio;
>      DeviceState *ppc;
> @@ -63,7 +62,6 @@ typedef struct {
>      SSIBus *ssp_bus;
>  } StrongARMState;
>
> -StrongARMState *sa1110_init(MemoryRegion *sysmem,
> -                            unsigned int sdram_size, const char *rev);
> +StrongARMState *sa1110_init(const char *cpu_type);
>
>  #endif
> --
> 2.21.0
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]