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