aboutsummaryrefslogtreecommitdiff
path: root/hw/riscv/spike.c
diff options
context:
space:
mode:
authorBin Meng <bin.meng@windriver.com>2021-04-30 15:12:57 +0800
committerAlistair Francis <alistair.francis@wdc.com>2021-06-08 09:59:42 +1000
commit7cfbb17f023dc014d366b2f30af852aa62a5c3b1 (patch)
tree807de7885510cc5ad2b76972acea1f572342432f /hw/riscv/spike.c
parent2cc04550ac222237b979b5a45679ff746fc99a46 (diff)
downloadqemu-7cfbb17f023dc014d366b2f30af852aa62a5c3b1.zip
qemu-7cfbb17f023dc014d366b2f30af852aa62a5c3b1.tar.gz
qemu-7cfbb17f023dc014d366b2f30af852aa62a5c3b1.tar.bz2
hw/riscv: Support the official CLINT DT bindings
Linux kernel commit a2770b57d083 ("dt-bindings: timer: Add CLINT bindings") adds the official DT bindings for CLINT, which uses "sifive,clint0" as the compatible string. "riscv,clint0" is now legacy and has to be kept for backward compatibility of legacy systems. Signed-off-by: Bin Meng <bin.meng@windriver.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 20210430071302.1489082-3-bmeng.cn@gmail.com Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'hw/riscv/spike.c')
-rw-r--r--hw/riscv/spike.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
index fe0806a..4b08816 100644
--- a/hw/riscv/spike.c
+++ b/hw/riscv/spike.c
@@ -59,6 +59,9 @@ static void create_fdt(SpikeState *s, const MemMapEntry *memmap,
uint32_t cpu_phandle, intc_phandle, phandle = 1;
char *name, *mem_name, *clint_name, *clust_name;
char *core_name, *cpu_name, *intc_name;
+ static const char * const clint_compat[2] = {
+ "sifive,clint0", "riscv,clint0"
+ };
fdt = s->fdt = create_device_tree(&s->fdt_size);
if (!fdt) {
@@ -152,7 +155,8 @@ static void create_fdt(SpikeState *s, const MemMapEntry *memmap,
(memmap[SPIKE_CLINT].size * socket);
clint_name = g_strdup_printf("/soc/clint@%lx", clint_addr);
qemu_fdt_add_subnode(fdt, clint_name);
- qemu_fdt_setprop_string(fdt, clint_name, "compatible", "riscv,clint0");
+ qemu_fdt_setprop_string_array(fdt, clint_name, "compatible",
+ (char **)&clint_compat, ARRAY_SIZE(clint_compat));
qemu_fdt_setprop_cells(fdt, clint_name, "reg",
0x0, clint_addr, 0x0, memmap[SPIKE_CLINT].size);
qemu_fdt_setprop(fdt, clint_name, "interrupts-extended",