On Mon, 18 May 2020 at 12:24, Cédric Le Goater <c...@kaod.org> wrote: > > 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.
Agreed, we want there to always be two CPUs for the 2600. > > 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", > > >