Re: [PATCH v14 07/11] arm_ffa: introduce sandbox FF-A support

Simon Glass
2023-07-07T17:35:19Z

Hi Abdellatif,

On Fri, 7 Jul 2023 at 15:44, Abdellatif El Khlifi
<abdellatif.elkhlifi@arm.com> wrote:
>
> Emulate Secure World's FF-A ABIs and allow testing U-Boot FF-A support
>
> Features of the sandbox FF-A support:
>
> - Introduce an FF-A emulator
> - Introduce an FF-A device driver for FF-A comms with emulated Secure World
> - Provides test methods allowing to read the status of the inspected ABIs
>
> The sandbox FF-A emulator supports only 64-bit direct messaging.
>
> Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
> Cc: Tom Rini <trini@konsulko.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Cc: Jens Wiklander <jens.wiklander@linaro.org>
> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
>
> ---
>
> Changelog:
> ===============
>
> v12:
>
> * remove reparenting by making the emulator parent of the FF-A device in the DT
> * add invoke_ffa_fn()
> * address nits
>
> v11:
>
> * rename ffa_try_discovery() to sandbox_ffa_discover()
> * rename sandbox_ffa_query_core_state() to sandbox_query_ffa_emul_state()
> * store the sandbox emulator pointer in the FF-A device uc_priv (struct ffa_priv)
> * set the emulator as parent of the sandbox FF-A device
>
> v10:
>
> * split the FF-A sandbox support into an emulator and a driver
> * read FFA_VERSION and FFA_PARTITION_INFO_GET state using
> sandbox_ffa_query_core_state()
> * drop CONFIG_SANDBOX_FFA config
> * address nits
>
> v9: align FF-A sandbox driver with FF-A discovery through DM
>
> v8: update ffa_bus_prvdata_get() to return a pointer rather than
> a pointer address
>
> v7: state that sandbox driver supports only 64-bit direct messaging
>
> v4: align sandbox driver with the new FF-A driver interfaces
> and new way of error handling
>
> v1: introduce the sandbox driver
>
> MAINTAINERS | 3 +-
> arch/sandbox/dts/sandbox.dtsi | 9 +
> arch/sandbox/dts/test.dts | 8 +
> arch/sandbox/include/asm/sandbox_arm_ffa.h | 72 ++
> .../include/asm/sandbox_arm_ffa_priv.h | 121 +++
> configs/sandbox64_defconfig | 1 +
> configs/sandbox_defconfig | 1 +
> doc/arch/arm64.ffa.rst | 19 +-
> doc/arch/sandbox/sandbox.rst | 1 +
> drivers/firmware/arm-ffa/Kconfig | 13 +-
> drivers/firmware/arm-ffa/Makefile | 10 +-
> drivers/firmware/arm-ffa/ffa-emul-uclass.c | 720 ++++++++++++++++++
> .../firmware/arm-ffa/sandbox_arm_ffa_priv.h | 14 -
> drivers/firmware/arm-ffa/sandbox_ffa.c | 110 +++
> include/dm/uclass-id.h | 1 +
> 15 files changed, 1081 insertions(+), 22 deletions(-)
> create mode 100644 arch/sandbox/include/asm/sandbox_arm_ffa.h
> create mode 100644 arch/sandbox/include/asm/sandbox_arm_ffa_priv.h
> create mode 100644 drivers/firmware/arm-ffa/ffa-emul-uclass.c
> delete mode 100644 drivers/firmware/arm-ffa/sandbox_arm_ffa_priv.h
> create mode 100644 drivers/firmware/arm-ffa/sandbox_ffa.c

Reviewed-by: Simon Glass <sjg@chromium.org>