[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/6] hw/riscv/virt.c: create '/soc/pci@...' fdt node earlier
From: |
Alistair Francis |
Subject: |
Re: [PATCH 3/6] hw/riscv/virt.c: create '/soc/pci@...' fdt node earlier |
Date: |
Thu, 15 Feb 2024 15:08:36 +1000 |
On Wed, Feb 14, 2024 at 5:19 AM Daniel Henrique Barboza
<dbarboza@ventanamicro.com> wrote:
>
> Hotplugged FDT nodes will attempt to write this node that, at this
> moment, is being created only in create_fdt_pcie() during
> finalize_fdt().
>
> Create it earlier.
>
> Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> hw/riscv/virt.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index fd35c74781..b540f4d3da 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -826,7 +826,6 @@ static void create_fdt_pcie(RISCVVirtState *s, const
> MemMapEntry *memmap,
>
> name = g_strdup_printf("/soc/pci@%lx",
> (long) memmap[VIRT_PCIE_ECAM].base);
> - qemu_fdt_add_subnode(ms->fdt, name);
> qemu_fdt_setprop_cell(ms->fdt, name, "#address-cells",
> FDT_PCI_ADDR_CELLS);
> qemu_fdt_setprop_cell(ms->fdt, name, "#interrupt-cells",
> @@ -996,6 +995,7 @@ static void create_fdt(RISCVVirtState *s, const
> MemMapEntry *memmap)
> {
> MachineState *ms = MACHINE(s);
> uint8_t rng_seed[32];
> + g_autofree char *name = NULL;
>
> ms->fdt = create_device_tree(&s->fdt_size);
> if (!ms->fdt) {
> @@ -1014,6 +1014,13 @@ static void create_fdt(RISCVVirtState *s, const
> MemMapEntry *memmap)
> qemu_fdt_setprop_cell(ms->fdt, "/soc", "#size-cells", 0x2);
> qemu_fdt_setprop_cell(ms->fdt, "/soc", "#address-cells", 0x2);
>
> + /*
> + * The "/soc/pci@..." node is needed for PCIE hotplugs
> + * that might happen before finalize_fdt().
> + */
> + name = g_strdup_printf("/soc/pci@%lx", (long)
> memmap[VIRT_PCIE_ECAM].base);
> + qemu_fdt_add_subnode(ms->fdt, name);
> +
> qemu_fdt_add_subnode(ms->fdt, "/chosen");
>
> /* Pass seed to RNG */
> --
> 2.43.0
>
>
- [PATCH 0/6] libqos, riscv: libqos fixes, add riscv machine, Daniel Henrique Barboza, 2024/02/13
- [PATCH 1/6] libqos/virtio.c: init all elems in qvring_indirect_desc_setup(), Daniel Henrique Barboza, 2024/02/13
- [PATCH 2/6] libqos/virtio.c: fix 'avail_event' offset in qvring_init(), Daniel Henrique Barboza, 2024/02/13
- [PATCH 3/6] hw/riscv/virt.c: create '/soc/pci@...' fdt node earlier, Daniel Henrique Barboza, 2024/02/13
- Re: [PATCH 3/6] hw/riscv/virt.c: create '/soc/pci@...' fdt node earlier,
Alistair Francis <=
- [PATCH 4/6] hw/riscv/virt.c: add virtio-iommu-pci hotplug support, Daniel Henrique Barboza, 2024/02/13
- [PATCH 5/6] hw/riscv/virt.c: make aclint compatible with 'qtest' accel, Daniel Henrique Barboza, 2024/02/13
- [PATCH 6/6] tests/libqos: add riscv/virt machine nodes, Daniel Henrique Barboza, 2024/02/13