[PATCH RFC 1/6] dt-bindings: arm: psci: Add EFI conduit
Sven Peter <[email protected]> Wed, 08 Jul 2026 09:15:37 +0200
| Newsgroups | org.kernel.vger.linux-efi,dev.linux.lists.asahi,org.infradead.lists.linux-arm-kernel,org.kernel.feeds.b4-sent,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Apple Silicon machines run the kernel in the highest available exception level and can't trap to anything higher for PSCI calls. Instead, we will add support for a conduit based on EFI runtime services to be able to share the same level with the kernel itself. Add the conduit to the bindings. Signed-off-by: Sven Peter <[email protected]> --- Documentation/devicetree/bindings/arm/psci.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/psci.yaml b/Documentation/devicetree/bindings/arm/psci.yaml index 6e2e0c551841..f9d607e1a213 100644 --- a/Documentation/devicetree/bindings/arm/psci.yaml +++ b/Documentation/devicetree/bindings/arm/psci.yaml @@ -28,6 +28,14 @@ description: |+ Note that the immediate field of the trapping instruction must be set to #0. + Alternatively, when the "efi" method is used, the PSCI functions are not + invoked by trapping to a higher privilege level. Instead, they are backed + by EFI runtime services: the firmware exposes a PSCI handler that the OS + invokes through an EFI runtime call. This method is intended for platforms + where the kernel runs at the highest privilege level, leaving no higher level + to trap into; the firmware shares that same level and is instead reached + through EFI runtime services. + [2] Power State Coordination Interface (PSCI) specification http://infocenter.arm.com/help/topic/com.arm.doc.den0022c/DEN0022C_Power_State_Coordination_Interface.pdf @@ -69,6 +77,10 @@ properties: - smc # HVC #0, with the register assignments specified in this binding. - hvc + # The PSCI functions are implemented by EFI runtime services, and are + # invoked through a runtime call into the firmware rather than via an + # SMC or HVC trap. + - efi cpu_suspend: $ref: /schemas/types.yaml#/definitions/uint32 -- 2.55.0