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
>
>

Reply via email to