On Fri, Nov 8, 2019 at 9:05 AM Palmer Dabbelt <pal...@sifive.com> wrote: > > The test finisher implements the reset command, which means it's a > "sifive,test1" device. This is a backwards compatible change, so it's > also a "sifive,test0" device. I copied the odd idiom for adding a > two-string compatible field from the ARM virt board. > > Fixes: 9a2551ed6f ("riscv: sifive_test: Add reset functionality") > Signed-off-by: Palmer Dabbelt <pal...@sifive.com> > Signed-off-by: Palmer Dabbelt <pal...@dabbelt.com> > --- > hw/riscv/virt.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c > index 23f340df19..74f2dce81c 100644 > --- a/hw/riscv/virt.c > +++ b/hw/riscv/virt.c > @@ -359,7 +359,10 @@ static void create_fdt(RISCVVirtState *s, const struct > MemmapEntry *memmap, > nodename = g_strdup_printf("/test@%lx", > (long)memmap[VIRT_TEST].base); > qemu_fdt_add_subnode(fdt, nodename); > - qemu_fdt_setprop_string(fdt, nodename, "compatible", "sifive,test0"); > + { > + const char compat[] = "sifive,test1\0sifive,test0";
Does this really work? Why not use qemu_fdt_setprop_cells()? Alistair > + qemu_fdt_setprop(fdt, nodename, "compatible", compat, > sizeof(compat)); > + } > qemu_fdt_setprop_cells(fdt, nodename, "reg", > 0x0, memmap[VIRT_TEST].base, > 0x0, memmap[VIRT_TEST].size); > -- > 2.21.0 > >