On 5/18/20 7:03 AM, Markus Armbruster wrote: > The number of CPUs is controlled by property "num-cpus". > aspeed_soc_ast2600_init() creates the maximum supported number. > aspeed_soc_ast2600_realize() realizes only the wanted number. Works, > although it leaves unrealized devices hanging around in the QOM > composition tree. Affects machines ast2600-evb and tacoma-bmc. > > Make the init functions create only the wanted ones. Visible in "info > qom-tree"; here's the change for ast2600-evb: > > /machine (ast2600-evb-machine) > [...] > /soc (ast2600-a1) > [...] > /cpu[0] (cortex-a7-arm-cpu) > /unnamed-gpio-in[0] (irq) > /unnamed-gpio-in[1] (irq) > /unnamed-gpio-in[2] (irq) > /unnamed-gpio-in[3] (irq) > - /cpu[1] (cortex-a7-arm-cpu) > - /unnamed-gpio-in[0] (irq) > - /unnamed-gpio-in[1] (irq) > - /unnamed-gpio-in[2] (irq) > - /unnamed-gpio-in[3] (irq) > /ehci[0] (platform-ehci-usb) > > Cc: "Cédric Le Goater" <c...@kaod.org> > Cc: Peter Maydell <peter.mayd...@linaro.org> > Cc: Andrew Jeffery <and...@aj.id.au> > Cc: Joel Stanley <j...@jms.id.au> > Cc: qemu-...@nongnu.org > Signed-off-by: Markus Armbruster <arm...@redhat.com>
Reviewed-by: Cédric Le Goater <c...@kaod.org> Joel, Andrew, Shouldn't we enforce a default/min/max number of CPUs of 2 for the AST2600 ? That's the SoC definition. The fact it is configurable in the Aspeed model was nice to have during bringup but we are now done. Thanks, C. > --- > hw/arm/aspeed_ast2600.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/arm/aspeed_ast2600.c b/hw/arm/aspeed_ast2600.c > index 0a6a77dd54..6ffa587a7f 100644 > --- a/hw/arm/aspeed_ast2600.c > +++ b/hw/arm/aspeed_ast2600.c > @@ -287,6 +287,9 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, > Error **errp) > return; > } > } > + for (; i < sc->num_cpus; i++) { > + object_unparent(OBJECT(&s->cpu[i])); > + } > > /* A7MPCORE */ > object_property_set_int(OBJECT(&s->a7mpcore), s->num_cpus, "num-cpu", >