So the memory regions exist pre-realize. Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> ---
hw/timer/xilinx_timer.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hw/timer/xilinx_timer.c b/hw/timer/xilinx_timer.c index cdb3355..1b0e2a1 100644 --- a/hw/timer/xilinx_timer.c +++ b/hw/timer/xilinx_timer.c @@ -221,9 +221,8 @@ static void xilinx_timer_realize(DeviceState *dev, Error **errp) ptimer_set_freq(xt->ptimer, t->freq_hz); } - memory_region_init_io(&t->mmio, OBJECT(t), &timer_ops, t, "xlnx.xps-timer", - R_MAX * 4 * num_timers(t)); - sysbus_init_mmio(SYS_BUS_DEVICE(dev), &t->mmio); + object_property_set_int(OBJECT(&t->mmio), R_MAX * 4 * num_timers(t), + "size", &error_abort); } static void xilinx_timer_init(Object *obj) @@ -232,6 +231,9 @@ static void xilinx_timer_init(Object *obj) /* All timers share a single irq line. */ sysbus_init_irq(SYS_BUS_DEVICE(obj), &t->irq); + memory_region_init_io(&t->mmio, OBJECT(t), &timer_ops, t, + "xlnx.xps-timer", 0); + sysbus_init_mmio(SYS_BUS_DEVICE(obj), &t->mmio); } static Property xilinx_timer_properties[] = { -- 1.9.3.1.ga73a6ad