Commit 3cd892da authored by Philippe Mathieu-Daudé's avatar Philippe Mathieu-Daudé Committed by Peter Maydell
Browse files

hw/arm/collie: Create the RAM in the board



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.

Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
Signed-off-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: default avatarAlistair Francis <alistair.francis@wdc.com>
Message-id: 20191021190653.9511-4-philmd@redhat.com
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent eba59997
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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,
+1 −6
Original line number Diff line number Diff line
@@ -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),
+1 −3
Original line number Diff line number Diff line
@@ -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