On 2/17/20 12:45 PM, Philippe Mathieu-Daudé wrote: > It makes no sense to set enabled-cpus=0 on single core SoCs. > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Reviewed-by: Luc Michel <luc.mic...@greensocs.com> > --- > hw/arm/bcm2836.c | 15 +++++++-------- > 1 file changed, 7 insertions(+), 8 deletions(-) > > diff --git a/hw/arm/bcm2836.c b/hw/arm/bcm2836.c > index 3b95ad11e9..caaa4b625e 100644 > --- a/hw/arm/bcm2836.c > +++ b/hw/arm/bcm2836.c > @@ -32,6 +32,9 @@ typedef struct BCM283XClass { > #define BCM283X_GET_CLASS(obj) \ > OBJECT_GET_CLASS(BCM283XClass, (obj), TYPE_BCM283X) > > +static Property bcm2836_enabled_cores_property = > + DEFINE_PROP_UINT32("enabled-cpus", BCM283XState, enabled_cpus, 0); > + > static void bcm2836_init(Object *obj) > { > BCM283XState *s = BCM283X(obj); > @@ -43,6 +46,10 @@ static void bcm2836_init(Object *obj) > sizeof(s->cpu[n].core), bc->cpu_type, > &error_abort, NULL); > } > + if (bc->core_count) { > + qdev_property_add_static(DEVICE(obj), > &bcm2836_enabled_cores_property); > + qdev_prop_set_uint32(DEVICE(obj), "enabled-cpus", bc->core_count); > + } > > sysbus_init_child_obj(obj, "control", &s->control, sizeof(s->control), > TYPE_BCM2836_CONTROL); > @@ -154,12 +161,6 @@ static void bcm2836_realize(DeviceState *dev, Error > **errp) > } > } > > -static Property bcm2836_props[] = { > - DEFINE_PROP_UINT32("enabled-cpus", BCM283XState, enabled_cpus, > - BCM283X_NCPUS), > - DEFINE_PROP_END_OF_LIST() > -}; > - > static void bcm283x_class_init(ObjectClass *oc, void *data) > { > DeviceClass *dc = DEVICE_CLASS(oc); > @@ -179,7 +180,6 @@ static void bcm2836_class_init(ObjectClass *oc, void > *data) > bc->ctrl_base = 0x40000000; > bc->clusterid = 0xf; > dc->realize = bcm2836_realize; > - device_class_set_props(dc, bcm2836_props); > }; > > #ifdef TARGET_AARCH64 > @@ -194,7 +194,6 @@ static void bcm2837_class_init(ObjectClass *oc, void > *data) > bc->ctrl_base = 0x40000000; > bc->clusterid = 0x0; > dc->realize = bcm2836_realize; > - device_class_set_props(dc, bcm2836_props); > }; > #endif > >