diff options
author | 2024-04-26 17:15:50 +0800 | |
---|---|---|
committer | 2024-04-29 10:25:56 +0800 | |
commit | f5cce57f6aca89c83b7f99b11b93ad9212b1573e (patch) | |
tree | 07e4c55df235ab0eefb856d4fa2a26fa1fa9a426 | |
parent | hw/loongarch: fdt remove unused irqchip node (diff) | |
download | qemu-f5cce57f6aca89c83b7f99b11b93ad9212b1573e.tar.xz qemu-f5cce57f6aca89c83b7f99b11b93ad9212b1573e.zip |
hw/loongarch: Add cells missing from uart node
uart node need interrupts and interrupt-parent cells.
Signed-off-by: Song Gao <gaosong@loongson.cn>
Reviewed-by: Bibo Mao <maobibo@loongson.cn>
Message-Id: <20240426091551.2397867-17-gaosong@loongson.cn>
-rw-r--r-- | hw/loongarch/virt.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index 48f73edd8e..dbd7928759 100644 --- a/hw/loongarch/virt.c +++ b/hw/loongarch/virt.c @@ -245,7 +245,8 @@ static void fdt_add_rtc_node(LoongArchMachineState *lams) g_free(nodename); } -static void fdt_add_uart_node(LoongArchMachineState *lams) +static void fdt_add_uart_node(LoongArchMachineState *lams, + uint32_t *pch_pic_phandle) { char *nodename; hwaddr base = VIRT_UART_BASE; @@ -258,6 +259,10 @@ static void fdt_add_uart_node(LoongArchMachineState *lams) qemu_fdt_setprop_cells(ms->fdt, nodename, "reg", 0x0, base, 0x0, size); qemu_fdt_setprop_cell(ms->fdt, nodename, "clock-frequency", 100000000); qemu_fdt_setprop_string(ms->fdt, "/chosen", "stdout-path", nodename); + qemu_fdt_setprop_cells(ms->fdt, nodename, "interrupts", + VIRT_UART_IRQ - VIRT_GSI_BASE, 0x4); + qemu_fdt_setprop_cell(ms->fdt, nodename, "interrupt-parent", + *pch_pic_phandle); g_free(nodename); } @@ -630,7 +635,7 @@ static void loongarch_devices_init(DeviceState *pch_pic, qdev_get_gpio_in(pch_pic, VIRT_UART_IRQ - VIRT_GSI_BASE), 115200, serial_hd(0), DEVICE_LITTLE_ENDIAN); - fdt_add_uart_node(lams); + fdt_add_uart_node(lams, pch_pic_phandle); /* Network init */ pci_init_nic_devices(pci_bus, mc->default_nic); |