[PATCH 0/6] introduce Arm FF-A support

Rob Herring robh at kernel.org
Tue Apr 12 15:28:42 CEST 2022


On Tue, Apr 12, 2022 at 7:01 AM Tom Rini <trini at konsulko.com> wrote:
>
> On Tue, Apr 12, 2022 at 12:43:15PM +0100, Abdellatif El Khlifi wrote:
> > On Thu, Apr 07, 2022 at 08:58:11AM -0400, Tom Rini wrote:
> > > On Thu, Apr 07, 2022 at 01:54:24PM +0100, Abdellatif El Khlifi wrote:
> > > > On Wed, Apr 06, 2022 at 03:47:11PM -0400, Tom Rini wrote:
> > > > > On Tue, Mar 29, 2022 at 04:16:53PM +0100, abdellatif.elkhlifi at arm.com wrote:
> > > > > > From: Abdellatif El Khlifi <abdellatif.elkhlifi at arm.com>
> > > > > >
> > > > > > This patchset adds support for Arm FF-A (Arm Firmware Framework for Armv8-A v1.0).
> > > > > >
> > > > > > FF-A support is generic by design and can be used by any Arm platform.
> > > > > >
> > > > > > The features added are as follows:
> > > > > >
> > > > > > 1/ FF-A device driver
> > > > > > 2/ armffa command
> > > > > > 3/ FF-A Sandbox driver
> > > > > > 4/ FF-A Sandbox test cases
> > > > > > 5/ FF-A MM communication
> > > > > >
> > > > > >
> > > > > > The suggested design sees FF-A as a data bus allowing data exchange with the firmware
> > > > > > running under TrustZone HW (such as Optee). The same approach was followed in the
> > > > > > FF-A driver in Linux kernel (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/arm_ffa/bus.c?h=v5.15#n211))
> > > > > >
> > > > > > u-boot boards using FF-A can provide a device tree node in a <board>-u-boot.dtsi file.
> > > > > > Since the node can not be hosted in Linux device tree, we suggest using u-boot device tree.
> > > > >
> > > > > Why can't the node be in the upstream tree?  It should be, so that it
> > > > > can be shared between all users.  Especially since there's in-Linux
> > > > > users?
> > > > >
> > > > > --
> > > > > Tom
> > > >
> > > > Linux already has an FF-A bus driver and doesn't use a device tree node for FF-A.
> > > >
> > > > The Linux driver registers FF-A as a bus:
> > > >
> > > > int arm_ffa_bus_init(void)
> > > > {
> > > >   return bus_register(&ffa_bus_type);
> > > > }
> > > >
> > > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/arm_ffa/bus.c?h=v5.15#n211
> > > >
> > > > So, there is no user for the node in Linux. That's why we suggest hosting the node in the u-boot device tree (a u-boot.dtsi file)
> > >
> > > OK, but you can still push it upstream as it's not required to have an
> > > in tree user.
> >
> > During the review of Corstone-1000 patchset, Rui Silva had a discussion with the Linux device tree maintainer
> > (Rob Herring). Rob is not in favour of an FFA node in the kernel device tree. This is why we are including the FFA node
> > in u-boot device tree (u-boot.dtsi files).

Sigh. There is not a 'kernel device tree' and a 'u-boot device tree'.
There is only 1. For SystemReadyIR compliance, that is a hard
requirement.

> I'm a bit confused now, can you please link to the kernel thread?  Or
> Rob, can you chime in here please?

The FFA DT binding was rejected in favor of making FFA discoverable.
The FFA spec was amended to address that. DT is only for what we
failed to make discoverable. For hardware, we're stuck with it. We
shouldn't repeat that for software interfaces.

Rob


More information about the U-Boot mailing list