mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
f16a48fec9
Provide armffa command showcasing the use of the U-Boot FF-A support armffa is a command showcasing how to invoke FF-A operations. This provides a guidance to the client developers on how to call the FF-A bus interfaces. The command also allows to gather secure partitions information and ping these partitions. The command is also helpful in testing the communication with secure partitions. For more details please refer to the command documentation [1]. A Sandbox test is provided for the armffa command. [1]: doc/usage/cmd/armffa.rst Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com> Reviewed-by: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@konsulko.com> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org> Cc: Jens Wiklander <jens.wiklander@linaro.org> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
42 lines
1.7 KiB
Text
42 lines
1.7 KiB
Text
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
config ARM_FFA_TRANSPORT
|
|
bool "Enable Arm Firmware Framework for Armv8-A driver"
|
|
depends on DM && (ARM64 || SANDBOX)
|
|
select ARM_SMCCC if !SANDBOX
|
|
select ARM_SMCCC_FEATURES if !SANDBOX
|
|
imply CMD_ARMFFA
|
|
select LIB_UUID
|
|
select DEVRES
|
|
help
|
|
The Firmware Framework for Arm A-profile processors (FF-A)
|
|
describes interfaces (ABIs) that standardize communication
|
|
between the Secure World and Normal World leveraging TrustZone
|
|
technology.
|
|
|
|
The FF-A support in U-Boot is based on FF-A specification v1.0 and uses SMC32
|
|
calling convention.
|
|
|
|
FF-A specification:
|
|
|
|
https://developer.arm.com/documentation/den0077/a/?lang=en
|
|
|
|
In U-Boot FF-A design, FF-A is considered as a discoverable bus.
|
|
FF-A bus is discovered using ARM_SMCCC_FEATURES mechanism performed
|
|
by the PSCI driver.
|
|
The Secure World is considered as one entity to communicate with
|
|
using the FF-A bus.
|
|
FF-A communication is handled by one device and one instance (the bus).
|
|
The FF-A support on U-Boot takes care of all the interactions between Normal
|
|
world and Secure World.
|
|
|
|
Generic FF-A methods are implemented in the Uclass (arm-ffa-uclass.c).
|
|
Arm specific methods are implemented in the Arm driver (arm-ffa.c).
|
|
|
|
FF-A sandbox is provided to run FF-A under sandbox and allows to test the FF-A Uclass.
|
|
Sandbox support includes an emulator for Arm FF-A which emulates the FF-A side of
|
|
the Secure World and provides FF-A ABIs inspection methods (ffa-emul-uclass.c).
|
|
An FF-A sandbox driver is also provided for FF-A communication with the emulated
|
|
Secure World (sandbox_ffa.c).
|
|
|
|
For more details about the FF-A support, please refer to doc/arch/arm64.ffa.rst
|