On Tue, Apr 29, 2025 at 10:59 PM Daniel Henrique Barboza <dbarb...@ventanamicro.com> wrote: > > We should use s->memmap instead of virt_memmap to be able to use an > updated memmap when we start versioning the board. > > Signed-off-by: Daniel Henrique Barboza <dbarb...@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > hw/riscv/virt.c | 29 ++++++++++++++--------------- > 1 file changed, 14 insertions(+), 15 deletions(-) > > diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c > index bcf0ddd6c6..b4a6916abb 100644 > --- a/hw/riscv/virt.c > +++ b/hw/riscv/virt.c > @@ -166,8 +166,8 @@ static void virt_flash_map1(PFlashCFI01 *flash, > static void virt_flash_map(RISCVVirtState *s, > MemoryRegion *sysmem) > { > - hwaddr flashsize = virt_memmap[VIRT_FLASH].size / 2; > - hwaddr flashbase = virt_memmap[VIRT_FLASH].base; > + hwaddr flashsize = s->memmap[VIRT_FLASH].size / 2; > + hwaddr flashbase = s->memmap[VIRT_FLASH].base; > > virt_flash_map1(s->flash[0], flashbase, flashsize, > sysmem); > @@ -998,8 +998,8 @@ static void create_fdt_rtc(RISCVVirtState *s, const > MemMapEntry *memmap, > static void create_fdt_flash(RISCVVirtState *s, const MemMapEntry *memmap) > { > MachineState *ms = MACHINE(s); > - hwaddr flashsize = virt_memmap[VIRT_FLASH].size / 2; > - hwaddr flashbase = virt_memmap[VIRT_FLASH].base; > + hwaddr flashsize = s->memmap[VIRT_FLASH].size / 2; > + hwaddr flashbase = s->memmap[VIRT_FLASH].base; > g_autofree char *name = g_strdup_printf("/flash@%" PRIx64, flashbase); > > qemu_fdt_add_subnode(ms->fdt, name); > @@ -1034,7 +1034,7 @@ static void create_fdt_virtio_iommu(RISCVVirtState *s, > uint16_t bdf) > g_autofree char *pci_node = NULL; > > pci_node = g_strdup_printf("/soc/pci@%lx", > - (long) virt_memmap[VIRT_PCIE_ECAM].base); > + (long) s->memmap[VIRT_PCIE_ECAM].base); > iommu_node = g_strdup_printf("%s/virtio_iommu@%x,%x", pci_node, > PCI_SLOT(bdf), PCI_FUNC(bdf)); > iommu_phandle = qemu_fdt_alloc_phandle(fdt); > @@ -1103,7 +1103,7 @@ static void create_fdt_iommu(RISCVVirtState *s, > uint16_t bdf) > g_autofree char *pci_node = NULL; > > pci_node = g_strdup_printf("/soc/pci@%lx", > - (long) virt_memmap[VIRT_PCIE_ECAM].base); > + (long) s->memmap[VIRT_PCIE_ECAM].base); > iommu_node = g_strdup_printf("%s/iommu@%x", pci_node, bdf); > iommu_phandle = qemu_fdt_alloc_phandle(fdt); > qemu_fdt_add_subnode(fdt, iommu_node); > @@ -1125,24 +1125,24 @@ static void finalize_fdt(RISCVVirtState *s) > uint32_t irq_pcie_phandle = 1, irq_virtio_phandle = 1; > uint32_t iommu_sys_phandle = 1; > > - create_fdt_sockets(s, virt_memmap, &phandle, &irq_mmio_phandle, > + create_fdt_sockets(s, s->memmap, &phandle, &irq_mmio_phandle, > &irq_pcie_phandle, &irq_virtio_phandle, > &msi_pcie_phandle); > > - create_fdt_virtio(s, virt_memmap, irq_virtio_phandle); > + create_fdt_virtio(s, s->memmap, irq_virtio_phandle); > > if (virt_is_iommu_sys_enabled(s)) { > create_fdt_iommu_sys(s, irq_mmio_phandle, msi_pcie_phandle, > &iommu_sys_phandle); > } > - create_fdt_pcie(s, virt_memmap, irq_pcie_phandle, msi_pcie_phandle, > + create_fdt_pcie(s, s->memmap, irq_pcie_phandle, msi_pcie_phandle, > iommu_sys_phandle); > > - create_fdt_reset(s, virt_memmap, &phandle); > + create_fdt_reset(s, s->memmap, &phandle); > > - create_fdt_uart(s, virt_memmap, irq_mmio_phandle); > + create_fdt_uart(s, s->memmap, irq_mmio_phandle); > > - create_fdt_rtc(s, virt_memmap, irq_mmio_phandle); > + create_fdt_rtc(s, s->memmap, irq_mmio_phandle); > } > > static void create_fdt(RISCVVirtState *s, const MemMapEntry *memmap) > @@ -1365,14 +1365,13 @@ static void create_platform_bus(RISCVVirtState *s, > DeviceState *irqchip) > { > DeviceState *dev; > SysBusDevice *sysbus; > - const MemMapEntry *memmap = virt_memmap; > int i; > MemoryRegion *sysmem = get_system_memory(); > > dev = qdev_new(TYPE_PLATFORM_BUS_DEVICE); > dev->id = g_strdup(TYPE_PLATFORM_BUS_DEVICE); > qdev_prop_set_uint32(dev, "num_irqs", VIRT_PLATFORM_BUS_NUM_IRQS); > - qdev_prop_set_uint32(dev, "mmio_size", memmap[VIRT_PLATFORM_BUS].size); > + qdev_prop_set_uint32(dev, "mmio_size", > s->memmap[VIRT_PLATFORM_BUS].size); > sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); > s->platform_bus_dev = dev; > > @@ -1383,7 +1382,7 @@ static void create_platform_bus(RISCVVirtState *s, > DeviceState *irqchip) > } > > memory_region_add_subregion(sysmem, > - memmap[VIRT_PLATFORM_BUS].base, > + s->memmap[VIRT_PLATFORM_BUS].base, > sysbus_mmio_get_region(sysbus, 0)); > } > > -- > 2.49.0 > >