On Tue, Jun 06, 2023 at 12:56:28PM +0100, Abdellatif El Khlifi wrote: > On Mon, May 22, 2023 at 10:13:20AM +0100, Abdellatif El Khlifi wrote: > > Hi Simon, Tom, > > > Hi Simon, > > > > > Adding support for Arm FF-A v1.0 (Arm Firmware Framework for Armv8-A) [A]. > > > > > > FF-A specifies interfaces that enable a pair of software execution environments aka partitions to > > > communicate with each other. A 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_first_device). > > > > > > 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 > > > - FF-A support 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 > > > - Support for FF-A MM communication (compatible with EFI boot time) > > > - Enabling FF-A and MM communication in Corstone1000 platform as a use case > > > - A Uclass driver providing generic FF-A methods. > > > - An Arm FF-A device driver providing Arm-specific methods and reusing the Uclass methods. > > > - A sandbox emulator for Arm FF-A, emulates the FF-A side of the Secure World and provides > > > FF-A ABIs inspection methods. > > > - An FF-A sandbox device driver for FF-A communication with the emulated Secure World. > > > The driver leverages the FF-A Uclass to establish FF-A communication. > > > - Sandbox FF-A test cases. > > > - A new command called armffa is provided as an example of how to access the > > > FF-A bus > > > > > > For more details about the FF-A support 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: > > > =========================== > > > > > > v12: > > > > > > * remove the global variable (dscvry_info), use uc_priv instead > > > * replace dscvry_info.invoke_ffa_fn() with a weak invoke_ffa_fn > > > (user drivers can override it) > > > * improve FFA_PARTITION_INFO_GET implementation > > > (clients no longer need to calloc a buffer) > > > * remove reparenting by making the sandbox emulator parent of the FF-A device in the DT > > > * improve argument checks for the armffa command > > > * address nits > > > > ... > > > Cc: Tom Rini > > > Cc: Simon Glass > > > > A gentle reminder about the v12 patchset. > > > > Your feedback is more than welcome :) > > Could you please provide a feedback about the v12 patchset ? > > Most of the patches are generic. > > I'm gonna address Ilias comment for patch #9 with your future comments. > > Your review is very much appreciated. I've been waiting for Ilias to be happy with the series and then I'll pick it up for -next. -- Tom