On Tue, Jun 16, 2026 at 6:43 AM Daniel Henrique Barboza
<[email protected]> wrote:
>
> Salutations,
>
>
> We have a good amount of code repetition between boards, mostly because
> we copied/pasted components from one to the other across the years.  But
> now we want to upstream the RISC-V Server Platform, currently at v8 [1],
> and this topic came in the review.  This is a work I've been ducking for
> 2 years now but seems like it's time we do something about it.
>
> The patches are mostly code moving work with some design decisions
> here and there in the new helper file.  When needed I changed board code
> first to be compatible with what would be the helper (usually the code
> from 'virt', which is more modern) and then I moved stuff to a helper.
>
> The result of this series in the FDTs:
>
> - for 'virt': no changes;
> - for 'spike': the /htif node changed places with /soc;
> - for 'sifive_u': phandles values for cpu-intc changed because now we're
>   generating them (see patch 1).  Aside from that the board now has a
>   'cpu-map' subnode with cluster and core IDs;
>
>
> This is not everything -  I have a shorter follow up FDT  series ready
> to go as soon as we get this accepted.  Figured that 13 patches is
> enough for one go.
>
>
> Patches based on alistair/riscv-to-apply.next.
>
>
> [1] 
> https://lore.kernel.org/qemu-devel/[email protected]/
>
> Daniel Henrique Barboza (13):
>   hw/riscv/sifive_u.c: add a FDT phandle to cpu-intc
>   hw/riscv: add fdt-common helper
>   hw/riscv/numa: make numa_enabled() public
>   hw/riscv: add create_fdt_socket_memory() helper
>   hw/riscv/sifive_u.c: add intc_phandles array
>   hw/riscv/spike.c: add intc_phandles array
>   hw/riscv: add create_fdt_clint() helper
>   hw/riscv/sifive_u.c: add cpu-map, cluster and core DTs
>   hw/riscv: add fdt_create_cpu_socket_subnode() helper
>   hw/riscv: add create_fdt_socket_cpus()
>   hw/riscv/spike.c: use create_fdt_socket_cpus()
>   hw/riscv/fdt_common.c: create create_fdt_socket_cpu_internal()
>   hw/riscv: add create_fdt_socket_cpu_sifive()

Thanks!

Applied to riscv-to-apply.next

@Joel Stanley , @Nicholas Piggin , @Portia Stephens FYI

Alistair

>
>  hw/riscv/fdt-common.c         | 202 ++++++++++++++++++++++++++++++++++
>  hw/riscv/meson.build          |   1 +
>  hw/riscv/numa.c               |  20 ++--
>  hw/riscv/sifive_u.c           |  88 ++++-----------
>  hw/riscv/spike.c              | 123 ++++-----------------
>  hw/riscv/virt.c               | 182 +++++-------------------------
>  include/hw/riscv/fdt-common.h |  33 ++++++
>  include/hw/riscv/numa.h       |   8 ++
>  8 files changed, 322 insertions(+), 335 deletions(-)
>  create mode 100644 hw/riscv/fdt-common.c
>  create mode 100644 include/hw/riscv/fdt-common.h
>
> --
> 2.43.0
>
>

Reply via email to