On Mon, 2019-05-06 at 13:23 +1000, David Gibson wrote: > On Mon, May 06, 2019 at 11:48:03AM +1000, Suraj Jitindar Singh wrote: > > The ibm,purr and ibm,spurr device tree properties are used to > > indicate > > that the processor implements the Processor Utilisation of > > Resources > > Register (PURR) and Scaled Processor Utilisation of Resources > > Registers > > (SPURR), respectively. Each property has a single value which > > represents > > the level of architecture supported. A value of 1 for ibm,purr > > means > > support for the version of the PURR defined in book 3 in version > > 2.02 of > > the architecture. A value of 1 for ibm,spurr means support for the > > version of the SPURR defined in version 2.05 of the architecture. > > > > Add these properties for all processors for which the PURR and > > SPURR > > registers are generated. > > So.. what does the current empty property mean? Is it just wrong by > spec, or does it actually mean something incorrect?
Af far as I can tell, an empty property is invalid according to PAPR. A level value is required to communicate the level of purr implemented. Should probably have: Fixes: 0da6f3fef9a "spapr: Reorganize CPU dt generation code" > > > > > Signed-off-by: Suraj Jitindar Singh <sjitindarsi...@gmail.com> > > --- > > hw/ppc/spapr.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > index 2ef3ce4362..8580a8dc67 100644 > > --- a/hw/ppc/spapr.c > > +++ b/hw/ppc/spapr.c > > @@ -500,7 +500,10 @@ static void spapr_populate_cpu_dt(CPUState > > *cs, void *fdt, int offset, > > _FDT((fdt_setprop(fdt, offset, "64-bit", NULL, 0))); > > > > if (env->spr_cb[SPR_PURR].oea_read) { > > - _FDT((fdt_setprop(fdt, offset, "ibm,purr", NULL, 0))); > > + _FDT((fdt_setprop_cell(fdt, offset, "ibm,purr", 1))); > > + } > > + if (env->spr_cb[SPR_SPURR].oea_read) { > > + _FDT((fdt_setprop_cell(fdt, offset, "ibm,spurr", 1))); > > } > > > > if (ppc_hash64_has(cpu, PPC_HASH64_1TSEG)) { > >