[PATCH v15 00/10] introduce Arm FF-A support

Abdellatif El Khlifi abdellatif.elkhlifi at arm.com
Mon Jul 24 20:29:28 CEST 2023


Hi Tom, Simon,

On Thu, Jul 13, 2023 at 02:28:37PM +0100, Abdellatif El Khlifi wrote:
> 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 changes:
> ===========================
> 
> v15:
> 
> Simon:
> 
> * drop commit "log: select physical address formatting in a generic way",
>    this will be sent as a follow-up commit independently from this patchset
> * armffa.c : integrate PHYS_ADDR_LN
> * replace FFA_SHARED_MM_BUFFER_* defines with configs
> 

A gentle reminder about this patchset. All remaining comments have been addressed in v15.

Cheers
Abdellatif


More information about the U-Boot mailing list