Add RPMI transport and service-group support to the RISC-V Server Platform
Reference Board. The series applies on top of the initial RPMI virt support
series and wires the board's reset, HSM, and system-suspend operations to the
same librpmi-backed implementation used by ``virt``.

The RPMI FDT service nodes are emitted as ``/soc/<service>`` siblings of the
shared-memory mailbox. Each node keeps its ``mboxes`` phandle and service-group
ID, and the server-reference qtest checks this hierarchy as a regression.

Changes since v1:
- Series-wide:
  - Rebase onto current QEMU master, where the Server Platform Reference
    Board prerequisite is already present.
  - Replay the RPMI virt v12 series and update the shared FDT syscon helper
    call accordingly.
  - Fold Charles Perry's FDT/schema fix into the server-reference changes.
- [1/2] hw/riscv: add RPMI support for server reference platform:
  - Emit server-reference RPMI service nodes as /soc siblings of the mailbox.
  - Keep RPMI mandatory when librpmi is available.
  - Retain configure and runtime warnings while allowing no-librpmi boot.
- [2/2] tests/qtest: cover server reference platform RPMI:
  - Reuse the common RPMI protocol tests and register the server-reference
    machine-specific subset.
  - Add regression coverage for service-node paths, mailbox phandles, and
    service-group IDs.

Dependencies:

- The companion RPMI virt prerequisite:
  [PATCH v12 00/10] riscv: add initial RPMI virt support
  (the `part2-rpmi-initial` mailout directory alongside this one).

The server-reference board is already included in the stated QEMU master base.
Daniel Henrique Barboza's original v9 series is retained here for provenance:

  
https://lore.kernel.org/qemu-devel/[email protected]/

Apply the server-reference patches after the RPMI virt series.

The exact replayed stack is available at:

  https://github.com/slingappa/qemu/tree/server-ref-platform

The base branch is the RPMI virt replay on the server-reference prerequisite:

  https://github.com/slingappa/qemu/tree/server-ref-platform-base

Testing:

* librpmi-enabled build: passed.
* Server-reference qtest: 24/24 subtests passed, including the FDT sibling
  hierarchy regression.
* No-librpmi build and expected configure/runtime warning behavior: passed.
* Real server-reference Linux boot and RPMI guest reset, suspend/wakeup,
  reboot, and poweroff: passed.

Subrahmanya Lingappa (2):
  hw/riscv: add RPMI support for server reference platform
  tests/qtest: cover server reference platform RPMI

 docs/system/riscv/riscv-server-ref.rst |  41 ++++
 hw/riscv/Kconfig                       |   1 +
 hw/riscv/server_platform_ref.c         | 144 ++++++++++-
 meson.build                            |   4 +
 tests/qtest/riscv-rpmi-test.c          | 319 +++++++++++++++++--------
 5 files changed, 402 insertions(+), 107 deletions(-)


base-commit: d73149283205645625bfa9fe029cfb68e4c4a9ae
prerequisite-patch-id: 9def488de98fc23699367d9927a2748614b568a9
prerequisite-patch-id: 9cbfba6703781182b08d9a639510b02a3f1ad53a
prerequisite-patch-id: d6ea62843f075b7b7f4000096ee31c6b566e1d92
prerequisite-patch-id: ad6707f93581f344c7e268834b159d019f45476c
prerequisite-patch-id: 1be7a5599a2f93d2030e874b5174ed0a7ee5e593
prerequisite-patch-id: c798e606a4fc4e4adae39e168d6267d143436f34
prerequisite-patch-id: e640b0babd95b0a1ee38f29b08775ff83a2ed197
prerequisite-patch-id: 29f7ddf0db5ffe290ebd6158bc4b4ffdb17cc612
prerequisite-patch-id: 2866353e85e88c0013ec1d4d849f4d779e90180e
prerequisite-patch-id: 29b62d3041ae2818a4e2593e478cf6f453061dcd
-- 
2.43.0


Reply via email to