[PATCH v6 0/6] firmware: Add initial support for Arm FF-A

Jens Wiklander jens.wiklander at linaro.org
Thu May 20 06:20:46 PDT 2021


On Wed, May 5, 2021 at 11:38 AM Sudeep Holla <sudeep.holla at arm.com> wrote:
>
> Hi all,
>
> This is very basic implementation for in-kernel support for Arm FF-A
> specification.
>
> Arm Firmware Framework for Armv8-A specification[1] describes a software
> architecture that provides mechanism to utilise the virtualization
> extension to isolate software images and describes interfaces that
> standardize communication between the various software images. This
> includes communication between images in the Secure and Normal world.
>
> The main idea here is to create FFA device to establish any communication
> with a secure partition. This is currently tested with OPTEE(with changes
> to OPTEE driver adding FFA as transport)
>
> The series can be fetched from [2]
>
> --
> Regards,
> Sudeep
>
> [1] https://developer.arm.com/documentation/den0077/latest
> [2] git://git.kerniel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git v5.13/ffa

Tested OK with my OP-TEE driver patches on top of 755e78187c4e
("firmware: arm_ffa: Add support for MEM_* interfaces"), which is the
latest on the v5.13/ffa branch above.

Tested-by: Jens Wiklander <jens.wiklander at linaro.org>

Cheers,
Jens


>
>
> v5->v6:
>         - Dropped DT dependecy completely and use the discovery APIs for
>           adding FFA partitions on the bus. They is some workaround added
>           as v1.0 doesn't provide UUID as part of the discovery APIs which
>           is used to match the devices and driver on FFA bus.
>         - Extended SMCCC v1.2 API to support full set of input and output
>           registers.
>         - Couple of minor bug fixes found as part of testing
>
> v4->v5:
>         - Fixed couple of comments in DT bindings
>         - Moved to use native version of RXTX_MAP call, fixed vm_id param
>           to RXTX_UNMAP, dropped couple of unused confusingly named macros
>           (can be added back with correct name when we need to use them)
>
> v3->v4:
>         - Added support to allow partitions to set 32bit only mode
>         - Addressed all the comments from Jens Wiklander
>
> v2->v3:
>         - Dropped hypervisor partitions and userspace support as it is
>           no longer in the list of requirements
>         - Moved away from ioctl style interface for in-kernel users as
>           there is no need to keep in sync with userspace anymore
>         - Some kerneldoc fixes as pointed out in earlier reviews
>
> v1->v2:
>         - Moved userspace code to a separate unit, will move to separate
>           module. Still working on minimizing initcall dependencies and
>           exported functions to reuse some of the code.
>         - Fixed couple of minor issues pointed out
>         - Dropped ASYNC send message as I haven't been able to test
>
> Sudeep Holla (6):
>   arm64: smccc: Add support for SMCCCv1.2 extended input/output registers
>   firmware: arm_ffa: Add initial FFA bus support for device enumeration
>   firmware: arm_ffa: Add initial Arm FFA driver support
>   firmware: arm_ffa: Add support for SMCCC as transport to FFA driver
>   firmware: arm_ffa: Setup in-kernel users of FFA partitions
>   firmware: arm_ffa: Add support for MEM_* interfaces
>
>  MAINTAINERS                       |   7 +
>  arch/arm64/kernel/asm-offsets.c   |   9 +
>  arch/arm64/kernel/smccc-call.S    |  57 +++
>  drivers/firmware/Kconfig          |   1 +
>  drivers/firmware/Makefile         |   1 +
>  drivers/firmware/arm_ffa/Kconfig  |  21 +
>  drivers/firmware/arm_ffa/Makefile |   6 +
>  drivers/firmware/arm_ffa/bus.c    | 210 +++++++++
>  drivers/firmware/arm_ffa/common.h |  31 ++
>  drivers/firmware/arm_ffa/driver.c | 719 ++++++++++++++++++++++++++++++
>  drivers/firmware/arm_ffa/smccc.c  |  39 ++
>  include/linux/arm-smccc.h         |  55 +++
>  include/linux/arm_ffa.h           | 266 +++++++++++
>  13 files changed, 1422 insertions(+)
>  create mode 100644 drivers/firmware/arm_ffa/Kconfig
>  create mode 100644 drivers/firmware/arm_ffa/Makefile
>  create mode 100644 drivers/firmware/arm_ffa/bus.c
>  create mode 100644 drivers/firmware/arm_ffa/common.h
>  create mode 100644 drivers/firmware/arm_ffa/driver.c
>  create mode 100644 drivers/firmware/arm_ffa/smccc.c
>  create mode 100644 include/linux/arm_ffa.h
>
> --
> 2.25.1
>



More information about the linux-arm-kernel mailing list