* [Qemu-devel] [PATCH] integratorcp: convert control to sysbus @ 2011-10-19 11:14 Benoît Canet 2011-10-19 11:14 ` Benoît Canet 0 siblings, 1 reply; 5+ messages in thread From: Benoît Canet @ 2011-10-19 11:14 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, Benoît Canet This patch convert the integratorcp control registers to sysbus. Benoît Canet (1): integratorcp: convert control to sysbus hw/integratorcp.c | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-) -- 1.7.5.4 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH] integratorcp: convert control to sysbus 2011-10-19 11:14 [Qemu-devel] [PATCH] integratorcp: convert control to sysbus Benoît Canet @ 2011-10-19 11:14 ` Benoît Canet 2011-10-19 12:42 ` Peter Maydell 0 siblings, 1 reply; 5+ messages in thread From: Benoît Canet @ 2011-10-19 11:14 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, Benoît Canet Signed-off-by: Benoit Canet <benoit.canet@gmail.com> --- hw/integratorcp.c | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-) diff --git a/hw/integratorcp.c b/hw/integratorcp.c index 7f79560..70fedbe 100644 --- a/hw/integratorcp.c +++ b/hw/integratorcp.c @@ -393,6 +393,11 @@ static int icp_pic_init(SysBusDevice *dev) /* CP control registers. */ +typedef struct icp_control_state { + SysBusDevice busdev; + MemoryRegion iomem; +} icp_control_state; + static uint64_t icp_control_read(void *opaque, target_phys_addr_t offset, unsigned size) { @@ -431,15 +436,15 @@ static const MemoryRegionOps icp_control_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; -static void icp_control_init(target_phys_addr_t base) +static int icp_control_init(SysBusDevice *dev) { - MemoryRegion *io; + icp_control_state *s = FROM_SYSBUS(icp_control_state, dev); - io = (MemoryRegion *)g_malloc0(sizeof(MemoryRegion)); - memory_region_init_io(io, &icp_control_ops, NULL, + memory_region_init_io(&s->iomem, &icp_control_ops, s, "control", 0x00800000); - memory_region_add_subregion(get_system_memory(), base, io); + sysbus_init_mmio_region(dev, &s->iomem); /* ??? Save/restore. */ + return 0; } @@ -498,7 +503,7 @@ static void integratorcp_init(ram_addr_t ram_size, sysbus_create_simple("pl031", 0x15000000, pic[8]); sysbus_create_simple("pl011", 0x16000000, pic[1]); sysbus_create_simple("pl011", 0x17000000, pic[2]); - icp_control_init(0xcb000000); + sysbus_create_simple("integrator_control", 0xcb000000, NULL); sysbus_create_simple("pl050_keyboard", 0x18000000, pic[3]); sysbus_create_simple("pl050_mouse", 0x19000000, pic[4]); sysbus_create_varargs("pl181", 0x1c000000, pic[23], pic[24], NULL); @@ -541,6 +546,8 @@ static SysBusDeviceInfo core_info = { static void integratorcp_register_devices(void) { sysbus_register_dev("integrator_pic", sizeof(icp_pic_state), icp_pic_init); + sysbus_register_dev("integrator_control", sizeof(icp_control_state), + icp_control_init); sysbus_register_withprop(&core_info); } -- 1.7.5.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] integratorcp: convert control to sysbus 2011-10-19 11:14 ` Benoît Canet @ 2011-10-19 12:42 ` Peter Maydell 0 siblings, 0 replies; 5+ messages in thread From: Peter Maydell @ 2011-10-19 12:42 UTC (permalink / raw) To: Benoît Canet; +Cc: qemu-devel 2011/10/19 Benoît Canet <benoit.canet@gmail.com>: > +static int icp_control_init(SysBusDevice *dev) > { > - MemoryRegion *io; > + icp_control_state *s = FROM_SYSBUS(icp_control_state, dev); > > - io = (MemoryRegion *)g_malloc0(sizeof(MemoryRegion)); > - memory_region_init_io(io, &icp_control_ops, NULL, > + memory_region_init_io(&s->iomem, &icp_control_ops, s, > "control", 0x00800000); > - memory_region_add_subregion(get_system_memory(), base, io); > + sysbus_init_mmio_region(dev, &s->iomem); > /* ??? Save/restore. */ > + return 0; > } You should delete the "??? Save/restore" comment -- the device currently has no state it needs to save/restore, and now it's a sysbus device we have an easy path to add save/restore if we do add state (ie we can at that point give it a vmstate). Otherwise looks good. -- PMM ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH V2] integratorcp: convert control to sysbus @ 2011-10-19 12:56 Benoît Canet 2011-10-19 12:56 ` [Qemu-devel] [PATCH] " Benoît Canet 0 siblings, 1 reply; 5+ messages in thread From: Benoît Canet @ 2011-10-19 12:56 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, Benoît Canet Convert control registers to sysbus. This version get rid of an unneeded comment. Benoît Canet (1): integratorcp: convert control to sysbus hw/integratorcp.c | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) -- 1.7.5.4 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH] integratorcp: convert control to sysbus 2011-10-19 12:56 [Qemu-devel] [PATCH V2] " Benoît Canet @ 2011-10-19 12:56 ` Benoît Canet 2011-10-19 13:12 ` Peter Maydell 0 siblings, 1 reply; 5+ messages in thread From: Benoît Canet @ 2011-10-19 12:56 UTC (permalink / raw) To: qemu-devel; +Cc: peter.maydell, Benoît Canet Signed-off-by: Benoit Canet <benoit.canet@gmail.com> --- hw/integratorcp.c | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) diff --git a/hw/integratorcp.c b/hw/integratorcp.c index 7f79560..7ad68b7 100644 --- a/hw/integratorcp.c +++ b/hw/integratorcp.c @@ -393,6 +393,11 @@ static int icp_pic_init(SysBusDevice *dev) /* CP control registers. */ +typedef struct icp_control_state { + SysBusDevice busdev; + MemoryRegion iomem; +} icp_control_state; + static uint64_t icp_control_read(void *opaque, target_phys_addr_t offset, unsigned size) { @@ -431,15 +436,14 @@ static const MemoryRegionOps icp_control_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; -static void icp_control_init(target_phys_addr_t base) +static int icp_control_init(SysBusDevice *dev) { - MemoryRegion *io; + icp_control_state *s = FROM_SYSBUS(icp_control_state, dev); - io = (MemoryRegion *)g_malloc0(sizeof(MemoryRegion)); - memory_region_init_io(io, &icp_control_ops, NULL, + memory_region_init_io(&s->iomem, &icp_control_ops, s, "control", 0x00800000); - memory_region_add_subregion(get_system_memory(), base, io); - /* ??? Save/restore. */ + sysbus_init_mmio_region(dev, &s->iomem); + return 0; } @@ -498,7 +502,7 @@ static void integratorcp_init(ram_addr_t ram_size, sysbus_create_simple("pl031", 0x15000000, pic[8]); sysbus_create_simple("pl011", 0x16000000, pic[1]); sysbus_create_simple("pl011", 0x17000000, pic[2]); - icp_control_init(0xcb000000); + sysbus_create_simple("integrator_control", 0xcb000000, NULL); sysbus_create_simple("pl050_keyboard", 0x18000000, pic[3]); sysbus_create_simple("pl050_mouse", 0x19000000, pic[4]); sysbus_create_varargs("pl181", 0x1c000000, pic[23], pic[24], NULL); @@ -541,6 +545,8 @@ static SysBusDeviceInfo core_info = { static void integratorcp_register_devices(void) { sysbus_register_dev("integrator_pic", sizeof(icp_pic_state), icp_pic_init); + sysbus_register_dev("integrator_control", sizeof(icp_control_state), + icp_control_init); sysbus_register_withprop(&core_info); } -- 1.7.5.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] integratorcp: convert control to sysbus 2011-10-19 12:56 ` [Qemu-devel] [PATCH] " Benoît Canet @ 2011-10-19 13:12 ` Peter Maydell 0 siblings, 0 replies; 5+ messages in thread From: Peter Maydell @ 2011-10-19 13:12 UTC (permalink / raw) To: Benoît Canet; +Cc: qemu-devel, Avi Kivity 2011/10/19 Benoît Canet <benoit.canet@gmail.com>: > Signed-off-by: Benoit Canet <benoit.canet@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Avi -- since this applies on top of the memory region conversions in your queue, do you want to take this patch too? Otherwise I'll just have to hold onto it until you land those... thanks -- PMM ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-10-19 13:12 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-10-19 11:14 [Qemu-devel] [PATCH] integratorcp: convert control to sysbus Benoît Canet 2011-10-19 11:14 ` Benoît Canet 2011-10-19 12:42 ` Peter Maydell -- strict thread matches above, loose matches on Subject: below -- 2011-10-19 12:56 [Qemu-devel] [PATCH V2] " Benoît Canet 2011-10-19 12:56 ` [Qemu-devel] [PATCH] " Benoît Canet 2011-10-19 13:12 ` Peter Maydell
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).