[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Memory API: handling unassigned physical memory
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] Memory API: handling unassigned physical memory |
Date: |
Mon, 30 Apr 2012 15:03:46 +0100 |
On 30 April 2012 14:52, Mark Cave-Ayland <address@hidden> wrote:
> The key problem is that this doesn't worked with shared peripherals, such as
> the ESP device which is also used on various PPC Mac models as well as
> SPARC. That's because its init function looks like this:
>
>
>
> void esp_init(target_phys_addr_t espaddr, int it_shift,
> ESPDMAMemoryReadWriteFunc dma_memory_read,
> ESPDMAMemoryReadWriteFunc dma_memory_write,
> void *dma_opaque, qemu_irq irq, qemu_irq *reset,
> qemu_irq *dma_enable)
> {
> ...
> ...
> sysbus_mmio_map(s, 0, espaddr);
> ...
> }
>
>
> Therefore I can't change it to my (modified) sbus_mmio_map() function
> because it would break other non-SPARC platforms, and AIUI there is nothing
> in the memory API that allows me to move a subregion to a different
> MemoryRegion parent, even if I can get a reference to it with
> sysbus_mmio_get_region() after the sysbus_mmio_map() call - or have I
> misunderstood something?
Init functions like esp_init should be purely convenience functions
which create, set properties on, and map the sysbus/qdev device. If
they make use of private knowledge about the internals of the device
then this is wrong and should be fixed. For esp_init() it looks like
the handling of dma_memory_read, dma_memory_write, dma_opaque, it_shift
and dma_enabled are wrong.
If you fix that then you can just ignore the convenience function,
and create, configure and map the device as appropriate for you.
-- PMM
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, (continued)
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Blue Swirl, 2012/04/29
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Avi Kivity, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Mark Cave-Ayland, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Avi Kivity, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Peter Maydell, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Avi Kivity, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Peter Maydell, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Anthony Liguori, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Mark Cave-Ayland, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory,
Peter Maydell <=
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Mark Cave-Ayland, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Peter Maydell, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Mark Cave-Ayland, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Peter Maydell, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Peter Maydell, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Andreas Färber, 2012/04/30
- Re: [Qemu-devel] Memory API: handling unassigned physical memory, Mark Cave-Ayland, 2012/04/30