Message ID | 20240307164835.300412-17-gaosong@loongson.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add boot LoongArch elf kernel with FDT | expand |
On 2024/3/8 上午12:48, Song Gao wrote: > uart node need interrupts and interrupt-parent cells. > > Signed-off-by: Song Gao <gaosong@loongson.cn> > Message-Id: <20240301093839.663947-17-gaosong@loongson.cn> > --- > hw/loongarch/virt.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c > index c80732a223..58957a8d9a 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); > } > > @@ -629,7 +634,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); > Reviewed-by: Bibo Mao <maobibo@loongson.cn>
diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index c80732a223..58957a8d9a 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); } @@ -629,7 +634,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);
uart node need interrupts and interrupt-parent cells. Signed-off-by: Song Gao <gaosong@loongson.cn> Message-Id: <20240301093839.663947-17-gaosong@loongson.cn> --- hw/loongarch/virt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)