Message ID | 20240531202759.911601-5-dbarboza@ventanamicro.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/riscv/virt.c: aplic/imsic DT fixes | expand |
On Sat, Jun 1, 2024 at 6:31 AM Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote: > > The DT docs for riscv,aplic [1] predicts a 'qemu,aplic' enum in the > 'compatible' property. > > [1] Documentation/devicetree/bindings/interrupt-controller/riscv,aplic.yaml > > Reported-by: Conor Dooley <conor@kernel.org> > Fixes: e6faee65855b ("hw/riscv: virt: Add optional AIA APLIC support to virt machine") > Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > hw/riscv/virt.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c > index 5505047945..366fe042cc 100644 > --- a/hw/riscv/virt.c > +++ b/hw/riscv/virt.c > @@ -606,6 +606,9 @@ static void create_fdt_one_aplic(RISCVVirtState *s, int socket, > g_autofree char *aplic_name = fdt_get_aplic_nodename(aplic_addr); > g_autofree uint32_t *aplic_cells = g_new0(uint32_t, num_harts * 2); > MachineState *ms = MACHINE(s); > + static const char * const aplic_compat[2] = { > + "qemu,aplic", "riscv,aplic" > + }; > > for (cpu = 0; cpu < num_harts; cpu++) { > aplic_cells[cpu * 2 + 0] = cpu_to_be32(intc_phandles[cpu]); > @@ -613,7 +616,9 @@ static void create_fdt_one_aplic(RISCVVirtState *s, int socket, > } > > qemu_fdt_add_subnode(ms->fdt, aplic_name); > - qemu_fdt_setprop_string(ms->fdt, aplic_name, "compatible", "riscv,aplic"); > + qemu_fdt_setprop_string_array(ms->fdt, aplic_name, "compatible", > + (char **)&aplic_compat, > + ARRAY_SIZE(aplic_compat)); > qemu_fdt_setprop_cell(ms->fdt, aplic_name, "#address-cells", > FDT_APLIC_ADDR_CELLS); > qemu_fdt_setprop_cell(ms->fdt, aplic_name, > -- > 2.45.1 > >
diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 5505047945..366fe042cc 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -606,6 +606,9 @@ static void create_fdt_one_aplic(RISCVVirtState *s, int socket, g_autofree char *aplic_name = fdt_get_aplic_nodename(aplic_addr); g_autofree uint32_t *aplic_cells = g_new0(uint32_t, num_harts * 2); MachineState *ms = MACHINE(s); + static const char * const aplic_compat[2] = { + "qemu,aplic", "riscv,aplic" + }; for (cpu = 0; cpu < num_harts; cpu++) { aplic_cells[cpu * 2 + 0] = cpu_to_be32(intc_phandles[cpu]); @@ -613,7 +616,9 @@ static void create_fdt_one_aplic(RISCVVirtState *s, int socket, } qemu_fdt_add_subnode(ms->fdt, aplic_name); - qemu_fdt_setprop_string(ms->fdt, aplic_name, "compatible", "riscv,aplic"); + qemu_fdt_setprop_string_array(ms->fdt, aplic_name, "compatible", + (char **)&aplic_compat, + ARRAY_SIZE(aplic_compat)); qemu_fdt_setprop_cell(ms->fdt, aplic_name, "#address-cells", FDT_APLIC_ADDR_CELLS); qemu_fdt_setprop_cell(ms->fdt, aplic_name,
The DT docs for riscv,aplic [1] predicts a 'qemu,aplic' enum in the 'compatible' property. [1] Documentation/devicetree/bindings/interrupt-controller/riscv,aplic.yaml Reported-by: Conor Dooley <conor@kernel.org> Fixes: e6faee65855b ("hw/riscv: virt: Add optional AIA APLIC support to virt machine") Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> --- hw/riscv/virt.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)