So the memory regions exist pre-realize.
Signed-off-by: Peter Crosthwaite <[email protected]>
---
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