Devicetree
 help / color / mirror / Atom feed
From: Sven Peter <sven@kernel.org>
To: Ard Biesheuvel <ardb@kernel.org>, Will Deacon <will@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Sudeep Holla <sudeep.holla@kernel.org>,
	Janne Grunau <j@jannau.net>, Neal Gompa <neal@gompa.dev>,
	linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org,
	asahi@lists.linux.dev
Subject: Re: [PATCH RFC 0/6] PSCI-via-EFI to support firmware and kernel sharing EL2 for Apple Silicon
Date: Sun, 15 Nov 2026 19:38:35 +0100	[thread overview]
Message-ID: <cadadedb-1de1-46f0-9bfd-35eb8bdfa85b@kernel.org> (raw)
In-Reply-To: <eb75b82a-8910-4198-b89a-5c8b487c0fd5@app.fastmail.com>



On 03.09.26 15:25, Ard Biesheuvel wrote:
> On Thu, 3 Sep 2026, at 14:15, Will Deacon wrote:
>> On Thu, Sep 03, 2026 at 12:42:39PM +0100, Mark Rutland wrote:
>>> On Thu, Sep 03, 2026 at 01:34:56PM +0200, Ard Biesheuvel wrote:
>>>> On Wed, 8 Jul 2026, at 09:15, Sven Peter wrote:
>>>>> This series adds a custom EFI table that points to a PSCI entry point
>>>>> (plus some other stuff that has to be available before EFI runtime
>>>>> services are set up) and adds support for this new conduit to the psci
>>>>> code. We can't directly use the normal EFI runtime path because that one
>>>>> takes a sleeping lock and we need to be able to call into PSCI from
>>>>> atomic context during e.g. cpu bringup or during idle.
>>>>> It also adds support for specifying the specific MAIR attributes for EFI
>>>>> runtime mappings as defined in the latest UEFI spec since Apple Silicon
>>>>> is rather allergic to using Device-nGnRnE vs. Device-nGnRE for its MMIO.
>>>
>>>>>        dt-bindings: arm: psci: Add EFI conduit
>>>>>        arm64/efi: Add and parse custom PSCI EFI configuration table
>>>>>        efi: Add EFI_MEMORY_ISA_{MASK,VALID}
>>>>>        arm64/efi: Honor EFI_MEMORY_ISA_MASK for Device-nGnRnE vs -nGnRE
>>>>>        firmware/psci: Add EFI runtime conduit
>>>>>        arm64: dts: apple: t8103: Add PSCI and CPU idle states
>>>>>
>>>>
>>>> I've picked up patches #3 and #4, which are useful in their own right.
>>>>
>>>> I'm not sure if the arm64 maintainers will want to consider this, but
>>>> I think it's a reasonable compromise, as it puts the abstraction in
>>>> the right place.
>>>
>>> Sorry for the late reply; I've been away almost all of August and I'm
>>> slowly catching up on things.
>>>
>>> As with last time this was proposed (in abstract), I am not happy about
>>> bodging an EFI conduit into PSCI, given that the manner in which state
>>> is managed is completely different from SMCCC.
>>>
>>> If we need a mechanism for doing hotplug and/or idle without HVC/SMC,
>>> that's one thing we can consider. I don't think we should pretend that
>>> it is PSCI.
>>
>> What do you have in mind for an alternative mechanism? I understand your
>> objection to this proposal, but at least it keeps the interface fairly
>> high-level and avoids opening the flood gates for a bunch of SoC-specific
>> idle routines. Are you thinking of extensions to the PSCI spec or
>> something else?
>>
> 
> I can't speak for Mark, of course, but I could imagine EFI being used as a
> conduit to provide a callable set of interfaces (with a rigorously defined
> set of constraints such as the ones in this patch, i.e., reentrancy, no FP
> or SIMD, not relying on ISA features that the OS needs to know about and
> enable, etc).
> 
> There is prior art here in ACPI PRM, which does something similar, and this
> also relies on EFI runtime services.
> 
> You'd still need to implement the CPU ops and a cpuidle driver afaict (no
> expert here), but at least those would be coded against an interface that
> the kernel itself specified, and can be made as generic as we choose to.
> 
> Not saying this is all great, but it might be a worthwhile compromise to
> consider.

Finally getting back to this series...


I'd definitely like to keep mapping the resident firmware using EFI 
runtime services because otherwise I'd have to duplicate a whole lot of 
tricky code to do the same thing via some other means (e.g. a device 
tree nodes that contains all mappings + callbacks) and I just don't see 
much value in that.

I'm happy to just drop the PSCI part though and replace that with a 
simple and somewhat generic "efi-rt" (or similar) cpuidle driver and 
make that one have similar requirements like I added for this RFC series 
and expose bunch of generic callbacks (that will just happen to resemble 
PSCI functions very much ;)) via a custom EFI table. That would keep 
PSCI out of all of this but come at the cost of an additional cpuidle 
driver.

I don't think that would open any flood gates for SoC-specific drivers 
since we could just point them to the generic one and tell them to use 
that one if they can't do PSCI for some reason.


Now before I go off and prototype this: Would this approach be fine in 
general with you, Mark and Will?



Sven


  reply	other threads:[~2026-11-15 18:38 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-08  7:15 [PATCH RFC 0/6] PSCI-via-EFI to support firmware and kernel sharing EL2 for Apple Silicon Sven Peter
2026-07-08  7:15 ` [PATCH RFC 1/6] dt-bindings: arm: psci: Add EFI conduit Sven Peter
2026-07-08  7:15 ` [PATCH RFC 2/6] arm64/efi: Add and parse custom PSCI EFI configuration table Sven Peter
2026-07-08  7:39   ` sashiko-bot
2026-07-08  7:15 ` [PATCH RFC 3/6] efi: Add EFI_MEMORY_ISA_{MASK,VALID} Sven Peter
2026-07-08  7:25   ` sashiko-bot
2026-07-08  7:15 ` [PATCH RFC 4/6] arm64/efi: Honor EFI_MEMORY_ISA_MASK for Device-nGnRnE vs -nGnRE Sven Peter
2026-07-08  7:33   ` sashiko-bot
2026-07-08  7:15 ` [PATCH RFC 5/6] firmware/psci: Add EFI runtime conduit Sven Peter
2026-07-08  7:46   ` sashiko-bot
2026-07-08  7:15 ` [PATCH RFC 6/6] arm64: dts: apple: t8103: Add PSCI and CPU idle states Sven Peter
2026-07-08  7:48   ` sashiko-bot
2026-09-03 11:34 ` [PATCH RFC 0/6] PSCI-via-EFI to support firmware and kernel sharing EL2 for Apple Silicon Ard Biesheuvel
2026-09-03 11:42   ` Mark Rutland
2026-09-03 12:15     ` Will Deacon
2026-09-03 13:25       ` Ard Biesheuvel
2026-11-15 18:38         ` Sven Peter [this message]
2026-09-03 16:26   ` Sven Peter

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=cadadedb-1de1-46f0-9bfd-35eb8bdfa85b@kernel.org \
    --to=sven@kernel.org \
    --cc=ardb@kernel.org \
    --cc=asahi@lists.linux.dev \
    --cc=catalin.marinas@arm.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=ilias.apalodimas@linaro.org \
    --cc=j@jannau.net \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=neal@gompa.dev \
    --cc=robh@kernel.org \
    --cc=sudeep.holla@kernel.org \
    --cc=will@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