[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 17/24] arm11mpcore: use sysbus_init_mmio_cb2
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 17/24] arm11mpcore: use sysbus_init_mmio_cb2 |
Date: |
Fri, 12 Aug 2011 14:23:44 +0100 |
On 8 August 2011 18:07, Avi Kivity <address@hidden> wrote:
> This tells the sysbus code it need not use IO_MEM_UNASSIGNED.
>
> Signed-off-by: Avi Kivity <address@hidden>
> ---
> hw/arm11mpcore.c | 7 ++++++-
> 1 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/hw/arm11mpcore.c b/hw/arm11mpcore.c
> index b47707f..7d60ef6 100644
> --- a/hw/arm11mpcore.c
> +++ b/hw/arm11mpcore.c
> @@ -54,6 +54,11 @@ static void mpcore_rirq_map(SysBusDevice *dev,
> target_phys_addr_t base)
> sysbus_mmio_map(s->priv, 0, base);
> }
>
> +static void mpcore_rirq_unmap(SysBusDevice *dev, target_phys_addr_t base)
> +{
> + /* nothing to do */
> +}
> +
> static int realview_mpcore_init(SysBusDevice *dev)
> {
> mpcore_rirq_state *s = FROM_SYSBUS(mpcore_rirq_state, dev);
> @@ -79,7 +84,7 @@ static int realview_mpcore_init(SysBusDevice *dev)
> }
> }
> qdev_init_gpio_in(&dev->qdev, mpcore_rirq_set_irq, 64);
> - sysbus_init_mmio_cb(dev, 0x2000, mpcore_rirq_map);
> + sysbus_init_mmio_cb2(dev, mpcore_rirq_map, mpcore_rirq_unmap);
> return 0;
> }
Since the mpcore code here is only using sysbus mmio callbacks as
a way to pass things through to a sysbus mmio provided by another
device, I think it would be cleaner to just have a way to say "my
mmio is actually provided by this other device".
For instance you could have
MemoryRegion* sysbus_mmio_get_region(SysBusDevice *dev, int n))
{
return dev->mmio[n].memory;
}
and then realview_mpcore_init() can just
sysbus_init_mmio_region(dev, sysbus_mmio_get_region(s->priv, 0));
Or you could have a sysbus_pass_mmio() which worked like
sysbus_pass_irq() and just said "my mmios are all this other
device's mmios"; that's less flexible though.
-- PMM
- Re: [Qemu-devel] [PATCH 08/24] tusb6010: move declarations to new file tusb6010.h, (continued)
- [Qemu-devel] [PATCH 01/24] apb_pci: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH 06/24] armv7m: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH 03/24] arm_gic: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH 15/24] sysbus: add a variant of sysbus_init_mmio_cb with an unmap callback, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH 23/24] vga: drop get_system_memory() from vga devices and derivatives, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH 12/24] ppc405_uc: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH 04/24] arm_sysctl: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH 17/24] arm11mpcore: use sysbus_init_mmio_cb2, Avi Kivity, 2011/08/08
- Re: [Qemu-devel] [PATCH 17/24] arm11mpcore: use sysbus_init_mmio_cb2,
Peter Maydell <=
- [Qemu-devel] [PATCH 02/24] apic: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH 10/24] onenand: convert to memory API, Avi Kivity, 2011/08/08
- [Qemu-devel] [PATCH 21/24] isa: add isa_address_space(), Avi Kivity, 2011/08/08
- Re: [Qemu-devel] [PATCH 21/24] isa: add isa_address_space(), Avi Kivity, 2011/08/10