hw/riscv: virt: Use AIA INTC compatible string when available
We should use the AIA INTC compatible string in the CPU INTC DT nodes when the CPUs support AIA feature. This will allow Linux INTC driver to use AIA local interrupt CSRs. Signed-off-by: Anup Patel <anup.patel@wdc.com> Signed-off-by: Anup Patel <anup@brainfault.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Frank Chang <frank.chang@sifive.com> Message-id: 20220204174700.534953-17-anup@brainfault.org Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
ac4b0302b0
commit
d207863cd3
@ -212,8 +212,17 @@ static void create_fdt_socket_cpus(RISCVVirtState *s, int socket,
|
||||
qemu_fdt_add_subnode(mc->fdt, intc_name);
|
||||
qemu_fdt_setprop_cell(mc->fdt, intc_name, "phandle",
|
||||
intc_phandles[cpu]);
|
||||
qemu_fdt_setprop_string(mc->fdt, intc_name, "compatible",
|
||||
"riscv,cpu-intc");
|
||||
if (riscv_feature(&s->soc[socket].harts[cpu].env,
|
||||
RISCV_FEATURE_AIA)) {
|
||||
static const char * const compat[2] = {
|
||||
"riscv,cpu-intc-aia", "riscv,cpu-intc"
|
||||
};
|
||||
qemu_fdt_setprop_string_array(mc->fdt, intc_name, "compatible",
|
||||
(char **)&compat, ARRAY_SIZE(compat));
|
||||
} else {
|
||||
qemu_fdt_setprop_string(mc->fdt, intc_name, "compatible",
|
||||
"riscv,cpu-intc");
|
||||
}
|
||||
qemu_fdt_setprop(mc->fdt, intc_name, "interrupt-controller", NULL, 0);
|
||||
qemu_fdt_setprop_cell(mc->fdt, intc_name, "#interrupt-cells", 1);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user