Re: [PATCH v8 1/2] dt-bindings: arm: Add OP-TEE transport for SCMI
From: Etienne Carriere <hidden>
Date: 2022-03-08 10:18:34
Also in:
linux-devicetree, lkml
Hello Ahmad, On Tue, 8 Mar 2022 at 10:51, Ahmad Fatoum [off-list ref] wrote:
Hello Sudeep, On 01.03.22 16:12, Sudeep Holla wrote:quoted
Hi Ahmad, On Mon, Feb 28, 2022 at 05:01:39PM +0100, Ahmad Fatoum wrote:quoted
Hello Etienne, On 28.10.21 16:00, Etienne Carriere wrote:quoted
Introduce compatible "linaro,scmi-optee" for SCMI transport channel based on an OP-TEE service invocation. The compatible mandates a channel ID defined with property "linaro,optee-channel-id".Not sure if Etienne's reply addressed your queries/concerns correctly. I thought I will add my view anyways.quoted
I just found this thread via the compatible in the STM32MP131 patch set: https://lore.kernel.org/all/20220225133137.813919-1-gabriel.fernandez@foss.st.com/ (local) Linux doesn't care whether PSCI is provided by TF-A, OP-TEE or something else, so there is just the arm,psci* compatible.Correct, the interface to the kernel is fixed and hence we must be able to manage with the standard and fixed sole set of bindings for the same.quoted
What's different about SCMI that this is not possible? Why couldn't the existing binding and driver be used to communicate with OP-TEE as secure monitor as well?However with SCMI, the spec concentrates and standardises all the aspects of the protocol used for the communication while it allows the transport used for such a communication to be implementation specific. It does address some standard transports like mailbox and PCC(ACPI). However, because of the flexibility and also depending on the hardware(or VM), different transports have been added to the list. SMC/HVC was the one, followed by the virtio and OPTEE. While I agree SMC/HVC and OPTEE seem to have lot of common and may have avoided separate bindings. However the FIDs for SMC/HVC is vendor defined(the spec doesn't cover this and hence we utilised/exploited DT). Some vendors wanted interrupt support too which got added. OPTEE eliminates the need for FID and can also provide dynamic shared memory info. In short, it does differ in a way that the driver needs to understand the difference and act differently with each of the unique transports defined in the binding. Hope that explains and addresses your concern.Thanks for the elaborate answer. I see now why it's beneficial to have an OP-TEE transport in general. I don't yet see the benefit to use it in the STM32MP13x instead of SMCs like with STM32MP15x, but that a discussion that I need to have in the aforementioned thread.
Some SCMI operations in OP-TEE need to execute in a threaded context (preemptible, ...). There is no SMC function ID defined for an SCMI thread entry in OP-TEE. We rather use standard invocation of a TEE service: opening a session and invoking commands. Invoked commands are executed in an OP-TEE native threaded context. The service accessed is referred to as the OP-TEE SCMI PTA. As for STM32MP15x, one willing to extend resources assigned to secure world may also need to move mp15 SCMI from SMC transport to optee transport. Regards, Etienne
Thanks again! Ahmad -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel