diff options
| author | Luc Michel <luc.michel@amd.com> | 2025-09-26 09:07:32 +0200 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2025-10-07 10:35:36 +0100 |
| commit | c58d45a2b9d62638b94cc003c61603f5030dcba7 (patch) | |
| tree | a5c582dc6bdadf126f101425be7424b7678b345f /hw/arm/xlnx-versal-virt.c | |
| parent | 482f95526a52eff123b810953b6f5eb9674e279b (diff) | |
| download | focaccia-qemu-c58d45a2b9d62638b94cc003c61603f5030dcba7.tar.gz focaccia-qemu-c58d45a2b9d62638b94cc003c61603f5030dcba7.zip | |
hw/arm/xlnx-versal: bbram: refactor creation
Refactor the BBRAM device creation using the VersalMap structure. Note that the corresponding FDT node is removed. It does not correspond to any real node in standard Versal DTBs. No matching drivers exist for it. Signed-off-by: Luc Michel <luc.michel@amd.com> Reviewed-by: Francisco Iglesias <francisco.iglesias@amd.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-id: 20250926070806.292065-15-luc.michel@amd.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/arm/xlnx-versal-virt.c')
| -rw-r--r-- | hw/arm/xlnx-versal-virt.c | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/hw/arm/xlnx-versal-virt.c b/hw/arm/xlnx-versal-virt.c index a948e24aea..f766a3e102 100644 --- a/hw/arm/xlnx-versal-virt.c +++ b/hw/arm/xlnx-versal-virt.c @@ -172,26 +172,6 @@ static void fdt_add_rtc_node(VersalVirt *s) g_free(name); } -static void fdt_add_bbram_node(VersalVirt *s) -{ - const char compat[] = TYPE_XLNX_BBRAM; - const char interrupt_names[] = "bbram-error"; - char *name = g_strdup_printf("/bbram@%x", MM_PMC_BBRAM_CTRL); - - qemu_fdt_add_subnode(s->fdt, name); - - qemu_fdt_setprop_cells(s->fdt, name, "interrupts", - GIC_FDT_IRQ_TYPE_SPI, VERSAL_PMC_APB_IRQ, - GIC_FDT_IRQ_FLAGS_LEVEL_HI); - qemu_fdt_setprop(s->fdt, name, "interrupt-names", - interrupt_names, sizeof(interrupt_names)); - qemu_fdt_setprop_sized_cells(s->fdt, name, "reg", - 2, MM_PMC_BBRAM_CTRL, - 2, MM_PMC_BBRAM_CTRL_SIZE); - qemu_fdt_setprop(s->fdt, name, "compatible", compat, sizeof(compat)); - g_free(name); -} - static void fdt_nop_memory_nodes(void *fdt, Error **errp) { Error *err = NULL; @@ -346,7 +326,7 @@ static void create_virtio_regions(VersalVirt *s) } } -static void bbram_attach_drive(XlnxBBRam *dev) +static void bbram_attach_drive(VersalVirt *s) { DriveInfo *dinfo; BlockBackend *blk; @@ -354,7 +334,7 @@ static void bbram_attach_drive(XlnxBBRam *dev) dinfo = drive_get_by_index(IF_PFLASH, 0); blk = dinfo ? blk_by_legacy_dinfo(dinfo) : NULL; if (blk) { - qdev_prop_set_drive(DEVICE(dev), "drive", blk); + versal_bbram_attach_drive(&s->soc, blk); } } @@ -447,7 +427,6 @@ static void versal_virt_init(MachineState *machine) fdt_add_gic_nodes(s); fdt_add_timer_nodes(s); fdt_add_rtc_node(s); - fdt_add_bbram_node(s); fdt_add_cpu_nodes(s, psci_conduit); fdt_add_clk_node(s, "/old-clk125", 125000000, s->phandle.clk_125Mhz); fdt_add_clk_node(s, "/old-clk25", 25000000, s->phandle.clk_25Mhz); @@ -458,7 +437,7 @@ static void versal_virt_init(MachineState *machine) 0, &s->soc.fpd.apu.mr, 0); /* Attach bbram backend, if given */ - bbram_attach_drive(&s->soc.pmc.bbram); + bbram_attach_drive(s); /* Attach efuse backend, if given */ efuse_attach_drive(s); |