Message ID | 20230727-groom-decline-2c57ce42841c@spud (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/riscv: virt: Fix riscv,pmu DT node path | expand |
On 7/27/23 11:24, Conor Dooley wrote: > From: Conor Dooley <conor.dooley@microchip.com> > > On a dtb dumped from the virt machine, dt-validate complains: > soc: pmu: {'riscv,event-to-mhpmcounters': [[1, 1, 524281], [2, 2, 524284], [65561, 65561, 524280], [65563, 65563, 524280], [65569, 65569, 524280]], 'compatible': ['riscv,pmu']} should not be valid under {'type': 'object'} > from schema $id: http://devicetree.org/schemas/simple-bus.yaml# > That's pretty cryptic, but running the dtb back through dtc produces > something a lot more reasonable: > Warning (simple_bus_reg): /soc/pmu: missing or empty reg/ranges property > > Moving the riscv,pmu node out of the soc bus solves the problem. > > Signed-off-by: Conor Dooley <conor.dooley@microchip.com> > --- Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > CC: Palmer Dabbelt <palmer@dabbelt.com> > CC: Alistair Francis <alistair.francis@wdc.com> > CC: Bin Meng <bin.meng@windriver.com> > CC: Weiwei Li <liweiwei@iscas.ac.cn> > CC: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > CC: Liu Zhiwei <zhiwei_liu@linux.alibaba.com> > CC: qemu-riscv@nongnu.org > CC: qemu-devel@nongnu.org > --- > hw/riscv/virt.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c > index d90286dc46..25dcc2616e 100644 > --- a/hw/riscv/virt.c > +++ b/hw/riscv/virt.c > @@ -732,7 +732,7 @@ static void create_fdt_pmu(RISCVVirtState *s) > MachineState *ms = MACHINE(s); > RISCVCPU hart = s->soc[0].harts[0]; > > - pmu_name = g_strdup_printf("/soc/pmu"); > + pmu_name = g_strdup_printf("/pmu"); > qemu_fdt_add_subnode(ms->fdt, pmu_name); > qemu_fdt_setprop_string(ms->fdt, pmu_name, "compatible", "riscv,pmu"); > riscv_pmu_generate_fdt_node(ms->fdt, hart.cfg.pmu_num, pmu_name);
On Thu, Jul 27, 2023 at 10:37 AM Conor Dooley <conor@kernel.org> wrote: > > From: Conor Dooley <conor.dooley@microchip.com> > > On a dtb dumped from the virt machine, dt-validate complains: > soc: pmu: {'riscv,event-to-mhpmcounters': [[1, 1, 524281], [2, 2, 524284], [65561, 65561, 524280], [65563, 65563, 524280], [65569, 65569, 524280]], 'compatible': ['riscv,pmu']} should not be valid under {'type': 'object'} > from schema $id: http://devicetree.org/schemas/simple-bus.yaml# > That's pretty cryptic, but running the dtb back through dtc produces > something a lot more reasonable: > Warning (simple_bus_reg): /soc/pmu: missing or empty reg/ranges property > > Moving the riscv,pmu node out of the soc bus solves the problem. > > Signed-off-by: Conor Dooley <conor.dooley@microchip.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > CC: Palmer Dabbelt <palmer@dabbelt.com> > CC: Alistair Francis <alistair.francis@wdc.com> > CC: Bin Meng <bin.meng@windriver.com> > CC: Weiwei Li <liweiwei@iscas.ac.cn> > CC: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > CC: Liu Zhiwei <zhiwei_liu@linux.alibaba.com> > CC: qemu-riscv@nongnu.org > CC: qemu-devel@nongnu.org > --- > hw/riscv/virt.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c > index d90286dc46..25dcc2616e 100644 > --- a/hw/riscv/virt.c > +++ b/hw/riscv/virt.c > @@ -732,7 +732,7 @@ static void create_fdt_pmu(RISCVVirtState *s) > MachineState *ms = MACHINE(s); > RISCVCPU hart = s->soc[0].harts[0]; > > - pmu_name = g_strdup_printf("/soc/pmu"); > + pmu_name = g_strdup_printf("/pmu"); > qemu_fdt_add_subnode(ms->fdt, pmu_name); > qemu_fdt_setprop_string(ms->fdt, pmu_name, "compatible", "riscv,pmu"); > riscv_pmu_generate_fdt_node(ms->fdt, hart.cfg.pmu_num, pmu_name); > -- > 2.39.2 > >
On Thu, Jul 27, 2023 at 10:37 AM Conor Dooley <conor@kernel.org> wrote: > > From: Conor Dooley <conor.dooley@microchip.com> > > On a dtb dumped from the virt machine, dt-validate complains: > soc: pmu: {'riscv,event-to-mhpmcounters': [[1, 1, 524281], [2, 2, 524284], [65561, 65561, 524280], [65563, 65563, 524280], [65569, 65569, 524280]], 'compatible': ['riscv,pmu']} should not be valid under {'type': 'object'} > from schema $id: http://devicetree.org/schemas/simple-bus.yaml# > That's pretty cryptic, but running the dtb back through dtc produces > something a lot more reasonable: > Warning (simple_bus_reg): /soc/pmu: missing or empty reg/ranges property > > Moving the riscv,pmu node out of the soc bus solves the problem. > > Signed-off-by: Conor Dooley <conor.dooley@microchip.com> Thanks! Applied to riscv-to-apply.next Alistair > --- > CC: Palmer Dabbelt <palmer@dabbelt.com> > CC: Alistair Francis <alistair.francis@wdc.com> > CC: Bin Meng <bin.meng@windriver.com> > CC: Weiwei Li <liweiwei@iscas.ac.cn> > CC: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > CC: Liu Zhiwei <zhiwei_liu@linux.alibaba.com> > CC: qemu-riscv@nongnu.org > CC: qemu-devel@nongnu.org > --- > hw/riscv/virt.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c > index d90286dc46..25dcc2616e 100644 > --- a/hw/riscv/virt.c > +++ b/hw/riscv/virt.c > @@ -732,7 +732,7 @@ static void create_fdt_pmu(RISCVVirtState *s) > MachineState *ms = MACHINE(s); > RISCVCPU hart = s->soc[0].harts[0]; > > - pmu_name = g_strdup_printf("/soc/pmu"); > + pmu_name = g_strdup_printf("/pmu"); > qemu_fdt_add_subnode(ms->fdt, pmu_name); > qemu_fdt_setprop_string(ms->fdt, pmu_name, "compatible", "riscv,pmu"); > riscv_pmu_generate_fdt_node(ms->fdt, hart.cfg.pmu_num, pmu_name); > -- > 2.39.2 > >
diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index d90286dc46..25dcc2616e 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -732,7 +732,7 @@ static void create_fdt_pmu(RISCVVirtState *s) MachineState *ms = MACHINE(s); RISCVCPU hart = s->soc[0].harts[0]; - pmu_name = g_strdup_printf("/soc/pmu"); + pmu_name = g_strdup_printf("/pmu"); qemu_fdt_add_subnode(ms->fdt, pmu_name); qemu_fdt_setprop_string(ms->fdt, pmu_name, "compatible", "riscv,pmu"); riscv_pmu_generate_fdt_node(ms->fdt, hart.cfg.pmu_num, pmu_name);