|
@@ -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);
|