Hi Abdellatif, On Fri, 10 Mar 2023 at 06:12, Abdellatif El Khlifi <abdellatif.elkhl...@arm.com> wrote: > > Adding support for Arm FF-A v1.0 (Arm Firmware Framework for Armv8-A) [A]. > > FF-A describes interfaces (ABIs) that standardize communication > between the Secure World and Normal World. These interfaces enable a pair of > software sandboxes to communicate with each other. A sandbox aka partition > could > be a VM in the Normal or Secure world, an application in S-EL0, or a > Trusted OS in S-EL1. > > FF-A is a discoverable bus and similar to architecture features. > FF-A bus is discovered using ARM_SMCCC_FEATURES mechanism performed > by the PSCI driver. > > => dm tree > > Class Index Probed Driver Name > ----------------------------------------------------------- > ... > firmware 0 [ + ] psci |-- psci > ffa 0 [ ] arm_ffa | `-- arm_ffa > ... > > Clients are able to probe then use the FF-A bus by calling the DM class > searching APIs (e.g: uclass_get_device_by_name). > > This implementation of the specification provides support for Aarch64. > > The FF-A driver uses the SMC ABIs defined by the FF-A specification to: > > - Discover the presence of secure partitions (SPs) of interest > - Access an SP's service through communication protocols > e.g. EFI MM communication protocol > > The FF-A support provides the following features: > > - Being generic by design and can be used by any Arm 64-bit platform > - The FF-A core driver > - The driver provides driver operations to be used by clients to access > the FF-A bus > - FF-A driver can be compiled and used without EFI > - Support for SMCCCv1.2 x0-x17 registers > - Support for SMC32 calling convention > - Support for 32-bit and 64-bit FF-A direct messaging > - A new command called armffa is provided as an example of how to access > the > FF-A bus > - An FF-A Sandbox driver is provided with test cases > - Support for FF-A MM communication (compatible with EFI boot time) > - Enabling FF-A and MM communication in Corstone1000 platform as a use > case > > For more details about the FF-A core driver please refer to [B] and refer to > [C] for > how to use the armffa command. > > Please find at [D] an example of the expected boot logs when enabling > FF-A support for a platform. In this example the platform is > Corstone1000. But it can be any Arm 64-bit platform. > > Changelog of the major changes: > =========================== > > v9: > > * integrate the FF-A bus discovery in the DM and use ARM_SMCCC_FEATURES for > binding > * align FF-A sandbox driver with FF-A discovery through DM > * use DM class APIs to probe and interact with the FF-A bus (in FF-A MM > comms, armffa command, sandbox tests) > * add documentation for the armffa command: doc/usage/cmd/armffa.rst > * introduce testcase for uuid_str_to_le_bin
This version looks a lot better. Things I noticed: - fix up uclass to use operations - tidy up emulator binding to use DT Both should be fairly easy. Other than that I just have code-style nits. Regards, Simon