[PATCH 0/5] RISC-V: RPMI performance service bindings and cpufreq support

Joshua Yeong joshua.yeong at starfivetech.com
Tue Jan 6 01:21:11 PST 2026


This patch series introduces support for the RISC-V RPMI (RISC-V Platform
Management Interface) performance service, covering both Device Tree bindings
and a corresponding cpufreq driver.

The first part of the series adds YAML bindings to describe the RPMI performance
service as provided by platform firmware, as well as the supervisor-level
controller interface exposed to the operating system. The bindings also document
how CPU nodes reference performance domains managed by RPMI.

The final patch builds on these definitions by introducing a cpufreq driver that
leverages the RPMI performance service to manage CPU frequency scaling on RISC-V
systems. The driver supports RPMI access through SBI-based transport mechanisms
as well as dedicated supervisor-mode transports.

RPMI specification reference [1] and [2]

Test Environment is as follows:
https://github.com/yeongjoshua/linux/tree/v6.19-rc4/rpmi-performance
https://github.com/riscv-software-src/opensbi
https://github.com/yeongjoshua/qemu/tree/rpmi-dev-upstream

Use '-M virt -M rpmi=true' when running qemu

[1] https://github.com/riscv-non-isa/riscv-sbi-doc/releases
[2] https://github.com/riscv-non-isa/riscv-rpmi/releases

Joshua Yeong (5):
  dt-bindings: firmware: Add RPMI performance service message proxy
    bindings
  dt-bindings: firmware: Add RPMI performance service bindings
  dt-bindings: riscv: cpus: document performance-domains property
  cpufreq: Add cpufreq driver for the RISC-V RPMI performance service
    group
  MAINTAINERS: Add RISC-V RPMI performance service group

 .../firmware/riscv,rpmi-mpxy-performance.yaml |  65 ++
 .../firmware/riscv,rpmi-performance.yaml      |  62 ++
 .../devicetree/bindings/riscv/cpus.yaml       |   7 +
 MAINTAINERS                                   |   4 +
 drivers/cpufreq/Kconfig                       |  26 +-
 drivers/cpufreq/Makefile                      |   6 +-
 drivers/cpufreq/riscv-rpmi-cpufreq.c          | 976 ++++++++++++++++++
 include/linux/mailbox/riscv-rpmi-message.h    |  16 +
 8 files changed, 1155 insertions(+), 7 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/firmware/riscv,rpmi-mpxy-performance.yaml
 create mode 100644 Documentation/devicetree/bindings/firmware/riscv,rpmi-performance.yaml
 create mode 100644 drivers/cpufreq/riscv-rpmi-cpufreq.c

--
2.43.0



More information about the linux-riscv mailing list