[PATCH v8 03/10] arm_ffa: introduce Arm FF-A low-level driver
Abdellatif El Khlifi
abdellatif.elkhlifi at arm.com
Wed Jan 25 11:55:11 CET 2023
On Wed, Jan 25, 2023 at 07:48:17AM +0000, Sudeep Holla wrote:
> On Tue, Jan 24, 2023 at 03:56:19PM +0000, Abdellatif El Khlifi wrote:
> >
> > I'd like to suggest the creation of a root node called arm_smccc as shown below.
> >
>
> Not sure if U-Boot already supports the existing binding of PSCI and OPTEE.
>
> > This node is the parent of all nodes using SMC calls like FF-A, PSCI, optee, ...
> >
>
> Well if you want to start with the clean slate for all new platforms, then
> it is a good way. But you don't need any of the child nodes as they can all
> be queried and discovered.
>
> > The first child to be integrated in the arm_smccc root node is FF-A.
> > Hopefully, in the future the other features such as PSCI could be integrated
> > under arm_smccc as well.
> >
>
> You don't need FF-A or any other node if the presence of SMCCC node indicates
> the support of SMCCC v1.1+(need to go back and check to confirm this).
> You can query the presence of all the feature. There is no need to have a
> node for each of the feature supported. That was the whole discussion of this
> thread IIUC.
>
> --
> Regards,
> Sudeep
Hi Simon, Rob, Sudeep
I'm tweaking my previous suggestion regarding the creation of a new arm_smccc root node.
This node is the parent of all SW features using SMC calls like FF-A, PSCI, optee, ...
However, no child node is created in the DT. The SW features are seen as architecture features
and can be discovered by querying through SMC calls.
So, when probed the arm_smccc device driver tries to discover the SW features (FF-A, PSCI, optee, ...)
by calling xxx_discover() API for each feature ( e.g: ffa_discover() ).
The xxx_discover() creates U-Boot device(s) for the feature and set arm_smccc as the parent.
"dm tree" command should show:
SMCCC
+--PSCI
+--TRNG
+--FF-A
+--SCMI (sometimes)
+--OP-TEE
+--...Whatever Arm comes up with next...
As Sudeep suggested, we only need this node:
firmware {
arm_smccc {
compatible = "arm,smccc-1.2";
};
};
What do you think guys ? Are you happy with this approach ?
Kind regards,
Abdellatif
More information about the U-Boot
mailing list