All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabien Chouteau <chouteau@adacore.com>
To: qemu-devel@nongnu.org
Cc: avi@redhat.com
Subject: [Qemu-devel] [PATCH] Memory API conversion for serial.c (Memory mapped interface)
Date: Mon, 29 Aug 2011 17:15:51 +0200	[thread overview]
Message-ID: <1314630951-5742-1-git-send-email-chouteau@adacore.com> (raw)

This patch converts the memory mapped interface of serial.c to the new memory
API.

Signed-off-by: Fabien Chouteau <chouteau@adacore.com>
---
 hw/mips_jazz.c           |   12 +++--
 hw/mips_malta.c          |    7 ++-
 hw/musicpal.c            |   17 ++++---
 hw/omap_uart.c           |   11 +++--
 hw/pc.h                  |    9 ++--
 hw/petalogix_ml605_mmu.c |    5 +-
 hw/ppc405_uc.c           |    8 ++--
 hw/ppc440.c              |    5 +-
 hw/ppce500_mpc8544ds.c   |    5 +-
 hw/pxa2xx.c              |    9 ++--
 hw/serial.c              |  114 ++++++++++++++++++++++++++++++++++------------
 hw/sm501.c               |    7 ++-
 hw/sun4u.c               |    5 +-
 hw/virtex_ml507.c        |    4 +-
 14 files changed, 147 insertions(+), 71 deletions(-)

diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c
index f3c9f93..5d79695 100644
--- a/hw/mips_jazz.c
+++ b/hw/mips_jazz.c
@@ -262,16 +262,20 @@ void mips_jazz_init (ram_addr_t ram_size,
     /* Serial ports */
     if (serial_hds[0]) {
 #ifdef TARGET_WORDS_BIGENDIAN
-        serial_mm_init(0x80006000, 0, rc4030[8], 8000000/16, serial_hds[0], 1, 1);
+        serial_mm_init(0x80006000, get_system_memory(), 0, rc4030[8],
+                       8000000/16, serial_hds[0], 1, 1);
 #else
-        serial_mm_init(0x80006000, 0, rc4030[8], 8000000/16, serial_hds[0], 1, 0);
+        serial_mm_init(0x80006000, get_system_memory(), 0, rc4030[8],
+                       8000000/16, serial_hds[0], 1, 0);
 #endif
     }
     if (serial_hds[1]) {
 #ifdef TARGET_WORDS_BIGENDIAN
-        serial_mm_init(0x80007000, 0, rc4030[9], 8000000/16, serial_hds[1], 1, 1);
+        serial_mm_init(0x80007000, get_system_memory(), 0, rc4030[9],
+                       8000000/16, serial_hds[1], 1, 1);
 #else
-        serial_mm_init(0x80007000, 0, rc4030[9], 8000000/16, serial_hds[1], 1, 0);
+        serial_mm_init(0x80007000, get_system_memory(), 0, rc4030[9],
+                       8000000/16, serial_hds[1], 1, 0);
 #endif
     }
 
diff --git a/hw/mips_malta.c b/hw/mips_malta.c
index 86a8ba0..ddd28d3 100644
--- a/hw/mips_malta.c
+++ b/hw/mips_malta.c
@@ -46,6 +46,7 @@
 #include "elf.h"
 #include "mc146818rtc.h"
 #include "blockdev.h"
+#include "exec-memory.h"
 
 //#define DEBUG_BOARD_INIT
 
@@ -446,9 +447,11 @@ static MaltaFPGAState *malta_fpga_init(target_phys_addr_t base, qemu_irq uart_ir
     s->display = qemu_chr_new("fpga", "vc:320x200", malta_fpga_led_init);
 
 #ifdef TARGET_WORDS_BIGENDIAN
-    s->uart = serial_mm_init(base + 0x900, 3, uart_irq, 230400, uart_chr, 1, 1);
+    s->uart = serial_mm_init(base + 0x900, get_system_memory(), 3, uart_irq,
+                             230400, uart_chr, 1, 1);
 #else
-    s->uart = serial_mm_init(base + 0x900, 3, uart_irq, 230400, uart_chr, 1, 0);
+    s->uart = serial_mm_init(base + 0x900, get_system_memory(), 3, uart_irq,
+                             230400, uart_chr, 1, 0);
 #endif
 
     malta_fpga_reset(s);
diff --git a/hw/musicpal.c b/hw/musicpal.c
index 63dd391..8a3fc2f 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -19,6 +19,7 @@
 #include "console.h"
 #include "i2c.h"
 #include "blockdev.h"
+#include "exec-memory.h"
 
 #define MP_MISC_BASE            0x80002000
 #define MP_MISC_SIZE            0x00001000
@@ -1532,20 +1533,20 @@ static void musicpal_init(ram_addr_t ram_size,
 
     if (serial_hds[0]) {
 #ifdef TARGET_WORDS_BIGENDIAN
-        serial_mm_init(MP_UART1_BASE, 2, pic[MP_UART1_IRQ], 1825000,
-                       serial_hds[0], 1, 1);
+        serial_mm_init(MP_UART1_BASE, get_system_memory(), 2,
+                       pic[MP_UART1_IRQ], 1825000, serial_hds[0], 1, 1);
 #else
-        serial_mm_init(MP_UART1_BASE, 2, pic[MP_UART1_IRQ], 1825000,
-                       serial_hds[0], 1, 0);
+        serial_mm_init(MP_UART1_BASE, get_system_memory(), 2,
+                       pic[MP_UART1_IRQ], 1825000, serial_hds[0], 1, 0);
 #endif
     }
     if (serial_hds[1]) {
 #ifdef TARGET_WORDS_BIGENDIAN
-        serial_mm_init(MP_UART2_BASE, 2, pic[MP_UART2_IRQ], 1825000,
-                       serial_hds[1], 1, 1);
+        serial_mm_init(MP_UART2_BASE, get_system_memory(), 2,
+                       pic[MP_UART2_IRQ], 1825000, serial_hds[1], 1, 1);
 #else
-        serial_mm_init(MP_UART2_BASE, 2, pic[MP_UART2_IRQ], 1825000,
-                       serial_hds[1], 1, 0);
+        serial_mm_init(MP_UART2_BASE, get_system_memory(), 2,
+                       pic[MP_UART2_IRQ], 1825000, serial_hds[1], 1, 0);
 #endif
     }
 
diff --git a/hw/omap_uart.c b/hw/omap_uart.c
index 191a0c2..f8ca12f 100644
--- a/hw/omap_uart.c
+++ b/hw/omap_uart.c
@@ -22,6 +22,7 @@
 #include "omap.h"
 /* We use pc-style serial ports.  */
 #include "pc.h"
+#include "exec-memory.h"
 
 /* UARTs */
 struct omap_uart_s {
@@ -61,11 +62,13 @@ struct omap_uart_s *omap_uart_init(target_phys_addr_t base,
     s->fclk = fclk;
     s->irq = irq;
 #ifdef TARGET_WORDS_BIGENDIAN
-    s->serial = serial_mm_init(base, 2, irq, omap_clk_getrate(fclk)/16,
+    s->serial = serial_mm_init(base, get_system_memory(), 2, irq,
+                               omap_clk_getrate(fclk)/16,
                                chr ?: qemu_chr_new(label, "null", NULL), 1,
                                1);
 #else
-    s->serial = serial_mm_init(base, 2, irq, omap_clk_getrate(fclk)/16,
+    s->serial = serial_mm_init(base, get_system_memory(), 2, irq,
+                               omap_clk_getrate(fclk)/16,
                                chr ?: qemu_chr_new(label, "null", NULL), 1,
                                0);
 #endif
@@ -183,12 +186,12 @@ void omap_uart_attach(struct omap_uart_s *s, CharDriverState *chr)
 {
     /* TODO: Should reuse or destroy current s->serial */
 #ifdef TARGET_WORDS_BIGENDIAN
-    s->serial = serial_mm_init(s->base, 2, s->irq,
+    s->serial = serial_mm_init(s->base, get_system_memory(), 2, s->irq,
                                omap_clk_getrate(s->fclk) / 16,
                                chr ?: qemu_chr_new("null", "null", NULL), 1,
                                1);
 #else
-    s->serial = serial_mm_init(s->base, 2, s->irq,
+    s->serial = serial_mm_init(s->base, get_system_memory(), 2, s->irq,
                                omap_clk_getrate(s->fclk) / 16,
                                chr ?: qemu_chr_new("null", "null", NULL), 1,
                                0);
diff --git a/hw/pc.h b/hw/pc.h
index dae736e..3cbe945 100644
--- a/hw/pc.h
+++ b/hw/pc.h
@@ -15,10 +15,11 @@
 
 SerialState *serial_init(int base, qemu_irq irq, int baudbase,
                          CharDriverState *chr);
-SerialState *serial_mm_init (target_phys_addr_t base, int it_shift,
-                             qemu_irq irq, int baudbase,
-                             CharDriverState *chr, int ioregister,
-                             int be);
+
+SerialState *serial_mm_init(target_phys_addr_t base, MemoryRegion *mr,
+                            int it_shift, qemu_irq irq, int baudbase,
+                            CharDriverState *chr, int ioregister, int be);
+
 static inline bool serial_isa_init(int index, CharDriverState *chr)
 {
     ISADevice *dev;
diff --git a/hw/petalogix_ml605_mmu.c b/hw/petalogix_ml605_mmu.c
index e3ca310..a5c2405 100644
--- a/hw/petalogix_ml605_mmu.c
+++ b/hw/petalogix_ml605_mmu.c
@@ -38,6 +38,7 @@
 #include "elf.h"
 #include "blockdev.h"
 #include "pc.h"
+#include "exec-memory.h"
 
 #include "microblaze_pic_cpu.h"
 #include "xilinx_axidma.h"
@@ -185,8 +186,8 @@ petalogix_ml605_init(ram_addr_t ram_size,
         irq[i] = qdev_get_gpio_in(dev, i);
     }
 
-    serial_mm_init(UART16550_BASEADDR + 0x1000, 2, irq[5], 115200,
-                   serial_hds[0], 1, 0);
+    serial_mm_init(UART16550_BASEADDR + 0x1000, get_system_memory(), 2, irq[5],
+                   115200, serial_hds[0], 1, 0);
 
     /* 2 timers at irq 2 @ 100 Mhz.  */
     xilinx_timer_create(TIMER_BASEADDR, irq[2], 2, 100 * 1000000);
diff --git a/hw/ppc405_uc.c b/hw/ppc405_uc.c
index 9d5d2af..7ba34bf 100644
--- a/hw/ppc405_uc.c
+++ b/hw/ppc405_uc.c
@@ -2149,11 +2149,11 @@ CPUState *ppc405cr_init (MemoryRegion ram_memories[4],
     ppc405_dma_init(env, dma_irqs);
     /* Serial ports */
     if (serial_hds[0] != NULL) {
-        serial_mm_init(0xef600300, 0, pic[0], PPC_SERIAL_MM_BAUDBASE,
+        serial_mm_init(0xef600300, get_system_memory(), 0, pic[0], PPC_SERIAL_MM_BAUDBASE,
                        serial_hds[0], 1, 1);
     }
     if (serial_hds[1] != NULL) {
-        serial_mm_init(0xef600400, 0, pic[1], PPC_SERIAL_MM_BAUDBASE,
+        serial_mm_init(0xef600400, get_system_memory(), 0, pic[1], PPC_SERIAL_MM_BAUDBASE,
                        serial_hds[1], 1, 1);
     }
     /* IIC controller */
@@ -2504,11 +2504,11 @@ CPUState *ppc405ep_init (MemoryRegion ram_memories[2],
     ppc405_gpio_init(0xef600700);
     /* Serial ports */
     if (serial_hds[0] != NULL) {
-        serial_mm_init(0xef600300, 0, pic[0], PPC_SERIAL_MM_BAUDBASE,
+        serial_mm_init(0xef600300, get_system_memory(), 0, pic[0], PPC_SERIAL_MM_BAUDBASE,
                        serial_hds[0], 1, 1);
     }
     if (serial_hds[1] != NULL) {
-        serial_mm_init(0xef600400, 0, pic[1], PPC_SERIAL_MM_BAUDBASE,
+        serial_mm_init(0xef600400, get_system_memory(), 0, pic[1], PPC_SERIAL_MM_BAUDBASE,
                        serial_hds[1], 1, 1);
     }
     /* OCM */
diff --git a/hw/ppc440.c b/hw/ppc440.c
index 5885ff0..5cbd4b8 100644
--- a/hw/ppc440.c
+++ b/hw/ppc440.c
@@ -20,6 +20,7 @@
 #include "ppc405.h"
 #include "sysemu.h"
 #include "kvm.h"
+#include "exec-memory.h"
 
 #define PPC440EP_PCI_CONFIG     0xeec00000
 #define PPC440EP_PCI_INTACK     0xeed00000
@@ -92,11 +93,11 @@ CPUState *ppc440ep_init(ram_addr_t *ram_size, PCIBus **pcip,
     isa_mmio_init(PPC440EP_PCI_IO, PPC440EP_PCI_IOLEN);
 
     if (serial_hds[0] != NULL) {
-        serial_mm_init(0xef600300, 0, pic[0], PPC_SERIAL_MM_BAUDBASE,
+        serial_mm_init(0xef600300, get_system_memory(), 0, pic[0], PPC_SERIAL_MM_BAUDBASE,
                        serial_hds[0], 1, 1);
     }
     if (serial_hds[1] != NULL) {
-        serial_mm_init(0xef600400, 0, pic[1], PPC_SERIAL_MM_BAUDBASE,
+        serial_mm_init(0xef600400, get_system_memory(), 0, pic[1], PPC_SERIAL_MM_BAUDBASE,
                        serial_hds[1], 1, 1);
     }
 
diff --git a/hw/ppce500_mpc8544ds.c b/hw/ppce500_mpc8544ds.c
index 1274a3e..620ad65 100644
--- a/hw/ppce500_mpc8544ds.c
+++ b/hw/ppce500_mpc8544ds.c
@@ -32,6 +32,7 @@
 #include "loader.h"
 #include "elf.h"
 #include "sysbus.h"
+#include "exec-memory.h"
 
 #define BINARY_DEVICE_TREE_FILE    "mpc8544ds.dtb"
 #define UIMAGE_LOAD_BASE           0
@@ -274,13 +275,13 @@ static void mpc8544ds_init(ram_addr_t ram_size,
 
     /* Serial */
     if (serial_hds[0]) {
-        serial_mm_init(MPC8544_SERIAL0_REGS_BASE,
+        serial_mm_init(MPC8544_SERIAL0_REGS_BASE, get_system_memory(),
                        0, mpic[12+26], 399193,
                        serial_hds[0], 1, 1);
     }
 
     if (serial_hds[1]) {
-        serial_mm_init(MPC8544_SERIAL1_REGS_BASE,
+        serial_mm_init(MPC8544_SERIAL1_REGS_BASE, get_system_memory(),
                        0, mpic[12+26], 399193,
                        serial_hds[0], 1, 1);
     }
diff --git a/hw/pxa2xx.c b/hw/pxa2xx.c
index 2aa8760..2bacf1c 100644
--- a/hw/pxa2xx.c
+++ b/hw/pxa2xx.c
@@ -15,6 +15,7 @@
 #include "ssi.h"
 #include "qemu-char.h"
 #include "blockdev.h"
+#include "exec-memory.h"
 
 static struct {
     target_phys_addr_t io_base;
@@ -2116,11 +2117,11 @@ PXA2xxState *pxa270_init(unsigned int sdram_size, const char *revision)
     for (i = 0; pxa270_serial[i].io_base; i ++)
         if (serial_hds[i])
 #ifdef TARGET_WORDS_BIGENDIAN
-            serial_mm_init(pxa270_serial[i].io_base, 2,
+            serial_mm_init(pxa270_serial[i].io_base, get_system_memory(), 2,
                             qdev_get_gpio_in(s->pic, pxa270_serial[i].irqn),
                             14857000 / 16, serial_hds[i], 1, 1);
 #else
-            serial_mm_init(pxa270_serial[i].io_base, 2,
+            serial_mm_init(pxa270_serial[i].io_base, get_system_memory(), 2,
                             qdev_get_gpio_in(s->pic, pxa270_serial[i].irqn),
                             14857000 / 16, serial_hds[i], 1, 0);
 #endif
@@ -2251,11 +2252,11 @@ PXA2xxState *pxa255_init(unsigned int sdram_size)
     for (i = 0; pxa255_serial[i].io_base; i ++)
         if (serial_hds[i]) {
 #ifdef TARGET_WORDS_BIGENDIAN
-            serial_mm_init(pxa255_serial[i].io_base, 2,
+            serial_mm_init(pxa255_serial[i].io_base, get_system_memory(), 2,
                             qdev_get_gpio_in(s->pic, pxa255_serial[i].irqn),
                             14745600 / 16, serial_hds[i], 1, 1);
 #else
-            serial_mm_init(pxa255_serial[i].io_base, 2,
+            serial_mm_init(pxa255_serial[i].io_base, get_system_memory(), 2,
                             qdev_get_gpio_in(s->pic, pxa255_serial[i].irqn),
                             14745600 / 16, serial_hds[i], 1, 0);
 #endif
diff --git a/hw/serial.c b/hw/serial.c
index ed7fd0a..fcbb6df 100644
--- a/hw/serial.c
+++ b/hw/serial.c
@@ -153,6 +153,8 @@ struct SerialState {
     int poll_msl;
 
     struct QEMUTimer *modem_status_poll;
+
+    MemoryRegion  mem;
 };
 
 typedef struct ISASerialState {
@@ -899,37 +901,89 @@ static void serial_mm_writel_le(void *opaque, target_phys_addr_t addr,
     serial_ioport_write(s, addr >> s->it_shift, value);
 }
 
-static CPUReadMemoryFunc * const serial_mm_read_be[] = {
-    &serial_mm_readb,
-    &serial_mm_readw_be,
-    &serial_mm_readl_be,
-};
+static void serial_le_write(void *opaque, target_phys_addr_t addr,
+                            uint64_t value, unsigned size)
+{
+    switch(size) {
+    case 1:
+        return serial_mm_writeb(opaque, addr, value);
+        break;
+    case 2:
+        return serial_mm_writew_le(opaque, addr, value);
+        break;
+    case 4:
+        return serial_mm_writel_le(opaque, addr, value);
+        break;
+    }
+}
 
-static CPUWriteMemoryFunc * const serial_mm_write_be[] = {
-    &serial_mm_writeb,
-    &serial_mm_writew_be,
-    &serial_mm_writel_be,
-};
+static uint64_t serial_le_read(void *opaque, target_phys_addr_t addr,
+                               unsigned size)
+{
+    switch(size) {
+    case 1:
+        return serial_mm_readb(opaque, addr);
+        break;
+    case 2:
+        return serial_mm_readw_le(opaque, addr);
+        break;
+    case 4:
+        return serial_mm_readl_le(opaque, addr);
+        break;
+    }
+    return 0;
+}
 
-static CPUReadMemoryFunc * const serial_mm_read_le[] = {
-    &serial_mm_readb,
-    &serial_mm_readw_le,
-    &serial_mm_readl_le,
+static const MemoryRegionOps serial_le_ops = {
+    .read = serial_le_read,
+    .write = serial_le_write,
+    .endianness = DEVICE_NATIVE_ENDIAN,
 };
 
-static CPUWriteMemoryFunc * const serial_mm_write_le[] = {
-    &serial_mm_writeb,
-    &serial_mm_writew_le,
-    &serial_mm_writel_le,
+static void serial_be_write(void *opaque, target_phys_addr_t addr,
+                            uint64_t value, unsigned size)
+{
+    switch(size) {
+    case 1:
+        return serial_mm_writeb(opaque, addr, value);
+        break;
+    case 2:
+        return serial_mm_writew_be(opaque, addr, value);
+        break;
+    case 4:
+        return serial_mm_writel_be(opaque, addr, value);
+        break;
+    }
+}
+
+static uint64_t serial_be_read(void *opaque, target_phys_addr_t addr,
+                               unsigned size)
+{
+    switch(size) {
+    case 1:
+        return serial_mm_readb(opaque, addr);
+        break;
+    case 2:
+        return serial_mm_readw_be(opaque, addr);
+        break;
+    case 4:
+        return serial_mm_readl_be(opaque, addr);
+        break;
+    }
+    return 0;
+}
+
+static const MemoryRegionOps serial_be_ops = {
+    .read = serial_be_read,
+    .write = serial_be_write,
+    .endianness = DEVICE_NATIVE_ENDIAN,
 };
 
-SerialState *serial_mm_init (target_phys_addr_t base, int it_shift,
-                             qemu_irq irq, int baudbase,
-                             CharDriverState *chr, int ioregister,
-                             int be)
+SerialState *serial_mm_init(target_phys_addr_t base, MemoryRegion *mr,
+                            int it_shift, qemu_irq irq, int baudbase,
+                            CharDriverState *chr, int ioregister, int be)
 {
     SerialState *s;
-    int s_io_memory;
 
     s = g_malloc0(sizeof(SerialState));
 
@@ -943,16 +997,16 @@ SerialState *serial_mm_init (target_phys_addr_t base, int it_shift,
 
     if (ioregister) {
         if (be) {
-            s_io_memory = cpu_register_io_memory(serial_mm_read_be,
-                                                 serial_mm_write_be, s,
-                                                 DEVICE_NATIVE_ENDIAN);
+            memory_region_init_io(&s->mem, &serial_be_ops, s, "serial",
+                                  8 << it_shift);
         } else {
-            s_io_memory = cpu_register_io_memory(serial_mm_read_le,
-                                                 serial_mm_write_le, s,
-                                                 DEVICE_NATIVE_ENDIAN);
+            memory_region_init_io(&s->mem, &serial_le_ops, s, "serial",
+                                  8 << it_shift);
         }
-        cpu_register_physical_memory(base, 8 << it_shift, s_io_memory);
+
+        memory_region_add_subregion(mr, base, &s->mem);
     }
+
     serial_update_msl(s);
     return s;
 }
diff --git a/hw/sm501.c b/hw/sm501.c
index 1ed0a7e..fecb253 100644
--- a/hw/sm501.c
+++ b/hw/sm501.c
@@ -30,6 +30,7 @@
 #include "sysbus.h"
 #include "qdev-addr.h"
 #include "range.h"
+#include "exec-memory.h"
 
 /*
  * Status: 2010/05/07
@@ -1441,11 +1442,13 @@ void sm501_init(uint32_t base, uint32_t local_mem_bytes, qemu_irq irq,
     /* bridge to serial emulation module */
     if (chr) {
 #ifdef TARGET_WORDS_BIGENDIAN
-        serial_mm_init(base + MMIO_BASE_OFFSET + SM501_UART0, 2,
+        serial_mm_init(base + MMIO_BASE_OFFSET + SM501_UART0,
+                       get_system_memory(), 2,
                        NULL, /* TODO : chain irq to IRL */
                        115200, chr, 1, 1);
 #else
-        serial_mm_init(base + MMIO_BASE_OFFSET + SM501_UART0, 2,
+        serial_mm_init(base + MMIO_BASE_OFFSET + SM501_UART0,
+                       get_system_memory(), 2,
                        NULL, /* TODO : chain irq to IRL */
                        115200, chr, 1, 0);
 #endif
diff --git a/hw/sun4u.c b/hw/sun4u.c
index 32e6ab9..a882d2e 100644
--- a/hw/sun4u.c
+++ b/hw/sun4u.c
@@ -38,6 +38,7 @@
 #include "loader.h"
 #include "elf.h"
 #include "blockdev.h"
+#include "exec-memory.h"
 
 //#define DEBUG_IRQ
 //#define DEBUG_EBUS
@@ -771,8 +772,8 @@ static void sun4uv_init(ram_addr_t RAM_size,
 
     i = 0;
     if (hwdef->console_serial_base) {
-        serial_mm_init(hwdef->console_serial_base, 0, NULL, 115200,
-                       serial_hds[i], 1, 1);
+        serial_mm_init(hwdef->console_serial_base, get_system_memory(), 0,
+                       NULL, 115200, serial_hds[i], 1, 1);
         i++;
     }
     for(; i < MAX_SERIAL_PORTS; i++) {
diff --git a/hw/virtex_ml507.c b/hw/virtex_ml507.c
index 333050c..26c90c6 100644
--- a/hw/virtex_ml507.c
+++ b/hw/virtex_ml507.c
@@ -34,6 +34,7 @@
 #include "loader.h"
 #include "elf.h"
 #include "qemu-log.h"
+#include "exec-memory.h"
 
 #include "ppc.h"
 #include "ppc4xx.h"
@@ -228,7 +229,8 @@ static void virtex_init(ram_addr_t ram_size,
         irq[i] = qdev_get_gpio_in(dev, i);
     }
 
-    serial_mm_init(0x83e01003ULL, 2, irq[9], 115200, serial_hds[0], 1, 0);
+    serial_mm_init(0x83e01003ULL, get_system_memory(), 2, irq[9],
+                   115200, serial_hds[0], 1, 0);
 
     /* 2 timers at irq 2 @ 62 Mhz.  */
     xilinx_timer_create(0x83c00000, irq[3], 2, 62 * 1000000);
-- 
1.7.4.1

             reply	other threads:[~2011-08-29 15:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-29 15:15 Fabien Chouteau [this message]
2011-08-29 15:23 ` [Qemu-devel] [PATCH] Memory API conversion for serial.c (Memory mapped interface) Avi Kivity
2011-08-29 15:52   ` Fabien Chouteau

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=1314630951-5742-1-git-send-email-chouteau@adacore.com \
    --to=chouteau@adacore.com \
    --cc=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.