On Sun, Oct 20, 2019 at 3:59 PM Philippe Mathieu-Daudé <phi...@redhat.com> 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é <phi...@redhat.com>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> 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 > >