Signed-off-by: Fam Zheng <[email protected]>
---
hw/arm/armv7m.c | 10 +++-------
include/hw/arm/armv7m.h | 3 ++-
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c
index c8a11f2..3a13d82 100644
--- a/hw/arm/armv7m.c
+++ b/hw/arm/armv7m.c
@@ -97,12 +97,6 @@ static void bitband_init(Object *obj)
BitBandState *s = BITBAND(obj);
SysBusDevice *dev = SYS_BUS_DEVICE(obj);
- object_property_add_link(obj, "source-memory",
- TYPE_MEMORY_REGION,
- (Object **)&s->source_memory,
- qdev_prop_allow_set_link_before_realize,
- OBJ_PROP_LINK_UNREF_ON_RELEASE,
- &error_abort);
memory_region_init_io(&s->iomem, obj, &bitband_ops, s,
"bitband", 0x02000000);
sysbus_init_mmio(dev, &s->iomem);
@@ -117,7 +111,7 @@ static void bitband_realize(DeviceState *dev, Error **errp)
return;
}
- s->source_as = address_space_init_shareable(s->source_memory,
+ s->source_as =
address_space_init_shareable(MEMORY_REGION(s->source_memory),
"bitband-source");
}
@@ -349,6 +343,8 @@ void armv7m_load_kernel(ARMCPU *cpu, const char
*kernel_filename, int mem_size)
static Property bitband_properties[] = {
DEFINE_PROP_UINT32("base", BitBandState, base, 0),
+ DEFINE_PROP_LINK("source-memory", BitBandState, source_memory,
+ TYPE_MEMORY_REGION),
DEFINE_PROP_END_OF_LIST(),
};
diff --git a/include/hw/arm/armv7m.h b/include/hw/arm/armv7m.h
index a9b3f2a..1b4ce5b 100644
--- a/include/hw/arm/armv7m.h
+++ b/include/hw/arm/armv7m.h
@@ -24,7 +24,8 @@ typedef struct {
AddressSpace *source_as;
MemoryRegion iomem;
uint32_t base;
- MemoryRegion *source_memory;
+ /* MemoryRegion pointer to be filled by link property */
+ Object *source_memory;
} BitBandState;
#define TYPE_ARMV7M "armv7m"
--
2.9.4