|
@@ -211,25 +211,27 @@ static void armv7m_realize(DeviceState *dev, Error **errp)
|
|
memory_region_add_subregion(&s->container, 0xe000e000,
|
|
memory_region_add_subregion(&s->container, 0xe000e000,
|
|
sysbus_mmio_get_region(sbd, 0));
|
|
sysbus_mmio_get_region(sbd, 0));
|
|
|
|
|
|
- for (i = 0; i < ARRAY_SIZE(s->bitband); i++) {
|
|
|
|
- Object *obj = OBJECT(&s->bitband[i]);
|
|
|
|
- SysBusDevice *sbd = SYS_BUS_DEVICE(&s->bitband[i]);
|
|
|
|
-
|
|
|
|
- object_property_set_int(obj, bitband_input_addr[i], "base", &err);
|
|
|
|
- if (err != NULL) {
|
|
|
|
- error_propagate(errp, err);
|
|
|
|
- return;
|
|
|
|
|
|
+ if (s->enable_bitband) {
|
|
|
|
+ for (i = 0; i < ARRAY_SIZE(s->bitband); i++) {
|
|
|
|
+ Object *obj = OBJECT(&s->bitband[i]);
|
|
|
|
+ SysBusDevice *sbd = SYS_BUS_DEVICE(&s->bitband[i]);
|
|
|
|
+
|
|
|
|
+ object_property_set_int(obj, bitband_input_addr[i], "base", &err);
|
|
|
|
+ if (err != NULL) {
|
|
|
|
+ error_propagate(errp, err);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ object_property_set_link(obj, OBJECT(s->board_memory),
|
|
|
|
+ "source-memory", &error_abort);
|
|
|
|
+ object_property_set_bool(obj, true, "realized", &err);
|
|
|
|
+ if (err != NULL) {
|
|
|
|
+ error_propagate(errp, err);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ memory_region_add_subregion(&s->container, bitband_output_addr[i],
|
|
|
|
+ sysbus_mmio_get_region(sbd, 0));
|
|
}
|
|
}
|
|
- object_property_set_link(obj, OBJECT(s->board_memory),
|
|
|
|
- "source-memory", &error_abort);
|
|
|
|
- object_property_set_bool(obj, true, "realized", &err);
|
|
|
|
- if (err != NULL) {
|
|
|
|
- error_propagate(errp, err);
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- memory_region_add_subregion(&s->container, bitband_output_addr[i],
|
|
|
|
- sysbus_mmio_get_region(sbd, 0));
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -239,6 +241,7 @@ static Property armv7m_properties[] = {
|
|
MemoryRegion *),
|
|
MemoryRegion *),
|
|
DEFINE_PROP_LINK("idau", ARMv7MState, idau, TYPE_IDAU_INTERFACE, Object *),
|
|
DEFINE_PROP_LINK("idau", ARMv7MState, idau, TYPE_IDAU_INTERFACE, Object *),
|
|
DEFINE_PROP_UINT32("init-svtor", ARMv7MState, init_svtor, 0),
|
|
DEFINE_PROP_UINT32("init-svtor", ARMv7MState, init_svtor, 0),
|
|
|
|
+ DEFINE_PROP_BOOL("enable-bitband", ARMv7MState, enable_bitband, false),
|
|
DEFINE_PROP_END_OF_LIST(),
|
|
DEFINE_PROP_END_OF_LIST(),
|
|
};
|
|
};
|
|
|
|
|