Message ID | 20210505093843.3308691-1-sudeep.holla@arm.com |
---|---|
Headers | show |
Series | firmware: Add initial support for Arm FF-A | expand |
On Wed, May 5, 2021 at 11:38 AM Sudeep Holla <sudeep.holla@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@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 >
On Thu, May 20, 2021 at 03:20:46PM +0200, Jens Wiklander wrote: > On Wed, May 5, 2021 at 11:38 AM Sudeep Holla <sudeep.holla@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@linaro.org> > Thanks Jens for testing, much appreciated! -- Regards, Sudeep