On Mon, Jan 21, 2019 at 06:43:14PM +0000, Peter Maydell wrote: > If we aren't going to create any RPUs, then don't create the > rpu-cluster unit. This allows us to add an assertion to the > cluster object that it contains at least one CPU, which helps > to avoid bugs in creating clusters and putting CPUs in them.
Reviewed-by: Edgar E. Iglesias <edgar.igles...@xilinx.com> > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > This is a preparatory patch that is necessary for the series > "[PATCH v3 0/4] tcg: support heterogenous CPU clusters" > (20190121152218.9592-1-peter.mayd...@linaro.org) > in order to avoid the xlnx-zcu102 board asserting if started with > fewer than 5 CPUs. > > hw/arm/xlnx-zynqmp.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c > index 370b0e44a38..16cba433cb7 100644 > --- a/hw/arm/xlnx-zynqmp.c > +++ b/hw/arm/xlnx-zynqmp.c > @@ -178,6 +178,11 @@ static void xlnx_zynqmp_create_rpu(XlnxZynqMPState *s, > const char *boot_cpu, > int i; > int num_rpus = MIN(smp_cpus - XLNX_ZYNQMP_NUM_APU_CPUS, > XLNX_ZYNQMP_NUM_RPU_CPUS); > > + if (num_rpus == 0) { > + /* Don't create rpu-cluster object if there's nothing to put in it */ > + return; > + } > + > object_initialize_child(OBJECT(s), "rpu-cluster", &s->rpu_cluster, > sizeof(s->rpu_cluster), TYPE_CPU_CLUSTER, > &error_abort, NULL); > -- > 2.20.1 >