[PATCH v2 00/13] hw/riscv: trivial code dup work (riscv-server-ref prep)

Daniel Henrique Barboza posted 13 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260826164814.44335-1-daniel.barboza@oss.qualcomm.com
Maintainers: Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Chao Liu <chao.liu@processmission.com>, Joel Stanley <joel@jms.id.au>, Nicholas Piggin <npiggin@gmail.com>, Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>, Michael Ellerman <mpe@kernel.org>, Portia Stephens <portias@oss.tenstorrent.com>
There is a newer version of this series
hw/riscv/device-common.c         | 168 +++++++
hw/riscv/fdt-common.c            | 571 ++++++++++++++++++++++
hw/riscv/meson.build             |   1 +
hw/riscv/riscv-iommu-sys.c       |  25 +
hw/riscv/riscv-iommu.h           |   3 +
hw/riscv/tt_atlantis.c           |  21 +-
hw/riscv/virt.c                  | 811 ++++---------------------------
include/hw/riscv/device-common.h |  32 ++
include/hw/riscv/fdt-common.h    |  94 ++++
include/hw/riscv/virt.h          |  15 -
10 files changed, 983 insertions(+), 758 deletions(-)
create mode 100644 hw/riscv/device-common.c
create mode 100644 include/hw/riscv/device-common.h
[PATCH v2 00/13] hw/riscv: trivial code dup work (riscv-server-ref prep)
Posted by Daniel Henrique Barboza 1 month ago
Greetings,

Here is a bunch of trivial and mostly boring stuff we want to do before
pushing the RISC-V Server Plat Reference board upstream (currently on
v9 [1], not yet sent for review).

Although these changes aim to ease the pain for the riscv-server-ref
review, in the end virt.c was reduced from ~1800 to ~1200 lines, which
is a nice benefit we can have right now.  For riscv-server-ref we went
from ~1450 (v8) to ~770 lines (current v9).

We were able to also reduce tt-atlantis code in one of the patches too.
In fact I think there are opportunities to shrink tt-atlantis board
size, but that will need refactoring logic here and there and this would
fall out of scope for this work.

Patches based on master. 

[1] https://gitlab.com/danielhb/qemu/-/tree/riscv-server-ref_v9



Changes from v1:
- patch 8:
  - renamed 'additional_reg_props' to 'uses_32_bit_spacing', as suggested
    by Anirudh
- v1 link: https://lore.kernel.org/qemu-devel/20260825212326.1907-1-daniel.barboza@oss.qualcomm.com/


Daniel Henrique Barboza (13):
  hw/riscv/fdt-common, virt.c: add create_fdt_flash()
  hw/riscv/fdt-common, virt.c: add create_fdt_syscon()
  hw/riscv/fdt-common, virt.c: add create_fdt_riscv_iommu_sys()
  hw/riscv/fdt_common, virt.c: add create_fdt_pcie()
  hw/riscv/fdt_common, virt.c: add create_fdt_imsic()
  hw/riscv/fdt_common, virt.c: add create_fdt_socket_aplic()
  hw/riscv/fdt-common, virt.c: add create_fdt_socket_aclint()
  hw/riscv/fdt-common, virt.c, tt_atlantis.c: add create_fdt_uart()
  hw/riscv/fdt-common, virt.c: add create_fdt_rtc()
  hw/riscv/device-common, virt.c: add create_platform_bus()
  hw/riscv/device-common, virt.c: add flash helpers
  hw/riscv/device-common, virt.c: add gpex_pcie_init()
  hw/riscv/riscv-iommu-sys.c, virt.c: add create_riscv_iommu_sys()

 hw/riscv/device-common.c         | 168 +++++++
 hw/riscv/fdt-common.c            | 571 ++++++++++++++++++++++
 hw/riscv/meson.build             |   1 +
 hw/riscv/riscv-iommu-sys.c       |  25 +
 hw/riscv/riscv-iommu.h           |   3 +
 hw/riscv/tt_atlantis.c           |  21 +-
 hw/riscv/virt.c                  | 811 ++++---------------------------
 include/hw/riscv/device-common.h |  32 ++
 include/hw/riscv/fdt-common.h    |  94 ++++
 include/hw/riscv/virt.h          |  15 -
 10 files changed, 983 insertions(+), 758 deletions(-)
 create mode 100644 hw/riscv/device-common.c
 create mode 100644 include/hw/riscv/device-common.h

-- 
2.43.0
Re: [PATCH v2 00/13] hw/riscv: trivial code dup work (riscv-server-ref prep)
Posted by Philippe Mathieu-Daudé 1 month ago
On 26/8/26 18:48, Daniel Henrique Barboza wrote:

> Daniel Henrique Barboza (13):
>    hw/riscv/fdt-common, virt.c: add create_fdt_flash()
>    hw/riscv/fdt-common, virt.c: add create_fdt_syscon()
>    hw/riscv/fdt-common, virt.c: add create_fdt_riscv_iommu_sys()
>    hw/riscv/fdt_common, virt.c: add create_fdt_pcie()
>    hw/riscv/fdt_common, virt.c: add create_fdt_imsic()
>    hw/riscv/fdt_common, virt.c: add create_fdt_socket_aplic()
>    hw/riscv/fdt-common, virt.c: add create_fdt_socket_aclint()
>    hw/riscv/fdt-common, virt.c, tt_atlantis.c: add create_fdt_uart()
>    hw/riscv/fdt-common, virt.c: add create_fdt_rtc()
>    hw/riscv/device-common, virt.c: add create_platform_bus()
>    hw/riscv/device-common, virt.c: add flash helpers
>    hw/riscv/device-common, virt.c: add gpex_pcie_init()
>    hw/riscv/riscv-iommu-sys.c, virt.c: add create_riscv_iommu_sys()

Modulo few style comments, series:
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>