[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
>
>
- [PATCH 00/21] hw: Let the machine be the owner of the system memory, Philippe Mathieu-Daudé, 2019/10/20
- [PATCH 01/21] hw/arm/xilinx_zynq: Use the IEC binary prefix definitions, Philippe Mathieu-Daudé, 2019/10/20
- [PATCH 02/21] hw/arm/mps2: Use the IEC binary prefix definitions, Philippe Mathieu-Daudé, 2019/10/20
- [PATCH 03/21] hw/arm/collie: Create the RAM in the board, Philippe Mathieu-Daudé, 2019/10/20
- [PATCH 04/21] hw/arm/omap2: Create the RAM in the board, Philippe Mathieu-Daudé, 2019/10/20
- [PATCH 05/21] hw/arm/omap1: Create the RAM in the board, Philippe Mathieu-Daudé, 2019/10/20
- [PATCH 06/21] hw/arm/digic4: Inline digic4_board_setup_ram() function, Philippe Mathieu-Daudé, 2019/10/20
- [PATCH 07/21] hw: Drop QOM ownership on memory_region_allocate_system_memory() calls, Philippe Mathieu-Daudé, 2019/10/20