dt-bindings: dvfs: Add support for generic performance domains
authorSudeep Holla <sudeep.holla@arm.com>
Mon, 17 May 2021 15:54:58 +0000 (16:54 +0100)
committerViresh Kumar <viresh.kumar@linaro.org>
Thu, 20 May 2021 03:54:07 +0000 (09:24 +0530)
commit88bf5a85fe9840c9b49c5f6c625cdccd11233943
tree074a4284b2b00de64838ea7174dffb42264b33da
parent17a8b0b6dde67f8561cf2ccbe945d5089cd70e08
dt-bindings: dvfs: Add support for generic performance domains

The CLKSCREW attack [0] exposed security vulnerabilities in energy management
implementations where untrusted software had direct access to clock and
voltage hardware controls. In this attack, the malicious software was able to
place the platform into unsafe overclocked or undervolted configurations. Such
configurations then enabled the injection of predictable faults to reveal
secrets.

Many Arm-based systems used to or still use voltage regulator and clock
frameworks in the kernel. These frameworks allow callers to independently
manipulate frequency and voltage settings. Such implementations can render
systems susceptible to this form of attack.

Attacks such as CLKSCREW are now being mitigated by not having direct and
independent control of clock and voltage in the kernel and moving that
control to a trusted entity, such as the SCP firmware or secure world
firmware/software which are to perform sanity checking on the requested
performance levels, thereby preventing any attempted malicious programming.

With the advent of such an abstraction, there is a need to replace the
generic clock and regulator bindings used by such devices with a generic
performance domains bindings.

[0] https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/tang

Cc: Rob Herring <robh+dt@kernel.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Documentation/devicetree/bindings/arm/cpus.yaml
Documentation/devicetree/bindings/dvfs/performance-domain.yaml [new file with mode: 0644]