From: Geert Uytterhoeven <geert+renesas@glider.be>
To: Sudeep Holla <sudeep.holla@kernel.org>,
Cristian Marussi <cristian.marussi@arm.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Brian Masney <bmasney@redhat.com>, Ulf Hansson <ulfh@kernel.org>
Cc: arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
devicetree@vger.kernel.org, linux-clk@vger.kernel.org,
linux-pm@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
linux-kernel@vger.kernel.org,
Geert Uytterhoeven <geert+renesas@glider.be>
Subject: [PATCH/RFC 0/9] R-Car X5H Ironhide pure SCMI proof-of-concept
Date: Thu, 11 Jun 2026 15:02:04 +0200 [thread overview]
Message-ID: <cover.1781171705.git.geert+renesas@glider.be> (raw)
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@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
next reply other threads:[~2026-06-11 13:02 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-11 13:02 Geert Uytterhoeven [this message]
2026-06-11 13:02 ` [PATCH/RFC 1/9] firmware: arm_scmi: Replace scmi_power_proto_ops.name_get() by .info_get() Geert Uytterhoeven
2026-06-11 13:02 ` [PATCH/RFC 2/9] firmware: arm_scmi: Advertize always-on power domains Geert Uytterhoeven
2026-06-11 13:02 ` [PATCH/RFC 3/9] pmdomain: arm: scmi: Add always-on support Geert Uytterhoeven
2026-06-11 13:02 ` [PATCH/RFC 4/9] firmware: arm_scmi: Add a flag for power-management clocks Geert Uytterhoeven
2026-06-11 13:02 ` [PATCH/RFC 5/9] clk: scmi: Add scmi_clk_is_pm_clk() Geert Uytterhoeven
2026-06-11 13:02 ` [PATCH/RFC 6/9] dt-bindings: firmware: arm,scmi: Document arm,clock-domain Geert Uytterhoeven
2026-06-11 13:02 ` [PATCH/RFC 7/9] pmdomain: arm: scmi: Add clock domain support Geert Uytterhoeven
2026-06-11 13:02 ` [PATCH/RFC 8/9] firmware: arm_scmi: quirk: Handle power management clocks on R-Car X5H Geert Uytterhoeven
2026-06-11 13:02 ` [PATCH/RFC 9/9] arm64: dts: renesas: ironhide: Switch to pure SCMI Geert Uytterhoeven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1781171705.git.geert+renesas@glider.be \
--to=geert+renesas@glider.be \
--cc=arm-scmi@vger.kernel.org \
--cc=bmasney@redhat.com \
--cc=conor+dt@kernel.org \
--cc=cristian.marussi@arm.com \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=sudeep.holla@kernel.org \
--cc=ulfh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox