[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 3/6] hw/arm/collie: Create the RAM in the board
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v2 3/6] hw/arm/collie: Create the RAM in the board |
Date: |
Mon, 21 Oct 2019 21:06:50 +0200 |
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: Richard Henderson <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
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
- [PATCH v2 0/6] hw/arm: Create the RAM in the board, Philippe Mathieu-Daudé, 2019/10/21
- [PATCH v2 1/6] hw/arm/xilinx_zynq: Use the IEC binary prefix definitions, Philippe Mathieu-Daudé, 2019/10/21
- [PATCH v2 3/6] hw/arm/collie: Create the RAM in the board,
Philippe Mathieu-Daudé <=
- [PATCH v2 2/6] hw/arm/mps2: Use the IEC binary prefix definitions, Philippe Mathieu-Daudé, 2019/10/21
- [PATCH v2 4/6] hw/arm/omap2: Create the RAM in the board, Philippe Mathieu-Daudé, 2019/10/21
- [PATCH v2 5/6] hw/arm/omap1: Create the RAM in the board, Philippe Mathieu-Daudé, 2019/10/21
- [PATCH v2 6/6] hw/arm/digic4: Inline digic4_board_setup_ram() function, Philippe Mathieu-Daudé, 2019/10/21
- Re: [PATCH v2 0/6] hw/arm: Create the RAM in the board, Alistair Francis, 2019/10/21
- Re: [PATCH v2 0/6] hw/arm: Create the RAM in the board, Peter Maydell, 2019/10/22