On 2024/3/8 上午12:48, Song Gao wrote:
> rtc node need interrupts and interrupt-parent cells.
>
> Signed-off-by: Song Gao <gaosong@loongson.cn>
> Message-Id: <20240301093839.663947-18-gaosong@loongson.cn>
> ---
> hw/loongarch/virt.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c
> index 58957a8d9a..676f1f5227 100644
> --- a/hw/loongarch/virt.c
> +++ b/hw/loongarch/virt.c
> @@ -231,7 +231,8 @@ static void fdt_add_flash_node(LoongArchMachineState *lams)
> g_free(nodename);
> }
>
> -static void fdt_add_rtc_node(LoongArchMachineState *lams)
> +static void fdt_add_rtc_node(LoongArchMachineState *lams,
> + uint32_t *pch_pic_phandle)
> {
> char *nodename;
> hwaddr base = VIRT_RTC_REG_BASE;
> @@ -240,8 +241,13 @@ static void fdt_add_rtc_node(LoongArchMachineState *lams)
>
> nodename = g_strdup_printf("/rtc@%" PRIx64, base);
> qemu_fdt_add_subnode(ms->fdt, nodename);
> - qemu_fdt_setprop_string(ms->fdt, nodename, "compatible", "loongson,ls7a-rtc");
> + qemu_fdt_setprop_string(ms->fdt, nodename, "compatible",
> + "loongson,ls7a-rtc");
> qemu_fdt_setprop_sized_cells(ms->fdt, nodename, "reg", 2, base, 2, size);
> + qemu_fdt_setprop_cells(ms->fdt, nodename, "interrupts",
> + VIRT_RTC_IRQ - VIRT_GSI_BASE , 0x4);
> + qemu_fdt_setprop_cell(ms->fdt, nodename, "interrupt-parent",
> + *pch_pic_phandle);
> g_free(nodename);
> }
>
> @@ -647,7 +653,7 @@ static void loongarch_devices_init(DeviceState *pch_pic,
> sysbus_create_simple("ls7a_rtc", VIRT_RTC_REG_BASE,
> qdev_get_gpio_in(pch_pic,
> VIRT_RTC_IRQ - VIRT_GSI_BASE));
> - fdt_add_rtc_node(lams);
> + fdt_add_rtc_node(lams, pch_pic_phandle);
>
> /* acpi ged */
> lams->acpi_ged = create_acpi_ged(pch_pic, lams);
>
Reviewed-by: Bibo Mao <maobibo@loongson.cn>