mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
hw/arm/omap1: Create the RAM in the board
The SDRAM is incorrectly created in the OMAP310 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 <richard.henderson@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 20191021190653.9511-6-philmd@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
e285e8678e
commit
4387b253ac
4 changed files with 19 additions and 15 deletions
|
@ -23,6 +23,7 @@
|
|||
#include "qapi/error.h"
|
||||
#include "qemu-common.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "hw/boards.h"
|
||||
#include "hw/hw.h"
|
||||
#include "hw/irq.h"
|
||||
|
@ -3858,8 +3859,7 @@ static int omap_validate_tipb_mpui_addr(struct omap_mpu_state_s *s,
|
|||
return range_covers_byte(0xe1010000, 0xe1020004 - 0xe1010000, addr);
|
||||
}
|
||||
|
||||
struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
|
||||
unsigned long sdram_size,
|
||||
struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *dram,
|
||||
const char *cpu_type)
|
||||
{
|
||||
int i;
|
||||
|
@ -3867,11 +3867,12 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
|
|||
qemu_irq dma_irqs[6];
|
||||
DriveInfo *dinfo;
|
||||
SysBusDevice *busdev;
|
||||
MemoryRegion *system_memory = get_system_memory();
|
||||
|
||||
/* Core */
|
||||
s->mpu_model = omap310;
|
||||
s->cpu = ARM_CPU(cpu_create(cpu_type));
|
||||
s->sdram_size = sdram_size;
|
||||
s->sdram_size = memory_region_size(dram);
|
||||
s->sram_size = OMAP15XX_SRAM_SIZE;
|
||||
|
||||
s->wakeup = qemu_allocate_irq(omap_mpu_wakeup, s, 0);
|
||||
|
@ -3880,9 +3881,6 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
|
|||
omap_clk_init(s);
|
||||
|
||||
/* Memory-mapped stuff */
|
||||
memory_region_allocate_system_memory(&s->emiff_ram, NULL, "omap1.dram",
|
||||
s->sdram_size);
|
||||
memory_region_add_subregion(system_memory, OMAP_EMIFF_BASE, &s->emiff_ram);
|
||||
memory_region_init_ram(&s->imif_ram, NULL, "omap1.sram", s->sram_size,
|
||||
&error_fatal);
|
||||
memory_region_add_subregion(system_memory, OMAP_IMIF_BASE, &s->imif_ram);
|
||||
|
@ -3925,7 +3923,7 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
|
|||
s->port[tipb_mpui].addr_valid = omap_validate_tipb_mpui_addr;
|
||||
|
||||
/* Register SDRAM and SRAM DMA ports for fast transfers. */
|
||||
soc_dma_port_add_mem(s->dma, memory_region_get_ram_ptr(&s->emiff_ram),
|
||||
soc_dma_port_add_mem(s->dma, memory_region_get_ram_ptr(dram),
|
||||
OMAP_EMIFF_BASE, s->sdram_size);
|
||||
soc_dma_port_add_mem(s->dma, memory_region_get_ram_ptr(&s->imif_ram),
|
||||
OMAP_IMIF_BASE, s->sram_size);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue