On Tue, Apr 29, 2025 at 11:01 PM Daniel Henrique Barboza
<dbarb...@ventanamicro.com> wrote:
>
> Change create_fdt_pcie(), create_fdt_reset(), create_fdt_uart() and
> create_fdt_rtc() to use s->memmap in their logic.
>
> Signed-off-by: Daniel Henrique Barboza <dbarb...@ventanamicro.com>

Reviewed-by: Alistair Francis <alistair.fran...@wdc.com>

Alistair

> ---
>  hw/riscv/virt.c | 44 ++++++++++++++++++++++----------------------
>  1 file changed, 22 insertions(+), 22 deletions(-)
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index 46ac42058e..f38b64d836 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -871,7 +871,7 @@ static void create_fdt_virtio(RISCVVirtState *s, uint32_t 
> irq_virtio_phandle)
>      }
>  }
>
> -static void create_fdt_pcie(RISCVVirtState *s, const MemMapEntry *memmap,
> +static void create_fdt_pcie(RISCVVirtState *s,
>                              uint32_t irq_pcie_phandle,
>                              uint32_t msi_pcie_phandle,
>                              uint32_t iommu_sys_phandle)
> @@ -880,7 +880,7 @@ static void create_fdt_pcie(RISCVVirtState *s, const 
> MemMapEntry *memmap,
>      MachineState *ms = MACHINE(s);
>
>      name = g_strdup_printf("/soc/pci@%lx",
> -        (long) memmap[VIRT_PCIE_ECAM].base);
> +        (long) s->memmap[VIRT_PCIE_ECAM].base);
>      qemu_fdt_setprop_cell(ms->fdt, name, "#address-cells",
>          FDT_PCI_ADDR_CELLS);
>      qemu_fdt_setprop_cell(ms->fdt, name, "#interrupt-cells",
> @@ -891,19 +891,19 @@ static void create_fdt_pcie(RISCVVirtState *s, const 
> MemMapEntry *memmap,
>      qemu_fdt_setprop_string(ms->fdt, name, "device_type", "pci");
>      qemu_fdt_setprop_cell(ms->fdt, name, "linux,pci-domain", 0);
>      qemu_fdt_setprop_cells(ms->fdt, name, "bus-range", 0,
> -        memmap[VIRT_PCIE_ECAM].size / PCIE_MMCFG_SIZE_MIN - 1);
> +        s->memmap[VIRT_PCIE_ECAM].size / PCIE_MMCFG_SIZE_MIN - 1);
>      qemu_fdt_setprop(ms->fdt, name, "dma-coherent", NULL, 0);
>      if (s->aia_type == VIRT_AIA_TYPE_APLIC_IMSIC) {
>          qemu_fdt_setprop_cell(ms->fdt, name, "msi-parent", msi_pcie_phandle);
>      }
>      qemu_fdt_setprop_cells(ms->fdt, name, "reg", 0,
> -        memmap[VIRT_PCIE_ECAM].base, 0, memmap[VIRT_PCIE_ECAM].size);
> +        s->memmap[VIRT_PCIE_ECAM].base, 0, s->memmap[VIRT_PCIE_ECAM].size);
>      qemu_fdt_setprop_sized_cells(ms->fdt, name, "ranges",
>          1, FDT_PCI_RANGE_IOPORT, 2, 0,
> -        2, memmap[VIRT_PCIE_PIO].base, 2, memmap[VIRT_PCIE_PIO].size,
> +        2, s->memmap[VIRT_PCIE_PIO].base, 2, s->memmap[VIRT_PCIE_PIO].size,
>          1, FDT_PCI_RANGE_MMIO,
> -        2, memmap[VIRT_PCIE_MMIO].base,
> -        2, memmap[VIRT_PCIE_MMIO].base, 2, memmap[VIRT_PCIE_MMIO].size,
> +        2, s->memmap[VIRT_PCIE_MMIO].base,
> +        2, s->memmap[VIRT_PCIE_MMIO].base, 2, s->memmap[VIRT_PCIE_MMIO].size,
>          1, FDT_PCI_RANGE_MMIO_64BIT,
>          2, virt_high_pcie_memmap.base,
>          2, virt_high_pcie_memmap.base, 2, virt_high_pcie_memmap.size);
> @@ -917,8 +917,7 @@ static void create_fdt_pcie(RISCVVirtState *s, const 
> MemMapEntry *memmap,
>      create_pcie_irq_map(s, ms->fdt, name, irq_pcie_phandle);
>  }
>
> -static void create_fdt_reset(RISCVVirtState *s, const MemMapEntry *memmap,
> -                             uint32_t *phandle)
> +static void create_fdt_reset(RISCVVirtState *s, uint32_t *phandle)
>  {
>      char *name;
>      uint32_t test_phandle;
> @@ -926,7 +925,7 @@ static void create_fdt_reset(RISCVVirtState *s, const 
> MemMapEntry *memmap,
>
>      test_phandle = (*phandle)++;
>      name = g_strdup_printf("/soc/test@%lx",
> -        (long)memmap[VIRT_TEST].base);
> +        (long)s->memmap[VIRT_TEST].base);
>      qemu_fdt_add_subnode(ms->fdt, name);
>      {
>          static const char * const compat[3] = {
> @@ -936,7 +935,7 @@ static void create_fdt_reset(RISCVVirtState *s, const 
> MemMapEntry *memmap,
>                                        (char **)&compat, ARRAY_SIZE(compat));
>      }
>      qemu_fdt_setprop_cells(ms->fdt, name, "reg",
> -        0x0, memmap[VIRT_TEST].base, 0x0, memmap[VIRT_TEST].size);
> +        0x0, s->memmap[VIRT_TEST].base, 0x0, s->memmap[VIRT_TEST].size);
>      qemu_fdt_setprop_cell(ms->fdt, name, "phandle", test_phandle);
>      test_phandle = qemu_fdt_get_phandle(ms->fdt, name);
>      g_free(name);
> @@ -958,18 +957,19 @@ static void create_fdt_reset(RISCVVirtState *s, const 
> MemMapEntry *memmap,
>      g_free(name);
>  }
>
> -static void create_fdt_uart(RISCVVirtState *s, const MemMapEntry *memmap,
> +static void create_fdt_uart(RISCVVirtState *s,
>                              uint32_t irq_mmio_phandle)
>  {
>      g_autofree char *name = NULL;
>      MachineState *ms = MACHINE(s);
>
> -    name = g_strdup_printf("/soc/serial@%lx", (long)memmap[VIRT_UART0].base);
> +    name = g_strdup_printf("/soc/serial@%lx",
> +                           (long)s->memmap[VIRT_UART0].base);
>      qemu_fdt_add_subnode(ms->fdt, name);
>      qemu_fdt_setprop_string(ms->fdt, name, "compatible", "ns16550a");
>      qemu_fdt_setprop_cells(ms->fdt, name, "reg",
> -        0x0, memmap[VIRT_UART0].base,
> -        0x0, memmap[VIRT_UART0].size);
> +        0x0, s->memmap[VIRT_UART0].base,
> +        0x0, s->memmap[VIRT_UART0].size);
>      qemu_fdt_setprop_cell(ms->fdt, name, "clock-frequency", 3686400);
>      qemu_fdt_setprop_cell(ms->fdt, name, "interrupt-parent", 
> irq_mmio_phandle);
>      if (s->aia_type == VIRT_AIA_TYPE_NONE) {
> @@ -982,18 +982,18 @@ static void create_fdt_uart(RISCVVirtState *s, const 
> MemMapEntry *memmap,
>      qemu_fdt_setprop_string(ms->fdt, "/aliases", "serial0", name);
>  }
>
> -static void create_fdt_rtc(RISCVVirtState *s, const MemMapEntry *memmap,
> +static void create_fdt_rtc(RISCVVirtState *s,
>                             uint32_t irq_mmio_phandle)
>  {
>      g_autofree char *name = NULL;
>      MachineState *ms = MACHINE(s);
>
> -    name = g_strdup_printf("/soc/rtc@%lx", (long)memmap[VIRT_RTC].base);
> +    name = g_strdup_printf("/soc/rtc@%lx", (long)s->memmap[VIRT_RTC].base);
>      qemu_fdt_add_subnode(ms->fdt, name);
>      qemu_fdt_setprop_string(ms->fdt, name, "compatible",
>          "google,goldfish-rtc");
>      qemu_fdt_setprop_cells(ms->fdt, name, "reg",
> -        0x0, memmap[VIRT_RTC].base, 0x0, memmap[VIRT_RTC].size);
> +        0x0, s->memmap[VIRT_RTC].base, 0x0, s->memmap[VIRT_RTC].size);
>      qemu_fdt_setprop_cell(ms->fdt, name, "interrupt-parent",
>          irq_mmio_phandle);
>      if (s->aia_type == VIRT_AIA_TYPE_NONE) {
> @@ -1143,14 +1143,14 @@ static void finalize_fdt(RISCVVirtState *s)
>          create_fdt_iommu_sys(s, irq_mmio_phandle, msi_pcie_phandle,
>                               &iommu_sys_phandle);
>      }
> -    create_fdt_pcie(s, s->memmap, irq_pcie_phandle, msi_pcie_phandle,
> +    create_fdt_pcie(s, irq_pcie_phandle, msi_pcie_phandle,
>                      iommu_sys_phandle);
>
> -    create_fdt_reset(s, s->memmap, &phandle);
> +    create_fdt_reset(s, &phandle);
>
> -    create_fdt_uart(s, s->memmap, irq_mmio_phandle);
> +    create_fdt_uart(s, irq_mmio_phandle);
>
> -    create_fdt_rtc(s, s->memmap, irq_mmio_phandle);
> +    create_fdt_rtc(s, irq_mmio_phandle);
>  }
>
>  static void create_fdt(RISCVVirtState *s)
> --
> 2.49.0
>
>

Reply via email to