[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/18] r2d: convert to memory API
From: |
Avi Kivity |
Subject: |
[Qemu-devel] [PATCH 07/18] r2d: convert to memory API |
Date: |
Mon, 17 Oct 2011 16:02:36 +0200 |
Signed-off-by: Avi Kivity <address@hidden>
---
hw/r2d.c | 35 +++++++++++++++--------------------
1 files changed, 15 insertions(+), 20 deletions(-)
diff --git a/hw/r2d.c b/hw/r2d.c
index 82377a0..b65fd42 100644
--- a/hw/r2d.c
+++ b/hw/r2d.c
@@ -82,6 +82,7 @@
/* output pin */
qemu_irq irl;
+ MemoryRegion iomem;
} r2d_fpga_t;
enum r2d_fpga_irq {
@@ -168,31 +169,25 @@ static uint32_t r2d_fpga_read(void *opaque,
target_phys_addr_t addr)
}
}
-static CPUReadMemoryFunc * const r2d_fpga_readfn[] = {
- r2d_fpga_read,
- r2d_fpga_read,
- NULL,
+static const MemoryRegionOps r2d_fpga_ops = {
+ .old_mmio = {
+ .read = { r2d_fpga_read, r2d_fpga_read, NULL, },
+ .write = { r2d_fpga_write, r2d_fpga_write, NULL, },
+ },
+ .endianness = DEVICE_NATIVE_ENDIAN,
};
-static CPUWriteMemoryFunc * const r2d_fpga_writefn[] = {
- r2d_fpga_write,
- r2d_fpga_write,
- NULL,
-};
-
-static qemu_irq *r2d_fpga_init(target_phys_addr_t base, qemu_irq irl)
+static qemu_irq *r2d_fpga_init(MemoryRegion *sysmem,
+ target_phys_addr_t base, qemu_irq irl)
{
- int iomemtype;
r2d_fpga_t *s;
s = g_malloc0(sizeof(r2d_fpga_t));
s->irl = irl;
- iomemtype = cpu_register_io_memory(r2d_fpga_readfn,
- r2d_fpga_writefn, s,
- DEVICE_NATIVE_ENDIAN);
- cpu_register_physical_memory(base, 0x40, iomemtype);
+ memory_region_init_io(&s->iomem, &r2d_fpga_ops, s, "r2d-fpga", 0x40);
+ memory_region_add_subregion(sysmem, base, &s->iomem);
return qemu_allocate_irqs(r2d_fpga_irq_set, s, NR_IRQS);
}
@@ -232,7 +227,7 @@ static void r2d_init(ram_addr_t ram_size,
CPUState *env;
ResetData *reset_info;
struct SH7750State *s;
- ram_addr_t sdram_addr;
+ MemoryRegion *sdram = g_new(MemoryRegion, 1);
qemu_irq *irq;
DriveInfo *dinfo;
int i;
@@ -252,11 +247,11 @@ static void r2d_init(ram_addr_t ram_size,
qemu_register_reset(main_cpu_reset, reset_info);
/* Allocate memory space */
- sdram_addr = qemu_ram_alloc(NULL, "r2d.sdram", SDRAM_SIZE);
- cpu_register_physical_memory(SDRAM_BASE, SDRAM_SIZE, sdram_addr);
+ memory_region_init_ram(sdram, NULL, "r2d.sdram", SDRAM_SIZE);
+ memory_region_add_subregion(address_space_mem, SDRAM_BASE, sdram);
/* Register peripherals */
s = sh7750_init(env);
- irq = r2d_fpga_init(0x04000000, sh7750_irl(s));
+ irq = r2d_fpga_init(address_space_mem, 0x04000000, sh7750_irl(s));
sysbus_create_varargs("sh_pci", 0x1e200000, irq[PCI_INTA], irq[PCI_INTB],
irq[PCI_INTC], irq[PCI_INTD], NULL);
--
1.7.6.3
- Re: [Qemu-devel] [PATCH 18/18] tcx: convert to memory API, (continued)
[Qemu-devel] [PATCH 11/18] spapr: convert to memory API, Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 09/18] s390-virtio: convert to memory API, Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 03/18] pxa2xx: convert to memory API (part I), Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 04/18] pxa2xx: convert to memory API (part II), Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 12/18] spitz: convert to memory API, Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 08/18] realview: convert to memory API, Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 10/18] sm501: convert to memory API, Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 07/18] r2d: convert to memory API,
Avi Kivity <=
[Qemu-devel] [PATCH 05/18] pci: simplify memory region registration, Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 15/18] sun4u: convert to memory API, Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 17/18] tc63963xb: convert to memory API, Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 13/18] strongarm: convert to memory API, Avi Kivity, 2011/10/17
[Qemu-devel] [PATCH 14/18] sun4m: convert to memory API, Avi Kivity, 2011/10/17