From: Avi Kivity <avi@redhat.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 12/18] spitz: convert to memory API
Date: Mon, 17 Oct 2011 16:02:41 +0200 [thread overview]
Message-ID: <1318860167-14014-13-git-send-email-avi@redhat.com> (raw)
In-Reply-To: <1318860167-14014-1-git-send-email-avi@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
---
hw/spitz.c | 48 ++++++++++++++++++------------------------------
1 files changed, 18 insertions(+), 30 deletions(-)
diff --git a/hw/spitz.c b/hw/spitz.c
index 6f8a94c..23f9d41 100644
--- a/hw/spitz.c
+++ b/hw/spitz.c
@@ -49,6 +49,7 @@
typedef struct {
SysBusDevice busdev;
+ MemoryRegion iomem;
DeviceState *nand;
uint8_t ctl;
uint8_t manf_id;
@@ -56,7 +57,7 @@
ECCState ecc;
} SLNANDState;
-static uint32_t sl_readb(void *opaque, target_phys_addr_t addr)
+static uint64_t sl_read(void *opaque, target_phys_addr_t addr, unsigned size)
{
SLNANDState *s = (SLNANDState *) opaque;
int ryby;
@@ -86,6 +87,10 @@ static uint32_t sl_readb(void *opaque, target_phys_addr_t addr)
return s->ctl;
case FLASH_FLASHIO:
+ if (size == 4) {
+ return ecc_digest(&s->ecc, nand_getio(s->nand)) |
+ (ecc_digest(&s->ecc, nand_getio(s->nand)) << 16);
+ }
return ecc_digest(&s->ecc, nand_getio(s->nand));
default:
@@ -94,19 +99,8 @@ static uint32_t sl_readb(void *opaque, target_phys_addr_t addr)
return 0;
}
-static uint32_t sl_readl(void *opaque, target_phys_addr_t addr)
-{
- SLNANDState *s = (SLNANDState *) opaque;
-
- if (addr == FLASH_FLASHIO)
- return ecc_digest(&s->ecc, nand_getio(s->nand)) |
- (ecc_digest(&s->ecc, nand_getio(s->nand)) << 16);
-
- return sl_readb(opaque, addr);
-}
-
-static void sl_writeb(void *opaque, target_phys_addr_t addr,
- uint32_t value)
+static void sl_write(void *opaque, target_phys_addr_t addr,
+ uint64_t value, unsigned size)
{
SLNANDState *s = (SLNANDState *) opaque;
@@ -140,15 +134,10 @@ enum {
FLASH_1024M,
};
-static CPUReadMemoryFunc * const sl_readfn[] = {
- sl_readb,
- sl_readb,
- sl_readl,
-};
-static CPUWriteMemoryFunc * const sl_writefn[] = {
- sl_writeb,
- sl_writeb,
- sl_writeb,
+static const MemoryRegionOps sl_ops = {
+ .read = sl_read,
+ .write = sl_write,
+ .endianness = DEVICE_NATIVE_ENDIAN,
};
static void sl_flash_register(PXA2xxState *cpu, int size)
@@ -168,7 +157,6 @@ static void sl_flash_register(PXA2xxState *cpu, int size)
}
static int sl_nand_init(SysBusDevice *dev) {
- int iomemtype;
SLNANDState *s;
DriveInfo *nand;
@@ -178,10 +166,8 @@ static int sl_nand_init(SysBusDevice *dev) {
nand = drive_get(IF_MTD, 0, 0);
s->nand = nand_init(nand ? nand->bdrv : NULL, s->manf_id, s->chip_id);
- iomemtype = cpu_register_io_memory(sl_readfn,
- sl_writefn, s, DEVICE_NATIVE_ENDIAN);
-
- sysbus_init_mmio(dev, 0x40, iomemtype);
+ memory_region_init_io(&s->iomem, &sl_ops, s, "sl", 0x40);
+ sysbus_init_mmio_region(dev, &s->iomem);
return 0;
}
@@ -898,6 +884,7 @@ static void spitz_common_init(ram_addr_t ram_size,
PXA2xxState *cpu;
DeviceState *scp0, *scp1 = NULL;
MemoryRegion *address_space_mem = get_system_memory();
+ MemoryRegion *rom = g_new(MemoryRegion, 1);
if (!cpu_model)
cpu_model = (model == terrier) ? "pxa270-c5" : "pxa270-c0";
@@ -907,8 +894,9 @@ static void spitz_common_init(ram_addr_t ram_size,
sl_flash_register(cpu, (model == spitz) ? FLASH_128M : FLASH_1024M);
- cpu_register_physical_memory(0, SPITZ_ROM,
- qemu_ram_alloc(NULL, "spitz.rom", SPITZ_ROM) | IO_MEM_ROM);
+ memory_region_init_ram(rom, NULL, "spitz.rom", SPITZ_ROM);
+ memory_region_set_readonly(rom, true);
+ memory_region_add_subregion(address_space_mem, 0, rom);
/* Setup peripherals */
spitz_keyboard_register(cpu);
--
1.7.6.3
next prev parent reply other threads:[~2011-10-17 14:03 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-17 14:02 [Qemu-devel] [PATCH 00/18] Memory API conversions, batch 12 Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 01/18] ppc_oldworld: convert to memory API Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 02/18] ppc_prep: " Avi Kivity
2012-01-05 14:45 ` Andreas Färber
2012-01-05 14:57 ` Avi Kivity
2012-01-05 15:32 ` Andreas Färber
2011-10-17 14:02 ` [Qemu-devel] [PATCH 03/18] pxa2xx: convert to memory API (part I) Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 04/18] pxa2xx: convert to memory API (part II) Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 05/18] pci: simplify memory region registration Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 06/18] ppcr500_mpc8544ds: convert to memory API Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 07/18] r2d: " Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 08/18] realview: " Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 09/18] s390-virtio: " Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 10/18] sm501: " Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 11/18] spapr: " Avi Kivity
2011-10-17 14:02 ` Avi Kivity [this message]
2011-10-17 14:02 ` [Qemu-devel] [PATCH 13/18] strongarm: " Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 14/18] sun4m: " Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 15/18] sun4u: " Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 16/18] syborg: " Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 17/18] tc63963xb: " Avi Kivity
2011-10-17 14:02 ` [Qemu-devel] [PATCH 18/18] tcx: " Avi Kivity
2011-10-17 19:13 ` Blue Swirl
2011-10-17 20:48 ` Avi Kivity
2011-10-18 18:08 ` Blue Swirl
2011-10-18 19:40 ` Avi Kivity
2011-10-18 19:59 ` Blue Swirl
-- strict thread matches above, loose matches on Subject: below --
2011-10-19 10:59 [Qemu-devel] [PULL 00/18] Memory API conversions, batch 12 Avi Kivity
2011-10-19 10:59 ` [Qemu-devel] [PATCH 12/18] spitz: convert to memory API 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=1318860167-14014-13-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).