[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [QEMU-PPC] [PATCH] target/ppc: Add ibm, purr and ibm, s
From: |
Suraj Jitindar Singh |
Subject: |
Re: [Qemu-devel] [QEMU-PPC] [PATCH] target/ppc: Add ibm, purr and ibm, spurr device-tree properties |
Date: |
Tue, 07 May 2019 09:43:34 +1000 |
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 <address@hidden>
> > ---
> > 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)) {
>
>