qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 22/24] milkymist-minimac2: convert to memory API
Date: Wed, 24 Aug 2011 13:11:21 +0300	[thread overview]
Message-ID: <1314180683-8227-23-git-send-email-avi@redhat.com> (raw)
In-Reply-To: <1314180683-8227-1-git-send-email-avi@redhat.com>

Signed-off-by: Avi Kivity <avi@redhat.com>
---
 hw/milkymist-minimac2.c |   43 +++++++++++++++++++++----------------------
 1 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/hw/milkymist-minimac2.c b/hw/milkymist-minimac2.c
index cd36026..fb48e37 100644
--- a/hw/milkymist-minimac2.c
+++ b/hw/milkymist-minimac2.c
@@ -97,6 +97,8 @@ struct MilkymistMinimac2State {
     NICConf conf;
     char *phy_model;
     target_phys_addr_t buffers_base;
+    MemoryRegion buffers;
+    MemoryRegion regs_region;
 
     qemu_irq rx_irq;
     qemu_irq tx_irq;
@@ -320,8 +322,8 @@ static ssize_t minimac2_rx(VLANClientState *nc, const uint8_t *buf, size_t size)
     return size;
 }
 
-static uint32_t
-minimac2_read(void *opaque, target_phys_addr_t addr)
+static uint64_t
+minimac2_read(void *opaque, target_phys_addr_t addr, unsigned size)
 {
     MilkymistMinimac2State *s = opaque;
     uint32_t r = 0;
@@ -350,7 +352,8 @@ minimac2_read(void *opaque, target_phys_addr_t addr)
 }
 
 static void
-minimac2_write(void *opaque, target_phys_addr_t addr, uint32_t value)
+minimac2_write(void *opaque, target_phys_addr_t addr, uint64_t value,
+               unsigned size)
 {
     MilkymistMinimac2State *s = opaque;
 
@@ -395,16 +398,14 @@ minimac2_write(void *opaque, target_phys_addr_t addr, uint32_t value)
     }
 }
 
-static CPUReadMemoryFunc * const minimac2_read_fn[] = {
-    NULL,
-    NULL,
-    &minimac2_read,
-};
-
-static CPUWriteMemoryFunc * const minimac2_write_fn[] = {
-    NULL,
-    NULL,
-    &minimac2_write,
+static const MemoryRegionOps minimac2_ops = {
+    .read = minimac2_read,
+    .write = minimac2_write,
+    .valid = {
+        .min_access_size = 4,
+        .max_access_size = 4,
+    },
+    .endianness = DEVICE_NATIVE_ENDIAN,
 };
 
 static int minimac2_can_rx(VLANClientState *nc)
@@ -457,25 +458,23 @@ static NetClientInfo net_milkymist_minimac2_info = {
 static int milkymist_minimac2_init(SysBusDevice *dev)
 {
     MilkymistMinimac2State *s = FROM_SYSBUS(typeof(*s), dev);
-    int regs;
-    ram_addr_t buffers;
     size_t buffers_size = TARGET_PAGE_ALIGN(3 * MINIMAC2_BUFFER_SIZE);
 
     sysbus_init_irq(dev, &s->rx_irq);
     sysbus_init_irq(dev, &s->tx_irq);
 
-    regs = cpu_register_io_memory(minimac2_read_fn, minimac2_write_fn, s,
-            DEVICE_NATIVE_ENDIAN);
-    sysbus_init_mmio(dev, R_MAX * 4, regs);
+    memory_region_init_io(&s->regs_region, &minimac2_ops, s,
+                          "minimac2-mmio", R_MAX * 4);
+    sysbus_init_mmio_region(dev, &s->regs_region);
 
     /* register buffers memory */
-    buffers = qemu_ram_alloc(NULL, "milkymist_minimac2.buffers", buffers_size);
-    s->rx0_buf = qemu_get_ram_ptr(buffers);
+    memory_region_init_ram(&s->buffers, NULL, "milkymist_minimac2.buffers",
+                           buffers_size);
+    s->rx0_buf = memory_region_get_ram_ptr(&s->buffers);
     s->rx1_buf = s->rx0_buf + MINIMAC2_BUFFER_SIZE;
     s->tx_buf = s->rx1_buf + MINIMAC2_BUFFER_SIZE;
 
-    cpu_register_physical_memory(s->buffers_base, buffers_size,
-            buffers | IO_MEM_RAM);
+    sysbus_add_memory(dev, s->buffers_base, &s->buffers);
 
     qemu_macaddr_default_if_unset(&s->conf.macaddr);
     s->nic = qemu_new_nic(&net_milkymist_minimac2_info, &s->conf,
-- 
1.7.5.3

  parent reply	other threads:[~2011-08-24 10:11 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-24 10:10 [Qemu-devel] [PATCH 00/24] Memory API conversions, batch 5 Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 01/24] arm_sysctl: convert to memory API Avi Kivity
2011-08-24 10:23   ` Peter Maydell
2011-08-24 10:42     ` Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 02/24] stellaris_enet: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 03/24] sysbus: add helpers to add and delete memory regions to the system bus Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 04/24] pci_host: convert conf index and data ports to memory API Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 05/24] ReadWriteHandler: remove Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 06/24] QEMUMachine: pass address space to machine init function Avi Kivity
2011-08-24 10:32   ` Peter Maydell
2011-08-24 10:46     ` Avi Kivity
2011-08-24 10:53       ` Peter Maydell
2011-08-24 11:18         ` Avi Kivity
2011-08-24 12:26           ` Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 07/24] an5206: convert to memory API Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 08/24] armv7m: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 09/24] axis_dev88: convert to memory API (RAM only) Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 10/24] sysbus: add sysbus_add_memory_overlap() Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 11/24] integratorcp: convert to memory API (RAM/flash only) Avi Kivity
2011-08-24 11:22   ` Peter Maydell
2011-08-24 11:26     ` Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 12/24] leon3: convert to memory API Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 13/24] cirrus: wrap memory update in a transaction Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 14/24] piix_pci: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 15/24] Makefile.hw: allow hw/ files to include glib headers Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 16/24] pflash_cfi01/pflash_cfi02: convert to memory API Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 17/24] dummy_m68k: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 18/24] g364fb: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 19/24] lm32_boards: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 20/24] mainstone: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 21/24] mcf5208: " Avi Kivity
2011-08-24 10:35   ` Peter Maydell
2011-08-24 10:47     ` Avi Kivity
2011-08-24 11:38       ` Peter Maydell
2011-08-24 11:39         ` Avi Kivity
2011-08-24 10:11 ` Avi Kivity [this message]
2011-08-24 10:11 ` [Qemu-devel] [PATCH 23/24] milkymist-softusb: " Avi Kivity
2011-08-24 10:11 ` [Qemu-devel] [PATCH 24/24] milkymist: " Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1314180683-8227-23-git-send-email-avi@redhat.com \
    --to=avi@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).