[PATCH/RFC 0/9] R-Car X5H Ironhide pure SCMI proof-of-concept

Geert Uytterhoeven geert+renesas at glider.be
Thu Jun 11 06:02:04 PDT 2026


	Hi all,

As promised[1], I tried handling all issues with current R-Car X5H
Ironhide SCP FW SDK v4.28, v4.31, and v4.32 as SCMI quirks.  This helped
identifying missing features in the SCMI drivers and/or protocol:
  - The SCMI PM domain driver does not support always-on domains.
    This limits the ability of the Linux Power Management core to
    optimize its decisions by taking into account which PM domains
    cannot be disabled,
  - The SCMI protocol does not support clock domains.
  - Power management of on-SoC modules is typically handled through two
    methods: module power control and module clock gating.  The former
    can be exposed as an SCMI power domain, the latter as an SCMI clock.
    Currently, the SCMI clock protocol does not support advertizing
    whether a clock is intended for power-management of a hardware
    module, so such clocks can not be managed automatically through
    Runtime PM.  To solve this in general, the SCMI CLOCK_ATTRIBUTES
    could be extended with a new flag in the returned attributes (which
    is not done by this series).

Series overvies:
  - Patch 1 is a preparatory refactoring,
  - Patches 2-3 add support for always-on power areas,
  - Patches 4-7 add support for clock domains,
  - Patch 8 adds an SCMI quirk to advertize power-management clocks on
    R-Car X5H,
  - Patch 9 switches the (still minimal) Ironhide DTS to SCMI (this
    needs manual configuration for the actual SCP firmware version, as
    the SCMI domain IDs differ).
Note that other SCMI quirks than patch 8 are not included in this
series[2], as IMHO the original issues must be fixed in the SCP firmware
instead.

While the result works, and we might get stable SCMI domain IDs
(eventually), I still prefer the approach taking by the CPG/MDLC
remapping driver series[3], as:
  - It describes in DT the actual hardware (which is needed for U-Boot
    IPL),
  - It does not depend on SCMI domain IDs defined by firmware that is
    still under active development,
  - It lets us keep the DTB stable, while SCMI domain IDs may change,
    depending on system partitioning (i.e. software policy),
  - It allows us to support (in the Renesas LTS tree, not upstream)
    firmware versions that already exist, but need quirks for proper
    operation.

Thanks for your comments!

[1] "Re: [PATCH/RFC 05/14] firmware: arm_scmi: Add scmi_get_base_info()"
    https://lore.kernel.org/CAMuHMdWJvMH+a1RqozbaCxxH_8M569JcruTFa8PW+87FysnjHw@mail.gmail.com

[2] List of SCMI quirks which are not included in this series, but are
    needed to boot on R-Car X5H Ironhide:

	firmware: arm_scmi: quirk: Handle critical clocks on R-Car X5H
	firmware: arm_scmi: quirk: Handle bad power domains on R-Car X5H
	firmware: arm_scmi: quirk: Handle bad clocks on R-Car X5H
	firmware: arm_scmi: quirk: Handle wrong clock rates on R-Car X5H
	firmware: arm_scmi: Add support for retrieving rates from another clock
	firmware: arm_scmi: quirk: Handle zero clock rates on R-Car X5H
	firmware: arm_scmi: quirk: Add always-on power domains on R-Car X5H
	firmware: arm_scmi: quirk: Handle broken HSCIF0 reset on R-Car X5H

    With diffstat:

	 drivers/firmware/arm_scmi/clock.c  | 2555 +++++++++++++++++++++++++++-
	 drivers/firmware/arm_scmi/power.c  |   83 +
	 drivers/firmware/arm_scmi/quirks.c |   12 +
	 drivers/firmware/arm_scmi/quirks.h |    4 +
	 drivers/firmware/arm_scmi/reset.c  |    9 +
	 5 files changed, 2655 insertions(+), 8 deletions(-)

[3] "[PATCH/RFC 00/14] R-Car X5H Ironhide SCMI CPG/MDLC remapping"
    https://lore.kernel.org/cover.1776793163.git.geert+renesas@glider.be

Geert Uytterhoeven (9):
  firmware: arm_scmi: Replace scmi_power_proto_ops.name_get() by
    .info_get()
  firmware: arm_scmi: Advertize always-on power domains
  pmdomain: arm: scmi: Add always-on support
  firmware: arm_scmi: Add a flag for power-management clocks
  clk: scmi: Add scmi_clk_is_pm_clk()
  dt-bindings: firmware: arm,scmi: Document arm,clock-domain
  pmdomain: arm: scmi: Add clock domain support
  firmware: arm_scmi: quirk: Handle power management clocks on R-Car X5H
  arm64: dts: renesas: ironhide: Switch to pure SCMI

 .../bindings/firmware/arm,scmi.yaml           |  7 ++
 .../boot/dts/renesas/r8a78000-ironhide.dts    | 44 +++++++++
 drivers/clk/clk-scmi.c                        |  9 ++
 drivers/firmware/arm_scmi/clock.c             | 15 +++
 drivers/firmware/arm_scmi/power.c             | 21 +++--
 drivers/pmdomain/arm/Kconfig                  |  1 +
 drivers/pmdomain/arm/scmi_pm_domain.c         | 93 ++++++++++++++++++-
 include/linux/clk/scmi.h                      | 17 ++++
 include/linux/scmi_protocol.h                 | 12 ++-
 9 files changed, 204 insertions(+), 15 deletions(-)
 create mode 100644 include/linux/clk/scmi.h

-- 
2.43.0

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds



More information about the linux-arm-kernel mailing list