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

Abdellatif El Khlifi abdellatif.elkhlifi at arm.com
Fri Oct 14 12:44:03 CEST 2022


On Thu, Oct 13, 2022 at 03:07:39PM +0300, Ilias Apalodimas wrote:
> Hi Abdellatif,
> 
> On Thu, Oct 13, 2022 at 11:38:47AM +0100, Abdellatif El Khlifi wrote:
> > Adding support for Arm FF-A v1.0 (Arm Firmware Framework for Armv8-A) [6].
> > 
> > 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.
> > 
> > The FF-A transport is implemented as a data bus and a core driver is provided.
> > 
> > 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 FF-A bus is discoverable on demand at runtime
> > - The driver provides callbacks 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
> > - 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
> > - Enabling FF-A and MM communication in Corstone1000 platform
> > 
> > For more details about the FF-A core driver please refer to [7].
> > 
> > Please find at [8] 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:
> > ===========================
> > 
> > v6:
> > 
> > * remove clearing x0-x17 registers after SMC calls
> > * drop use of EFI runtime support for FF-A (We decided with Linaro to add this later)
> 
> Thanks! This makes the whole process way way easier.  I am bit overloaded
> atm but I'll try squeezing in reviewing these patches

You're welcome! Happy to improve the patchset :)

> 
> > * drop discovery from initcalls (discovery will be on demand by FF-A users)
> > * add FF-A runtime discovery at MM communication level
> > * update the documentation and move it to doc/arch/arm64.ffa.rst
> > 
> > v5: [5]
> > 
> > * move changelogs in each commit to the changes section
> > 
> > v4: [4]
> > 
> > * add FF-A support README (doc/README.ffa.drv)
> > * improving error handling by mapping the FF-A errors to standard errors
> >   and logs
> > * replacing panics with an error log
> > * align sandbox driver and tests with the new FF-A driver interfaces
> >  and new way of error handling
>  
> [...]
> 
> Thanks
> /Ilias


More information about the U-Boot mailing list