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()

 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