diff options
Diffstat (limited to 'hw/armv7m.c')
-rw-r--r-- | hw/armv7m.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/hw/armv7m.c b/hw/armv7m.c index 28d41b82a6..a932f16a44 100644 --- a/hw/armv7m.c +++ b/hw/armv7m.c @@ -156,8 +156,7 @@ static void armv7m_reset(void *opaque) flash_size and sram_size are in kb. Returns the NVIC array. */ -qemu_irq *armv7m_init(MemoryRegion *address_space_mem, - int flash_size, int sram_size, +qemu_irq *armv7m_init(int flash_size, int sram_size, const char *kernel_filename, const char *cpu_model) { CPUState *env; @@ -170,9 +169,6 @@ qemu_irq *armv7m_init(MemoryRegion *address_space_mem, uint64_t lowaddr; int i; int big_endian; - MemoryRegion *sram = g_new(MemoryRegion, 1); - MemoryRegion *flash = g_new(MemoryRegion, 1); - MemoryRegion *hack = g_new(MemoryRegion, 1); flash_size *= 1024; sram_size *= 1024; @@ -198,11 +194,12 @@ qemu_irq *armv7m_init(MemoryRegion *address_space_mem, #endif /* Flash programming is done via the SCU, so pretend it is ROM. */ - memory_region_init_ram(flash, NULL, "armv7m.flash", flash_size); - memory_region_set_readonly(flash, true); - memory_region_add_subregion(address_space_mem, 0, flash); - memory_region_init_ram(sram, NULL, "armv7m.sram", sram_size); - memory_region_add_subregion(address_space_mem, 0x20000000, sram); + cpu_register_physical_memory(0, flash_size, + qemu_ram_alloc(NULL, "armv7m.flash", + flash_size) | IO_MEM_ROM); + cpu_register_physical_memory(0x20000000, sram_size, + qemu_ram_alloc(NULL, "armv7m.sram", + sram_size) | IO_MEM_RAM); armv7m_bitband_init(); nvic = qdev_create(NULL, "armv7m_nvic"); @@ -235,8 +232,9 @@ qemu_irq *armv7m_init(MemoryRegion *address_space_mem, /* Hack to map an additional page of ram at the top of the address space. This stops qemu complaining about executing code outside RAM when returning from an exception. */ - memory_region_init_ram(hack, NULL, "armv7m.hack", 0x1000); - memory_region_add_subregion(address_space_mem, 0xfffff000, hack); + cpu_register_physical_memory(0xfffff000, 0x1000, + qemu_ram_alloc(NULL, "armv7m.hack", + 0x1000) | IO_MEM_RAM); qemu_register_reset(armv7m_reset, env); return pic; |