On 4/29/25 3:12 AM, Joel Stanley wrote:
> The current device tree property uses two cells for the address (and for
> the size), but assumes the they are less than 32 bits by hard coding the
> high cell to zero.
>
> Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper
> and lower 32 bits across cells.
>
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
> hw/riscv/virt.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
> index 823ef7cbe447..f8943f81790c 100644
> --- a/hw/riscv/virt.c
> +++ b/hw/riscv/virt.c
> @@ -1088,8 +1088,7 @@ static void create_fdt_iommu_sys(RISCVVirtState *s, uint32_t irq_chip,
> qemu_fdt_setprop_cell(fdt, iommu_node, "#iommu-cells", 1);
> qemu_fdt_setprop_cell(fdt, iommu_node, "phandle", iommu_phandle);
>
> - qemu_fdt_setprop_cells(fdt, iommu_node, "reg",
> - addr >> 32, addr, size >> 32, size);
> + qemu_fdt_setprop_sized_cells(fdt, iommu_node, "reg", 2, addr, 2, size);
> qemu_fdt_setprop_cell(fdt, iommu_node, "interrupt-parent", irq_chip);
>
> qemu_fdt_setprop_cells(fdt, iommu_node, "interrupts",