On Tue, 25 Jul 2017 15:51:21 -0500 Michael Roth <mdr...@linux.vnet.ibm.com> wrote:
> Quoting Greg Kurz (2017-07-25 13:02:03) > > From: Nathan Fontenot <nf...@linux.vnet.ibm.com> > > > > This add entries to the root OF node to advertise our PHBs as being > > DR-capable in accordance with PAPR specification. > > > > Signed-off-by: Nathan Fontenot <nf...@linux.vnet.ibm.com> > > Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> > > Reviewed-by: David Gibson <da...@gibson.dropbear.id.au> > > Signed-off-by: Greg Kurz <gr...@kaod.org> > > --- > > Changes since RFC: > > - rebased against ppc-for-2.10 > > - use error_report > > --- > > hw/ppc/spapr.c | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > index 5950c009ab7e..632040f35ecc 100644 > > --- a/hw/ppc/spapr.c > > +++ b/hw/ppc/spapr.c > > @@ -1151,6 +1151,16 @@ static void *spapr_build_fdt(sPAPRMachineState > > *spapr, > > exit(1); > > } > > > > + if (smc->dr_phb_enabled) { > > + int offset = fdt_path_offset(fdt, "/"); > > + ret = spapr_drc_populate_dt(fdt, offset, NULL, > > + SPAPR_DR_CONNECTOR_TYPE_PHB); > > This might actually clobber LMB/MEM entries added earlier since they both > try to create the /ibm,drc* entries in / from scratch. > Oh, looking at the description of fdt_setprop() in <libfdt.h>, I guess you're probably right. > If that's the case, we can arrange the code something like: > > uint32_t root_drc_types = 0; > > if (smc->dr_lmb_enabled) { > root_drc_types |= SPAPR_DR_CONNECTOR_TYPE_LMB; > } > > if (smc->dr_phb_enabled) { > root_drc_types |= SPAPR_DR_CONNECTOR_TYPE_PHB; > } > > ... > > if (root_drc_types) { > int offset = fdt_path_offset(fdt, "/"); > ret = spapr_drc_populate_dt(fdt, offset, NULL, root_drc_types); > } > Good idea. I'll do just that. Thanks! > > > + if (ret < 0) { > > + error_report("Couldn't set up PHB DR device tree properties"); > > + exit(1); > > + } > > + } > > + > > return fdt; > > } > > > > >
pgpmP1eWLWMx8.pgp
Description: OpenPGP digital signature