All of lore.kernel.org
 help / color / mirror / Atom feed
From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
To: sjg@chromium.org
Cc: Drew.Reed@arm.com, abdellatif.elkhlifi@arm.com,
	achin.gupta@arm.com, ilias.apalodimas@linaro.org,
	jens.wiklander@linaro.org, nd@arm.com, robh@kernel.org,
	sudeep.holla@arm.com, trini@konsulko.com, u-boot@lists.denx.de,
	xueliang.zhong@arm.com
Subject: [PATCH v9 04/10] arm_ffa: introduce Arm FF-A low-level driver
Date: Fri, 10 Mar 2023 14:10:10 +0000	[thread overview]
Message-ID: <20230310141016.137986-5-abdellatif.elkhlifi@arm.com> (raw)
In-Reply-To: <20230310141016.137986-1-abdellatif.elkhlifi@arm.com>

Add the core driver implementing Arm Firmware Framework for Armv8-A v1.0

The Firmware Framework for Arm A-profile processors (FF-A v1.0) [1]
describes interfaces (ABIs) that standardize communication
between the Secure World and Normal World leveraging TrustZone
technology.

This driver uses 64-bit registers as per SMCCCv1.2 spec and comes
on top of the SMCCC layer. The driver provides the FF-A ABIs needed for
querying the FF-A framework from the secure world.

The driver uses SMC32 calling convention which means using the first
32-bit data of the Xn registers.

All supported ABIs come with their 32-bit version except FFA_RXTX_MAP
which has 64-bit version supported.

Both 32-bit and 64-bit direct messaging are supported which allows both
32-bit and 64-bit clients to use the FF-A bus.

FF-A is a discoverable bus and similar to architecture features.
FF-A bus is discovered using ARM_SMCCC_FEATURES mechanism performed
by the PSCI driver.

Clients are able to probe then use the FF-A bus by calling the DM class
searching APIs (e.g: uclass_get_device_by_name).

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). This FF-A driver takes care of all the
interactions between Normal world and Secure World.

The driver exports its operations to be used by upper layers.

Exported operations:

- partition_info_get
- sync_send_receive
- rxtx_unmap

For more details please refer to the driver documentation [2].

[1]: https://developer.arm.com/documentation/den0077/latest/
[2]: doc/arch/arm64.ffa.rst

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>

---
Changelog:
===============

v9:

* integrate the FF-A bus discovery in the DM and use ARM_SMCCC_FEATURES for binding

v8:

* make ffa_get_partitions_info() second argument to be an SP count in both
  modes
* update ffa_bus_prvdata_get() to return a pointer rather than a pointer
  address
* remove packing from ffa_partition_info and ffa_send_direct_data structures
* pass the FF-A bus device to the bus operations

v7:

* add support for 32-bit direct messaging
* rename be_uuid_str_to_le_bin() to uuid_str_to_le_bin()
* improve the declaration of error handling mapping
* stating in doc/arch/arm64.ffa.rst that EFI runtime is not supported

v6:

* drop use of EFI runtime support (We decided with Linaro to add this later)
* drop discovery from initcalls (discovery will be on demand by FF-A users)
* set the alignment of the RX/TX buffers to the larger translation granule size
* move FF-A RX/TX buffers unmapping at ExitBootServices() to a separate commit
* update the documentation and move it to doc/arch/arm64.ffa.rst

v4:

* add doc/README.ffa.drv
* moving the FF-A driver work to drivers/firmware/arm-ffa
* use less #ifdefs in lib/efi_loader/efi_boottime.c and replace
  #if defined by #if CONFIG_IS_ENABLED
* improving error handling by mapping the FF-A errors to standard errors
  and logs
* replacing panics with an error log and returning an error code
* improving features discovery in FFA_FEATURES by introducing
  rxtx_min_pages private data field
* add ffa_remove and ffa_unbind functions
* improve how the driver behaves when bus discovery is done more than
  once

v3:

* align the interfaces of the U-Boot FF-A driver with those in the linux
  FF-A driver
* remove the FF-A helper layer
* make the U-Boot FF-A driver independent from EFI
* provide an optional config that enables copying the driver data to EFI
  runtime section at ExitBootServices service
* use 64-bit version of FFA_RXTX_MAP, FFA_MSG_SEND_DIRECT_{REQ, RESP}

v2:

* make FF-A bus discoverable using device_{bind, probe} APIs
* remove device tree support

v1:

* introduce FF-A bus driver with device tree support

 MAINTAINERS                               |    7 +
 doc/arch/arm64.ffa.rst                    |  282 +++++
 doc/arch/index.rst                        |    1 +
 drivers/Makefile                          |    1 +
 drivers/firmware/Kconfig                  |    1 +
 drivers/firmware/arm-ffa/Kconfig          |   33 +
 drivers/firmware/arm-ffa/Makefile         |    8 +
 drivers/firmware/arm-ffa/arm-ffa-uclass.c |   33 +
 drivers/firmware/arm-ffa/arm_ffa_priv.h   |  209 ++++
 drivers/firmware/arm-ffa/core.c           | 1249 +++++++++++++++++++++
 include/arm_ffa.h                         |   88 ++
 include/dm/uclass-id.h                    |    6 +
 12 files changed, 1918 insertions(+)
 create mode 100644 doc/arch/arm64.ffa.rst
 create mode 100644 drivers/firmware/arm-ffa/Kconfig
 create mode 100644 drivers/firmware/arm-ffa/Makefile
 create mode 100644 drivers/firmware/arm-ffa/arm-ffa-uclass.c
 create mode 100644 drivers/firmware/arm-ffa/arm_ffa_priv.h
 create mode 100644 drivers/firmware/arm-ffa/core.c
 create mode 100644 include/arm_ffa.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 58370c5fbd..1dfa23c1f0 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -266,6 +266,13 @@ F:	drivers/net/cortina_ni.h
 F:	drivers/net/phy/ca_phy.c
 F:	configs/cortina_presidio-asic-pnand_defconfig
 
+ARM FF-A
+M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+S:	Maintained
+F:	doc/arch/arm64.ffa.rst
+F:	drivers/firmware/arm-ffa/
+F:	include/arm_ffa.h
+
 ARM FREESCALE IMX
 M:	Stefano Babic <sbabic@denx.de>
 M:	Fabio Estevam <festevam@gmail.com>
diff --git a/doc/arch/arm64.ffa.rst b/doc/arch/arm64.ffa.rst
new file mode 100644
index 0000000000..8fad9ef3d0
--- /dev/null
+++ b/doc/arch/arm64.ffa.rst
@@ -0,0 +1,282 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+Arm FF-A Driver
+===============
+
+Summary
+-------
+
+FF-A stands for Firmware Framework for Arm A-profile processors.
+
+FF-A specifies interfaces that enable a pair of software sandboxes to
+communicate with each other. A sandbox aka partition could
+be a VM in the Normal or Secure world, an application in S-EL0, or a
+Trusted OS in S-EL1.
+
+This FF-A driver implements the interfaces to communicate with partitions in
+the Secure world aka Secure partitions (SPs).
+
+The driver specifically focuses on communicating with SPs that isolate portions
+of EFI runtime services that must run in a protected environment which is
+inaccessible by the Host OS or Hypervisor. Examples of such services are
+set/get variables.
+
+FF-A driver uses the SMC ABIs defined by the FF-A specification to:
+
+- Discover the presence of SPs of interest
+- Access an SP's service through communication protocols
+  e.g. EFI MM communication protocol
+
+At this stage of development the FF-A driver supports EFI boot time only.
+
+Runtime support will be added in future developments.
+
+FF-A and SMC specifications
+-------------------------------------------
+
+The current implementation of the driver relies on FF-A specification v1.0
+and uses SMC32 calling convention which means using the first 32-bit data of the
+Xn registers.
+
+At this stage we only need the FF-A v1.0 features.
+
+The driver has been tested with OP-TEE which supports SMC32 calling convention.
+
+For more details please refer to the FF-A v1.0 spec:
+https://documentation-service.arm.com/static/5fb7e8a6ca04df4095c1d65e?token=
+
+Hypervisors are supported if they are configured to trap SMC calls.
+
+The FF-A driver uses 64-bit registers as per SMCCCv1.2 specification.
+
+For more details please refer to the SMC Calling Convention v1.2 spec:
+https://documentation-service.arm.com/static/5f8edaeff86e16515cdbe4c6?token=
+
+Supported hardware
+--------------------------------
+
+Aarch64 plaforms
+
+Configuration
+----------------------
+
+CONFIG_ARM_FFA_TRANSPORT
+    Enables the FF-A bus driver. Turn this on if you want to use FF-A
+    communication.
+
+FF-A ABIs under the hood
+---------------------------------------
+
+Invoking an FF-A ABI involves providing to the secure world/hypervisor the
+expected arguments from the ABI.
+
+The ABI arguments are stored in x0 to x7 registers. Then, an SMC instruction
+is executed.
+
+At the secure side level or hypervisor the ABI is handled at a higher exception
+level and the arguments are read and processed.
+
+The response is put back through x0 to x7 registers and control is given back
+to the U-Boot FF-A driver (non-secure world).
+
+The driver reads the response and processes it accordingly.
+
+This methodology applies to all the FF-A ABIs in the driver.
+
+FF-A bus discovery in U-Boot
+-------------------------------------------
+
+When CONFIG_ARM_FFA_TRANSPORT is enabled, the FF-A bus is considered as
+an architecture feature and discovered using ARM_SMCCC_FEATURES mechanism.
+This discovery mechanism is performed by the PSCI driver.
+
+The PSCI driver comes with a PSCI device tree node which is the root node for all
+architecture features including FF-A bus.
+
+::
+
+   => dm tree
+
+    Class     Index  Probed  Driver                Name
+   -----------------------------------------------------------
+   ...
+    firmware      0  [ + ]   psci                      |-- psci
+    ffa                   0  [   ]   arm_ffa               |   `-- arm_ffa
+   ...
+
+The PSCI driver is bound to the PSCI device and when probed it tries to discover
+the architecture features by calling a callback the features drivers provide.
+
+In case of FF-A, the callback is ffa_bus_is_supported() which tries to discover the
+FF-A framework by querying the FF-A framework version from secure world using
+FFA_VERSION ABI. When discovery is successful, the ARM_SMCCC_FEATURES
+mechanism creates a U-Boot device for the FF-A bus and binds the FF-A driver
+with the device using device_bind_driver().
+
+At this stage the FF-A bus is registered with the DM and can be interacted with using
+the DM APIs.
+
+Clients are able to probe then use the FF-A bus by calling the DM class searching APIs
+(e.g: uclass_get_device_by_name). Please refer to the armffa command implementation
+as an example of how to probe and interact with the FF-A driver.
+
+When calling uclass_get_device_by_name() for example, the FF-A driver is probed
+and ffa_probe() is called which performs the following:
+
+    - allocating private data (priv) with devres
+    - updating priv with discovery information
+    - querying from secure world the u-boot endpoint ID
+    - querying from secure world the supported features of FFA_RXTX_MAP
+    - mapping the RX/TX buffers
+    - querying from secure world all the partitions information
+
+When one of the above actions fails, probing fails and the driver stays not active
+and can be probed again if needed.
+
+FF-A device destruction
+-------------------------
+
+When the FF-A device is removed by the DM, RX/TX buffers are automatically
+unmapped and freed. Same happens when the device is unbound before being
+removed first.
+
+For example, at EFI efi_exit_boot_services() active devices are automatically removed
+by dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL).
+
+By consequence, the FF-A RX/TX are unmapped automatically.
+
+Requirements for clients
+-------------------------------------
+
+When using the FF-A bus with EFI, clients must query the SPs they are looking for
+during EFI boot time mode using the service UUID.
+
+The RX/TX buffers are only available at EFI boot time. Querying partitions is
+done at boot time and data is cached for future use.
+
+RX/TX buffers should be unmapped before EFI runtime mode starts.
+The driver provides a bus operation for that called rxtx_unmap() and this is done
+automatically at efi_exit_boot_services().
+
+If  RX/TX buffers created by U-Boot are not unmapped and by consequence becoming
+available at EFI runtime, secure world will get confused about RX/TX buffers
+ownership (U-Boot vs kernel).
+
+When invoking FF-A direct messaging, clients should specify which ABI protocol
+they want to use (32-bit vs 64-bit). Selecting the protocol means using
+the 32-bit or 64-bit version of FFA_MSG_SEND_DIRECT_{REQ, RESP}.
+The calling convention between U-Boot and the secure world stays the same: SMC32.
+
+The bus driver layer
+------------------------------
+
+The driver comes on top of the SMCCC layer and is implemented in
+drivers/firmware/arm-ffa/core.c
+
+The driver provides the following features:
+
+- Support for the 32-bit version of the following ABIs:
+
+    - FFA_VERSION
+    - FFA_ID_GET
+    - FFA_FEATURES
+    - FFA_PARTITION_INFO_GET
+    - FFA_RXTX_UNMAP
+    - FFA_RX_RELEASE
+    - FFA_RUN
+    - FFA_ERROR
+    - FFA_SUCCESS
+    - FFA_INTERRUPT
+    - FFA_MSG_SEND_DIRECT_REQ
+    - FFA_MSG_SEND_DIRECT_RESP
+
+- Support for the 64-bit version of the following ABIs:
+
+    - FFA_RXTX_MAP
+    - FFA_MSG_SEND_DIRECT_REQ
+    - FFA_MSG_SEND_DIRECT_RESP
+
+- Processing the received data from the secure world/hypervisor and caching it
+
+- Hiding from upper layers the FF-A protocol and registers details. Upper
+  layers focus on exchanged data, the driver takes care of how to transport
+  that to the secure world/hypervisor using FF-A
+
+- The driver provides callbacks to be used by clients to access the FF-A bus:
+
+    - partition_info_get
+    - sync_send_receive
+    - rxtx_unmap
+
+- FF-A bus discovery makes sure FF-A framework is responsive and compatible
+  with the driver
+
+- FF-A bus can be compiled and used without EFI
+
+The armffa command
+-----------------------------------
+
+armffa is an implementation defined command showcasing how to use the FF-A driver and how to invoke
+its operations.
+
+Please refer the command documentation at doc/usage/cmd/armffa.rst
+
+Example of boot logs with FF-A enabled
+--------------------------------------
+
+For example, when using FF-A with Corstone-1000 the logs are as follows:
+
+::
+
+   U-Boot 2023.01 (Mar 07 2023 - 11:05:21 +0000) corstone1000 aarch64
+
+   DRAM:  2 GiB
+   [FFA] trying FF-A framework discovery
+   [FFA] Conduit is SMC
+   [FFA] FF-A driver 1.0
+   FF-A framework 1.0
+   [FFA] Versions are compatible
+   Core:  18 devices, 12 uclasses, devicetree: separate
+   MMC:
+   Loading Environment from nowhere... OK
+   ...
+   Hit any key to stop autoboot:  0
+   Loading kernel from 0x083EE000 to memory ...
+   ...
+   [FFA] endpoint ID is 0
+   [FFA] Using 1 4KB page(s) for RX/TX buffers size
+   [FFA] RX buffer at virtual address 00000000fdf4e000
+   [FFA] TX buffer at virtual address 00000000fdf50000
+   [FFA] RX/TX buffers mapped
+   [FFA] Reading partitions data from the RX buffer
+   [FFA] Partition ID 8001 : info cached
+   [FFA] Partition ID 8002 : info cached
+   [FFA] Partition ID 8003 : info cached
+   [FFA] 3 partition(s) found and cached
+   [FFA] Preparing for checking partitions count
+   [FFA] Searching partitions using the provided UUID
+   [FFA] No partition found. Querying framework ...
+   [FFA] Reading partitions data from the RX buffer
+   [FFA] Number of partition(s) matching the UUID: 1
+   EFI: Pre-allocating 1 partition(s) info structures
+   [FFA] Preparing for filling partitions info
+   [FFA] Searching partitions using the provided UUID
+   [FFA] Partition ID 8003 matches the provided UUID
+   EFI: MM partition ID 0x8003
+   EFI: Corstone1000: Capsule shared buffer at 0x80000000 , size 8192 pages
+   Booting /MemoryMapped(0x0,0x88200000,0xf00000)
+   EFI stub: Booting Linux Kernel...
+   EFI stub: Using DTB from configuration table
+   EFI stub: Exiting boot services...
+   [FFA] removing the device
+   [FFA] unmapping RX/TX buffers
+   [FFA] Freeing RX/TX buffers
+   Booting Linux on physical CPU 0x0000000000 [0x411fd040]
+   Linux version 6.1.9-yocto-standard (oe-user@oe-host) (aarch64-poky-linux-musl-gcc (GCC) 12.2.0, GNU ld (GNU Binutils) 2.40.202301193
+   Machine model: ARM Corstone1000 FPGA MPS3 board
+   efi: EFI v2.100 by Das U-Boot
+   ...
+
+Contributors
+------------
+   * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
diff --git a/doc/arch/index.rst b/doc/arch/index.rst
index b8da4b8c8e..2f916f4026 100644
--- a/doc/arch/index.rst
+++ b/doc/arch/index.rst
@@ -8,6 +8,7 @@ Architecture-specific doc
 
    arc
    arm64
+   arm64.ffa
    m68k
    mips
    nios2
diff --git a/drivers/Makefile b/drivers/Makefile
index 58be410135..885fdef4dc 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -112,6 +112,7 @@ obj-y += iommu/
 obj-y += smem/
 obj-y += thermal/
 obj-$(CONFIG_TEE) += tee/
+obj-$(CONFIG_ARM_FFA_TRANSPORT) += firmware/arm-ffa/
 obj-y += axi/
 obj-y += ufs/
 obj-$(CONFIG_W1) += w1/
diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
index eae1c8ddc9..8789b1ea14 100644
--- a/drivers/firmware/Kconfig
+++ b/drivers/firmware/Kconfig
@@ -45,4 +45,5 @@ config ARM_SMCCC_FEATURES
 	  the PSCI driver is always probed and binds dirvers registered to the Arm SMCCC
 	  services if any and reported as supported by the SMCCC firmware.
 
+source "drivers/firmware/arm-ffa/Kconfig"
 source "drivers/firmware/scmi/Kconfig"
diff --git a/drivers/firmware/arm-ffa/Kconfig b/drivers/firmware/arm-ffa/Kconfig
new file mode 100644
index 0000000000..e5b2912201
--- /dev/null
+++ b/drivers/firmware/arm-ffa/Kconfig
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: GPL-2.0
+
+config ARM_FFA_TRANSPORT
+	bool "Enable Arm Firmware Framework for Armv8-A driver"
+	depends on DM && ARM64
+	select ARM_SMCCC
+	select ARM_SMCCC_FEATURES
+	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.
+
+	  This driver 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).
+	  This FF-A driver takes care of all the interactions between Normal world
+	  and Secure World.
+
+	  For more details about the FF-A driver, please refer to doc/arch/arm64.ffa.rst
+
diff --git a/drivers/firmware/arm-ffa/Makefile b/drivers/firmware/arm-ffa/Makefile
new file mode 100644
index 0000000000..c8d83b4bc9
--- /dev/null
+++ b/drivers/firmware/arm-ffa/Makefile
@@ -0,0 +1,8 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+#
+# Authors:
+#   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+
+obj-y += arm-ffa-uclass.o core.o
diff --git a/drivers/firmware/arm-ffa/arm-ffa-uclass.c b/drivers/firmware/arm-ffa/arm-ffa-uclass.c
new file mode 100644
index 0000000000..bc4fe68d57
--- /dev/null
+++ b/drivers/firmware/arm-ffa/arm-ffa-uclass.c
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ *
+ * Authors:
+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <asm/global_data.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/**
+ * ffa_bus_get_ops() - bus driver operations getter
+ * @dev:	the arm_ffa device
+ * Returns a pointer to the FF-A driver ops field.
+ * Return:
+ * The ops pointer on success, NULL on failure.
+ */
+const struct ffa_bus_ops *ffa_bus_get_ops(struct udevice *dev)
+{
+	if (!dev)
+		return NULL;
+
+	return device_get_ops(dev);
+}
+
+UCLASS_DRIVER(ffa) = {
+	.name		= "ffa",
+	.id		= UCLASS_FFA,
+};
diff --git a/drivers/firmware/arm-ffa/arm_ffa_priv.h b/drivers/firmware/arm-ffa/arm_ffa_priv.h
new file mode 100644
index 0000000000..51df7d1c64
--- /dev/null
+++ b/drivers/firmware/arm-ffa/arm_ffa_priv.h
@@ -0,0 +1,209 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ *
+ * Authors:
+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ */
+
+#ifndef __ARM_FFA_PRV_H
+#define __ARM_FFA_PRV_H
+
+#include <arm_ffa.h>
+#include <mapmem.h>
+#include <linux/bitfield.h>
+#include <linux/bitops.h>
+
+/* This header is exclusively used by the FF-A core driver, sandbox driver and sandbox tests */
+
+/* FF-A core driver name */
+#define FFA_DRV_NAME "arm_ffa"
+
+/* The FF-A SMC function definitions */
+
+#if CONFIG_IS_ENABLED(SANDBOX_FFA)
+#include "sandbox_arm_ffa.h"
+#else
+/* CONFIG_ARM64 */
+#include <linux/arm-smccc.h>
+typedef struct arm_smccc_1_2_regs ffa_value_t;
+#endif
+
+/* Defining the function pointer type for the function executing the FF-A ABIs */
+typedef void (*invoke_ffa_fn_t)(ffa_value_t args, ffa_value_t *res);
+
+/* FF-A driver version definitions */
+
+#define MAJOR_VERSION_MASK		GENMASK(30, 16)
+#define MINOR_VERSION_MASK		GENMASK(15, 0)
+#define GET_FFA_MAJOR_VERSION(x)		\
+				((u16)(FIELD_GET(MAJOR_VERSION_MASK, (x))))
+#define GET_FFA_MINOR_VERSION(x)		\
+				((u16)(FIELD_GET(MINOR_VERSION_MASK, (x))))
+#define PACK_VERSION_INFO(major, minor)			\
+	(FIELD_PREP(MAJOR_VERSION_MASK, (major)) |	\
+	 FIELD_PREP(MINOR_VERSION_MASK, (minor)))
+
+#define FFA_MAJOR_VERSION		(1)
+#define FFA_MINOR_VERSION		(0)
+#define FFA_VERSION_1_0		\
+			PACK_VERSION_INFO(FFA_MAJOR_VERSION, FFA_MINOR_VERSION)
+
+/* Endpoint ID mask (u-boot endpoint ID) */
+
+#define GET_SELF_ENDPOINT_ID_MASK		GENMASK(15, 0)
+#define GET_SELF_ENDPOINT_ID(x)		\
+			((u16)(FIELD_GET(GET_SELF_ENDPOINT_ID_MASK, (x))))
+
+#define PREP_SELF_ENDPOINT_ID_MASK		GENMASK(31, 16)
+#define PREP_SELF_ENDPOINT_ID(x)		\
+			(FIELD_PREP(PREP_SELF_ENDPOINT_ID_MASK, (x)))
+
+/* Partition endpoint ID mask  (partition with which u-boot communicates with) */
+
+#define PREP_PART_ENDPOINT_ID_MASK		GENMASK(15, 0)
+#define PREP_PART_ENDPOINT_ID(x)		\
+			(FIELD_PREP(PREP_PART_ENDPOINT_ID_MASK, (x)))
+
+/* Definitions of the Arm FF-A interfaces supported by the Arm FF-A driver */
+
+#define FFA_SMC(calling_convention, func_num)				\
+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, (calling_convention),	\
+			   ARM_SMCCC_OWNER_STANDARD, (func_num))
+
+#define FFA_SMC_32(func_num)				FFA_SMC(ARM_SMCCC_SMC_32, (func_num))
+#define FFA_SMC_64(func_num)				FFA_SMC(ARM_SMCCC_SMC_64, (func_num))
+
+enum ffa_abis {
+	FFA_ERROR                 = 0x60,
+	FFA_SUCCESS               = 0x61,
+	FFA_INTERRUPT             = 0x62,
+	FFA_VERSION               = 0x63,
+	FFA_FEATURES              = 0x64,
+	FFA_RX_RELEASE            = 0x65,
+	FFA_RXTX_MAP              = 0x66,
+	FFA_RXTX_UNMAP            = 0x67,
+	FFA_PARTITION_INFO_GET    = 0x68,
+	FFA_ID_GET                = 0x69,
+	FFA_RUN                   = 0x6d,
+	FFA_MSG_SEND_DIRECT_REQ   = 0x6f,
+	FFA_MSG_SEND_DIRECT_RESP  = 0x70,
+
+	/* To be updated when adding new FFA IDs */
+	FFA_FIRST_ID              = FFA_ERROR, /* Lowest number ID */
+	FFA_LAST_ID               = FFA_MSG_SEND_DIRECT_RESP, /* Highest number ID */
+};
+
+enum ffa_abi_errcode {
+	NOT_SUPPORTED = 1,
+	INVALID_PARAMETERS,
+	NO_MEMORY,
+	BUSY,
+	INTERRUPTED,
+	DENIED,
+	RETRY,
+	ABORTED,
+	MAX_NUMBER_FFA_ERR
+};
+
+/* Container structure and helper macros to map between an FF-A error and relevant error log */
+struct ffa_abi_errmap {
+	char *err_str[MAX_NUMBER_FFA_ERR];
+};
+
+#define FFA_ERRMAP_COUNT (FFA_LAST_ID - FFA_FIRST_ID + 1)
+#define FFA_ID_TO_ERRMAP_ID(ffa_id) ((ffa_id) - FFA_FIRST_ID)
+
+/*
+ * struct ffa_partition_uuid - 16 bytes UUID transmitted by FFA_PARTITION_INFO_GET
+ * @a1-4:	32-bit words access to the UUID data
+ *
+ */
+struct ffa_partition_uuid {
+	u32 a1; /* w1 */
+	u32 a2; /* w2 */
+	u32 a3; /* w3 */
+	u32 a4; /* w4 */
+};
+
+/**
+ * enum ffa_rxtx_buf_sizes - minimum sizes supported
+ * for the RX/TX buffers
+ */
+enum ffa_rxtx_buf_sizes {
+	RXTX_4K,
+	RXTX_64K,
+	RXTX_16K
+};
+
+/**
+ * struct ffa_rxtxpair - Hosts the RX/TX buffers virtual addresses
+ * @rxbuf:	virtual address of the RX buffer
+ * @txbuf:	virtual address of the TX buffer
+ * @rxtx_min_pages:	RX/TX buffers minimum size in pages
+ *
+ * Hosts the virtual addresses of the mapped RX/TX buffers
+ * These addresses are used by the FF-A functions that use the RX/TX buffers
+ */
+struct ffa_rxtxpair {
+	void *rxbuf; /* Virtual address returned by memalign */
+	void *txbuf; /* Virtual address returned by memalign */
+	size_t rxtx_min_pages; /* Minimum number of pages in each of the RX/TX buffers */
+};
+
+/**
+ * struct ffa_partition_desc - the secure partition descriptor
+ * @info:	partition information
+ * @sp_uuid:	the secure partition UUID
+ *
+ * Each partition has its descriptor containing the partitions information and the UUID
+ */
+struct ffa_partition_desc {
+	struct ffa_partition_info info;
+	struct ffa_partition_uuid sp_uuid;
+};
+
+/**
+ * struct ffa_partitions - descriptors for all secure partitions
+ * @count:	The number of partitions descriptors
+ * @descs	The partitions descriptors table
+ *
+ * Contains the partitions descriptors table
+ */
+struct ffa_partitions {
+	u32 count;
+	struct ffa_partition_desc *descs; /* Virtual address */
+};
+
+/**
+ * struct ffa_discovery_info - discovery information
+ * @fwk_version:	FF-A framework version
+ * @invoke_ffa_fn:	The function executing the FF-A function (ABI)
+ */
+struct ffa_discovery_info {
+	u32 fwk_version;
+	invoke_ffa_fn_t invoke_ffa_fn;
+};
+
+/**
+ * struct ffa_priv - the driver private data structure
+ *
+ * @dscvry_info:	Initial information discovered
+ * @ops:	The driver operations structure
+ * @id:	u-boot endpoint ID
+ * @partitions:	The partitions descriptors structure
+ * @pair:	The RX/TX buffers pair
+ *
+ * The device private data structure containing all the
+ * data read from secure world.
+ * The data is dynamically allocated, managed by devres
+ * and registered with the DM.
+ */
+struct ffa_priv {
+	struct ffa_discovery_info dscvry_info;
+	struct ffa_bus_ops ops;
+	u16 id;
+	struct ffa_partitions partitions;
+	struct ffa_rxtxpair pair;
+};
+#endif
diff --git a/drivers/firmware/arm-ffa/core.c b/drivers/firmware/arm-ffa/core.c
new file mode 100644
index 0000000000..2210f5343c
--- /dev/null
+++ b/drivers/firmware/arm-ffa/core.c
@@ -0,0 +1,1249 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ *
+ * Authors:
+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <log.h>
+#include <malloc.h>
+#include <string.h>
+#include <uuid.h>
+#include <asm/global_data.h>
+#include <dm/device-internal.h>
+#include <dm/devres.h>
+#include <dm/root.h>
+#include <linux/errno.h>
+#include <linux/sizes.h>
+#include "arm_ffa_priv.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/* FF-A discovery information */
+struct ffa_discovery_info dscvry_info;
+
+/* The function that sets the SMC conduit */
+static int ffa_set_smc_conduit(void);
+
+/* Error mapping declarations */
+
+int ffa_to_std_errmap[MAX_NUMBER_FFA_ERR] = {
+	[NOT_SUPPORTED] = -EOPNOTSUPP,
+	[INVALID_PARAMETERS] = -EINVAL,
+	[NO_MEMORY] = -ENOMEM,
+	[BUSY] = -EBUSY,
+	[INTERRUPTED] = -EINTR,
+	[DENIED] = -EACCES,
+	[RETRY] = -EAGAIN,
+	[ABORTED] = -ECANCELED,
+};
+
+struct ffa_abi_errmap err_msg_map[FFA_ERRMAP_COUNT] = {
+	[FFA_ID_TO_ERRMAP_ID(FFA_VERSION)] = {
+		{
+			[NOT_SUPPORTED] =
+			"NOT_SUPPORTED: A Firmware Framework implementation does not exist",
+		},
+	},
+	[FFA_ID_TO_ERRMAP_ID(FFA_ID_GET)] = {
+		{
+			[NOT_SUPPORTED] =
+			"NOT_SUPPORTED: This function is not implemented at this FF-A instance",
+		},
+	},
+	[FFA_ID_TO_ERRMAP_ID(FFA_FEATURES)] = {
+		{
+			[NOT_SUPPORTED] =
+			"NOT_SUPPORTED: FFA_RXTX_MAP is not implemented at this FF-A instance",
+		},
+	},
+	[FFA_ID_TO_ERRMAP_ID(FFA_PARTITION_INFO_GET)] = {
+		{
+			[NOT_SUPPORTED] =
+			"NOT_SUPPORTED: This function is not implemented at this FF-A instance",
+			[INVALID_PARAMETERS] =
+			"INVALID_PARAMETERS: Unrecognized UUID",
+			[NO_MEMORY] =
+			"NO_MEMORY: Results cannot fit in RX buffer of the caller",
+			[BUSY] =
+			"BUSY: RX buffer of the caller is not free",
+			[DENIED] =
+			"DENIED: Callee is not in a state to handle this request",
+		},
+	},
+	[FFA_ID_TO_ERRMAP_ID(FFA_RXTX_UNMAP)] = {
+		{
+			[NOT_SUPPORTED] =
+			"NOT_SUPPORTED: FFA_RXTX_UNMAP is not implemented at this FF-A instance",
+			[INVALID_PARAMETERS] =
+			"INVALID_PARAMETERS: No buffer pair registered on behalf of the caller",
+		},
+	},
+	[FFA_ID_TO_ERRMAP_ID(FFA_RX_RELEASE)] = {
+		{
+			[NOT_SUPPORTED] =
+			"NOT_SUPPORTED: FFA_RX_RELEASE is not implemented at this FF-A instance",
+			[DENIED] =
+			"DENIED: Caller did not have ownership of the RX buffer",
+		},
+	},
+	[FFA_ID_TO_ERRMAP_ID(FFA_RXTX_MAP)] = {
+		{
+			[NOT_SUPPORTED] =
+			"NOT_SUPPORTED: This function is not implemented at this FF-A instance",
+			[INVALID_PARAMETERS] =
+			"INVALID_PARAMETERS: Field(s) in input parameters incorrectly encoded",
+			[NO_MEMORY] =
+			"NO_MEMORY: Not enough memory",
+			[DENIED] =
+			"DENIED: Buffer pair already registered",
+		},
+	},
+};
+
+/**
+ * ffa_to_std_errno() - convert FF-A error code to standard error code
+ * @ffa_errno:	Error code returned by the FF-A ABI
+ *
+ * This function maps the given FF-A error code as specified
+ * by the spec to a u-boot standard error code.
+ *
+ * Return:
+ *
+ * The standard error code on success. . Otherwise, failure
+ */
+int ffa_to_std_errno(int ffa_errno)
+{
+	int err_idx = -ffa_errno;
+
+	/* Map the FF-A error code to the standard u-boot error code */
+	if (err_idx > 0 && err_idx < MAX_NUMBER_FFA_ERR)
+		return ffa_to_std_errmap[err_idx];
+	return -EINVAL;
+}
+
+/**
+ * ffa_print_error_log() - print the error log corresponding to the selected FF-A ABI
+ * @ffa_id:	FF-A ABI ID
+ * @ffa_errno:	Error code returned by the FF-A ABI
+ *
+ * This function maps the FF-A error code to the error log relevant to the
+ * selected FF-A ABI. Then the error log is printed.
+ *
+ * Return:
+ *
+ * 0 on success. . Otherwise, failure
+ */
+int ffa_print_error_log(u32 ffa_id, int ffa_errno)
+{
+	int err_idx = -ffa_errno, abi_idx = 0;
+
+	/* Map the FF-A error code to the corresponding error log */
+
+	if (err_idx <= 0 || err_idx >= MAX_NUMBER_FFA_ERR)
+		return -EINVAL;
+
+	if (ffa_id < FFA_FIRST_ID || ffa_id > FFA_LAST_ID)
+		return -EINVAL;
+
+	abi_idx = FFA_ID_TO_ERRMAP_ID(ffa_id);
+	if (abi_idx < 0 || abi_idx >= FFA_ERRMAP_COUNT)
+		return -EINVAL;
+
+	if (!err_msg_map[abi_idx].err_str[err_idx])
+		return -EINVAL;
+
+	log_err("[FFA] %s\n", err_msg_map[abi_idx].err_str[err_idx]);
+
+	return 0;
+}
+
+/* Driver core functions */
+
+/**
+ * ffa_get_version() - FFA_VERSION handler function
+ *
+ * This function implements FFA_VERSION FF-A function
+ * to get from the secure world the FF-A framework version
+ * FFA_VERSION is used to discover the FF-A framework.
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_get_version(void)
+{
+	u16 major, minor;
+	ffa_value_t res = {0};
+	int ffa_errno;
+
+	if (!dscvry_info.invoke_ffa_fn)
+		return -EINVAL;
+
+	dscvry_info.invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_SMC_32(FFA_VERSION), .a1 = FFA_VERSION_1_0,
+			}, &res);
+
+	ffa_errno = res.a0;
+	if (ffa_errno < 0) {
+		ffa_print_error_log(FFA_VERSION, ffa_errno);
+		return ffa_to_std_errno(ffa_errno);
+	}
+
+	major = GET_FFA_MAJOR_VERSION(res.a0);
+	minor = GET_FFA_MINOR_VERSION(res.a0);
+
+	log_info("[FFA] FF-A driver %d.%d\nFF-A framework %d.%d\n",
+		 FFA_MAJOR_VERSION, FFA_MINOR_VERSION, major, minor);
+
+	if (major == FFA_MAJOR_VERSION && minor >= FFA_MINOR_VERSION) {
+		log_info("[FFA] Versions are compatible\n");
+
+		dscvry_info.fwk_version = res.a0;
+
+		return 0;
+	}
+
+	log_err("[FFA] versions are incompatible\nExpected: %d.%d , Found: %d.%d\n",
+		FFA_MAJOR_VERSION, FFA_MINOR_VERSION, major, minor);
+
+	return -EPROTONOSUPPORT;
+}
+
+/**
+ * ffa_get_endpoint_id() - FFA_ID_GET handler function
+ * @dev: The FF-A bus device
+ *
+ * This function implements FFA_ID_GET FF-A function
+ * to get from the secure world u-boot endpoint ID
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_get_endpoint_id(struct udevice *dev)
+{
+	ffa_value_t res = {0};
+	int ffa_errno;
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	priv->dscvry_info.invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_SMC_32(FFA_ID_GET),
+			}, &res);
+
+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
+		priv->id = GET_SELF_ENDPOINT_ID((u32)res.a2);
+		log_info("[FFA] endpoint ID is %u\n", priv->id);
+
+		return 0;
+	}
+
+	ffa_errno = res.a2;
+
+	ffa_print_error_log(FFA_ID_GET, ffa_errno);
+
+	return ffa_to_std_errno(ffa_errno);
+}
+
+/**
+ * ffa_set_rxtx_buffers_pages_cnt() - sets the minimum number of pages in each of the RX/TX buffers
+ * @dev: The FF-A bus device
+ * @prop_field: properties field obtained from FFA_FEATURES ABI
+ *
+ * This function sets the minimum number of pages
+ *  in each of the RX/TX buffers in the private data structure
+ *
+ * Return:
+ *
+ * buf_4k_pages points to the returned number of pages
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_set_rxtx_buffers_pages_cnt(struct udevice *dev, u32 prop_field)
+{
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	switch (prop_field) {
+	case RXTX_4K:
+		priv->pair.rxtx_min_pages = 1;
+		break;
+	case RXTX_16K:
+		priv->pair.rxtx_min_pages = 4;
+		break;
+	case RXTX_64K:
+		priv->pair.rxtx_min_pages = 16;
+		break;
+	default:
+		log_err("[FFA] RX/TX buffer size not supported\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+/**
+ * ffa_get_rxtx_map_features() - FFA_FEATURES handler function with FFA_RXTX_MAP argument
+ * @dev: The FF-A bus device
+ *
+ * This function implements FFA_FEATURES FF-A function
+ * to retrieve the FFA_RXTX_MAP features
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_get_rxtx_map_features(struct udevice *dev)
+{
+	ffa_value_t res = {0};
+	int ffa_errno;
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	priv->dscvry_info.invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_SMC_32(FFA_FEATURES),
+			.a1 = FFA_SMC_64(FFA_RXTX_MAP),
+			}, &res);
+
+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS))
+		return ffa_set_rxtx_buffers_pages_cnt(dev, res.a2);
+
+	ffa_errno = res.a2;
+	ffa_print_error_log(FFA_FEATURES, ffa_errno);
+
+	return ffa_to_std_errno(ffa_errno);
+}
+
+/**
+ * ffa_free_rxtx_buffers() - frees the RX/TX buffers
+ * @dev: The FF-A bus device
+ *
+ * This  function  frees the RX/TX buffers
+ */
+static void ffa_free_rxtx_buffers(struct udevice *dev)
+{
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	log_info("[FFA] Freeing RX/TX buffers\n");
+
+	if (priv->pair.rxbuf) {
+		free(priv->pair.rxbuf);
+		priv->pair.rxbuf = NULL;
+	}
+
+	if (priv->pair.txbuf) {
+		free(priv->pair.txbuf);
+		priv->pair.txbuf = NULL;
+	}
+}
+
+/**
+ * ffa_alloc_rxtx_buffers() - allocates the RX/TX buffers
+ * @dev: The FF-A bus device
+ *
+ * This function is used by ffa_map_rxtx_buffers to allocate
+ * the RX/TX buffers before mapping them. The allocated memory is physically
+ * contiguous since memalign ends up calling malloc which allocates
+ * contiguous memory in u-boot.
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_alloc_rxtx_buffers(struct udevice *dev)
+{
+	u64 bytes;
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	log_info("[FFA] Using %lu 4KB page(s) for RX/TX buffers size\n",
+		 priv->pair.rxtx_min_pages);
+
+	bytes = priv->pair.rxtx_min_pages * SZ_4K;
+
+	/*
+	 * The alignment of the RX and TX buffers must be equal
+	 * to the larger translation granule size
+	 * Assumption: Memory allocated with memalign is always physically contiguous
+	 */
+
+	priv->pair.rxbuf = memalign(bytes, bytes);
+	if (!priv->pair.rxbuf) {
+		log_err("[FFA] failure to allocate RX buffer\n");
+		return -ENOBUFS;
+	}
+
+	log_info("[FFA] RX buffer at virtual address %p\n", priv->pair.rxbuf);
+
+	priv->pair.txbuf = memalign(bytes, bytes);
+	if (!priv->pair.txbuf) {
+		free(priv->pair.rxbuf);
+		priv->pair.rxbuf = NULL;
+		log_err("[FFA] failure to allocate the TX buffer\n");
+		return -ENOBUFS;
+	}
+
+	log_info("[FFA] TX buffer at virtual address %p\n", priv->pair.txbuf);
+
+	/* Make sure the buffers are cleared before use */
+	memset(priv->pair.rxbuf, 0, bytes);
+	memset(priv->pair.txbuf, 0, bytes);
+
+	return 0;
+}
+
+/**
+ * ffa_map_rxtx_buffers() - FFA_RXTX_MAP handler function
+ * @dev: The FF-A bus device
+ *
+ * This function implements FFA_RXTX_MAP FF-A function
+ * to map the RX/TX buffers
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_map_rxtx_buffers(struct udevice *dev)
+{
+	int ret;
+	ffa_value_t res = {0};
+	int ffa_errno;
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	ret = ffa_alloc_rxtx_buffers(dev);
+	if (ret)
+		return ret;
+
+	/*
+	 * we need to pass the physical addresses of the RX/TX buffers
+	 * in u-boot physical/virtual mapping is 1:1
+	 * no need to convert from virtual to physical
+	 */
+
+	priv->dscvry_info.invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_SMC_64(FFA_RXTX_MAP),
+			.a1 = map_to_sysmem(priv->pair.txbuf),
+			.a2 = map_to_sysmem(priv->pair.rxbuf),
+			.a3 = priv->pair.rxtx_min_pages,
+			}, &res);
+
+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
+		log_info("[FFA] RX/TX buffers mapped\n");
+		return 0;
+	}
+
+	ffa_errno = res.a2;
+	ffa_print_error_log(FFA_RXTX_MAP, ffa_errno);
+
+	ffa_free_rxtx_buffers(dev);
+
+	return ffa_to_std_errno(ffa_errno);
+}
+
+/**
+ * ffa_unmap_rxtx_buffers() - FFA_RXTX_UNMAP handler function
+ * @dev: The arm_ffa bus device
+ *
+ * This function implements FFA_RXTX_UNMAP FF-A function
+ * to unmap the RX/TX buffers
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_unmap_rxtx_buffers(struct udevice *dev)
+{
+	ffa_value_t res = {0};
+	int ffa_errno;
+	struct ffa_priv *priv = NULL;
+
+	if (!dev)
+		return -ENODEV;
+
+	log_info("[FFA] unmapping RX/TX buffers\n");
+
+	priv = dev_get_priv(dev);
+
+	priv->dscvry_info.invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_SMC_32(FFA_RXTX_UNMAP),
+			.a1 = PREP_SELF_ENDPOINT_ID(priv->id),
+			}, &res);
+
+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
+		ffa_free_rxtx_buffers(dev);
+		return 0;
+	}
+
+	ffa_errno = res.a2;
+	ffa_print_error_log(FFA_RXTX_UNMAP, ffa_errno);
+
+	return ffa_to_std_errno(ffa_errno);
+}
+
+/**
+ * ffa_release_rx_buffer() - FFA_RX_RELEASE handler function
+ * @dev: The FF-A bus device
+ *
+ * This function invokes FFA_RX_RELEASE FF-A function
+ * to release the ownership of the RX buffer
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_release_rx_buffer(struct udevice *dev)
+{
+	ffa_value_t res = {0};
+	int ffa_errno;
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	priv->dscvry_info.invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_SMC_32(FFA_RX_RELEASE),
+			}, &res);
+
+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS))
+		return 0;
+
+	ffa_errno = res.a2;
+	ffa_print_error_log(FFA_RX_RELEASE, ffa_errno);
+
+	return ffa_to_std_errno(ffa_errno);
+}
+
+/**
+ * ffa_uuid_are_identical() - checks whether two given UUIDs are identical
+ * @uuid1: first UUID
+ * @uuid2: second UUID
+ *
+ * This function is used by ffa_read_partitions_info to search
+ * for a UUID in the partitions descriptors table
+ *
+ * Return:
+ *
+ * 1 when UUIDs match. Otherwise, 0
+ */
+bool ffa_uuid_are_identical(const struct ffa_partition_uuid *uuid1,
+			    const struct ffa_partition_uuid *uuid2)
+{
+	if (!uuid1 || !uuid2)
+		return 0;
+
+	return !memcmp(uuid1, uuid2, sizeof(struct ffa_partition_uuid));
+}
+
+/**
+ * ffa_read_partitions_info() - reads queried partition data
+ * @dev: The arm_ffa bus device
+ * @count: The number of partitions queried
+ * @part_uuid: Pointer to the partition(s) UUID
+ *
+ * This function reads the partitions information
+ * returned by the FFA_PARTITION_INFO_GET and saves it in the private
+ * data structure.
+ *
+ * Return:
+ *
+ * The private data structure is updated with the partition(s) information
+ * 0 is returned on success. Otherwise, failure
+ */
+static int ffa_read_partitions_info(struct udevice *dev, u32 count,
+				    struct ffa_partition_uuid *part_uuid)
+{
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	if (!count) {
+		log_err("[FFA] no partition detected\n");
+		return -ENODATA;
+	}
+
+	log_info("[FFA] Reading partitions data from the RX buffer\n");
+
+	if (!part_uuid) {
+		/* Querying information of all partitions */
+		u64 buf_bytes;
+		u64 data_bytes;
+		u32 desc_idx;
+		struct ffa_partition_info *parts_info;
+
+		data_bytes = count * sizeof(struct ffa_partition_desc);
+
+		buf_bytes = priv->pair.rxtx_min_pages * SZ_4K;
+
+		if (data_bytes > buf_bytes) {
+			log_err("[FFA] partitions data size exceeds the RX buffer size:\n");
+			log_err("[FFA]     sizes in bytes: data %llu , RX buffer %llu\n",
+				data_bytes,
+				buf_bytes);
+
+			return -ENOMEM;
+		}
+
+		priv->partitions.descs = devm_kmalloc(dev, data_bytes, __GFP_ZERO);
+		if (!priv->partitions.descs) {
+			log_err("[FFA] cannot  allocate partitions data buffer\n");
+			return -ENOMEM;
+		}
+
+		parts_info = priv->pair.rxbuf;
+
+		for (desc_idx = 0 ; desc_idx < count ; desc_idx++) {
+			priv->partitions.descs[desc_idx].info =
+				parts_info[desc_idx];
+
+			log_info("[FFA] Partition ID %x : info cached\n",
+				 priv->partitions.descs[desc_idx].info.id);
+		}
+
+		priv->partitions.count = count;
+
+		log_info("[FFA] %d partition(s) found and cached\n", count);
+
+	} else {
+		u32 rx_desc_idx, cached_desc_idx;
+		struct ffa_partition_info *parts_info;
+		u8 desc_found;
+
+		parts_info = priv->pair.rxbuf;
+
+		/*
+		 * Search for the SP IDs read from the RX buffer
+		 * in the already cached SPs.
+		 * Update the UUID when ID found.
+		 */
+		for (rx_desc_idx = 0; rx_desc_idx < count ; rx_desc_idx++) {
+			desc_found = 0;
+
+			/* Search the current ID in the cached partitions */
+			for (cached_desc_idx = 0;
+			     cached_desc_idx < priv->partitions.count;
+			     cached_desc_idx++) {
+				/* Save the UUID */
+				if (priv->partitions.descs[cached_desc_idx].info.id ==
+				    parts_info[rx_desc_idx].id) {
+					priv->partitions.descs[cached_desc_idx].sp_uuid =
+						*part_uuid;
+
+					desc_found = 1;
+					break;
+				}
+			}
+
+			if (!desc_found)
+				return -ENODATA;
+		}
+	}
+
+	return  0;
+}
+
+/**
+ * ffa_query_partitions_info() - invokes FFA_PARTITION_INFO_GET and saves partitions data
+ * @dev: The arm_ffa bus device
+ * @part_uuid: Pointer to the partition(s) UUID
+ * @pcount: Pointer to the number of partitions variable filled when querying
+ *
+ * This function executes the FFA_PARTITION_INFO_GET
+ * to query the partitions data. Then, it calls ffa_read_partitions_info
+ * to save the data in the private data structure.
+ *
+ * After reading the data the RX buffer is released using ffa_release_rx_buffer
+ *
+ * Return:
+ *
+ * When part_uuid is NULL, all partitions data are retrieved from secure world
+ * When part_uuid is non NULL, data for partitions matching the given UUID are
+ * retrieved and the number of partitions is returned
+ * 0 is returned on success. Otherwise, failure
+ */
+static int ffa_query_partitions_info(struct udevice *dev, struct ffa_partition_uuid *part_uuid,
+				     u32 *pcount)
+{
+	struct ffa_partition_uuid query_uuid = {0};
+	ffa_value_t res = {0};
+	int ffa_errno;
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	/*
+	 * If a UUID is specified. Information for one or more
+	 * partitions in the system is queried. Otherwise, information
+	 * for all installed partitions is queried
+	 */
+
+	if (part_uuid) {
+		if (!pcount)
+			return -EINVAL;
+
+		query_uuid = *part_uuid;
+	} else if (pcount) {
+		return -EINVAL;
+	}
+
+	priv->dscvry_info.invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_SMC_32(FFA_PARTITION_INFO_GET),
+			.a1 = query_uuid.a1,
+			.a2 = query_uuid.a2,
+			.a3 = query_uuid.a3,
+			.a4 = query_uuid.a4,
+			}, &res);
+
+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
+		int ret;
+
+		/*
+		 * res.a2 contains the count of partition information descriptors
+		 * populated in the RX buffer
+		 */
+		if (res.a2) {
+			ret = ffa_read_partitions_info(dev, (u32)res.a2, part_uuid);
+			if (ret) {
+				log_err("[FFA] failed reading SP(s) data , err (%d)\n", ret);
+				ffa_release_rx_buffer(dev);
+				return -EINVAL;
+			}
+		}
+
+		/* Return the SP count (when querying using a UUID) */
+		if (pcount)
+			*pcount = (u32)res.a2;
+
+		/*
+		 * After calling FFA_PARTITION_INFO_GET the buffer ownership
+		 * is assigned to the consumer (u-boot). So, we need to give
+		 * the ownership back to the SPM or hypervisor
+		 */
+		ret = ffa_release_rx_buffer(dev);
+
+		return ret;
+	}
+
+	ffa_errno = res.a2;
+	ffa_print_error_log(FFA_PARTITION_INFO_GET, ffa_errno);
+
+	return ffa_to_std_errno(ffa_errno);
+}
+
+/**
+ * ffa_get_partitions_info() - FFA_PARTITION_INFO_GET handler function
+ *
+ * The passed arguments:
+ * Mode 1: When getting from the driver the number of
+ *	secure partitions:
+ *	@uuid_str: pointer to the UUID string
+ *	@sp_count: pointer to the variable that contains the number of partitions
+ *			 The variable will be set by the driver
+ *	@buffer: NULL
+ *
+ * Mode 2: When requesting the driver to return the
+ *	partitions information:
+ *	@dev: The arm_ffa bus device
+ *	@uuid_str: pointer to the UUID string
+ *	@sp_count: pointer to the variable that contains the number of empty partition descriptors
+ *			 The variable will be read by the driver
+ *	@buffer: pointer to SPs information buffer
+ *		(allocated by the client and contains empty @sp_count descriptors).
+ *		The buffer will be filled by the driver
+ *
+ * This function queries the secure partition data from
+ * the private data structure. If not found, it invokes FFA_PARTITION_INFO_GET
+ * FF-A function to query the partition information from secure world.
+ *
+ * A client of the FF-A driver should know the UUID of the service it wants to
+ * access. It should use the UUID to request the FF-A driver to provide the
+ * partition(s) information of the service. The FF-A driver uses
+ * PARTITION_INFO_GET to obtain this information. This is implemented through
+ * ffa_get_partitions_info function.
+ * A new FFA_PARTITION_INFO_GET call is issued (first one performed through
+ * ffa_cache_partitions_info) allowing to retrieve the partition(s) information.
+ * They are not saved (already done). We only update the UUID in the cached area.
+ * This assumes that partitions data does not change in the secure world.
+ * Otherwise u-boot will have an outdated partition data. The benefit of caching
+ * the information in the FF-A driver is to accommodate discovery after
+ * ExitBootServices().
+ *
+ * When invoked through a client request, ffa_get_partitions_info should be
+ * called twice. First call is to get from the driver the number of secure
+ * partitions (SPs) associated to a particular UUID.
+ * Then, the caller (client) allocates the buffer to host the SPs data and
+ * issues a 2nd call. Then, the driver fills the SPs data in the pre-allocated
+ * buffer.
+ *
+ * To achieve the mechanism described above, ffa_get_partitions_info uses the
+ * following functions:
+ *		ffa_read_partitions_info
+ *		ffa_query_partitions_info
+ *
+ * Return:
+ *
+ * @sp_count: When pointing to the number of partitions variable, the number is
+ * set by the driver.
+ * When pointing to the partitions information buffer size, the buffer will be
+ * filled by the driver.
+ *
+ * On success 0 is returned. Otherwise, failure
+ */
+static int ffa_get_partitions_info(struct udevice *dev, const char *uuid_str,
+				   u32 *sp_count, struct ffa_partition_info *buffer)
+{
+	/*
+	 * fill_data:
+	 * 0: return the SP count
+	 * 1: fill SP data and return it to the caller
+	 */
+	bool fill_data = 0;
+	u32 desc_idx, client_desc_idx;
+	struct ffa_partition_uuid part_uuid = {0};
+	u32 sp_found = 0;
+	struct ffa_priv *priv = NULL;
+
+	if (!dev)
+		return -ENODEV;
+
+	priv = dev_get_priv(dev);
+
+	if (!priv->partitions.count || !priv->partitions.descs) {
+		log_err("[FFA] no partition installed\n");
+		return -EINVAL;
+	}
+
+	if (!uuid_str) {
+		log_err("[FFA] no UUID provided\n");
+		return -EINVAL;
+	}
+
+	if (!sp_count) {
+		log_err("[FFA] no size/count provided\n");
+		return -EINVAL;
+	}
+
+	if (uuid_str_to_le_bin(uuid_str, (unsigned char *)&part_uuid)) {
+		log_err("[FFA] invalid UUID\n");
+		return -EINVAL;
+	}
+
+	if (!buffer) {
+		/* Mode 1: getting the number of secure partitions */
+
+		fill_data = 0;
+
+		log_info("[FFA] Preparing for checking partitions count\n");
+
+	} else if (*sp_count) {
+		/* Mode 2: retrieving the partitions information */
+
+		fill_data = 1;
+
+		client_desc_idx = 0;
+
+		log_info("[FFA] Preparing for filling partitions info\n");
+
+	} else {
+		log_err("[FFA] invalid function arguments provided\n");
+		return -EINVAL;
+	}
+
+	log_info("[FFA] Searching partitions using the provided UUID\n");
+
+	/* Search in the cached partitions */
+	for (desc_idx = 0;
+	     desc_idx < priv->partitions.count;
+	     desc_idx++) {
+		if (ffa_uuid_are_identical(&priv->partitions.descs[desc_idx].sp_uuid,
+					   &part_uuid)) {
+			log_info("[FFA] Partition ID %x matches the provided UUID\n",
+				 priv->partitions.descs[desc_idx].info.id);
+
+			sp_found++;
+
+			if (fill_data) {
+				/* Trying to fill the partition info in the input buffer */
+
+				if (client_desc_idx < *sp_count) {
+					buffer[client_desc_idx++] =
+						priv->partitions.descs[desc_idx].info;
+					continue;
+				}
+
+				log_err("[FFA] failed to fill client descriptor, buffer full\n");
+				return -ENOBUFS;
+			}
+		}
+	}
+
+	if (!sp_found) {
+		int ret;
+
+		log_info("[FFA] No partition found. Querying framework ...\n");
+
+		ret = ffa_query_partitions_info(dev, &part_uuid, &sp_found);
+
+		if (ret == 0) {
+			if (!fill_data) {
+				*sp_count = sp_found;
+
+				log_info("[FFA] Number of partition(s) matching the UUID: %d\n",
+					 sp_found);
+			} else {
+				/*
+				 * If SPs data detected, they are already in the private data
+				 * structure, retry searching SP data again to return them
+				 *  to the caller
+				 */
+				if (sp_found)
+					ret = ffa_get_partitions_info(dev, uuid_str, sp_count,
+								      buffer);
+				else
+					ret = -ENODATA;
+			}
+		}
+
+		return ret;
+	}
+
+	/* Partition(s) found */
+	if (!fill_data)
+		*sp_count = sp_found;
+
+	return 0;
+}
+
+/**
+ * ffa_cache_partitions_info() - Queries and saves all secure partitions data
+ * @dev: The arm_ffa bus device
+ *
+ * This function invokes FFA_PARTITION_INFO_GET FF-A
+ * function to query from secure world all partitions information.
+ *
+ * The FFA_PARTITION_INFO_GET call is issued with nil UUID as an argument.
+ * All installed partitions information are returned. We cache them in the
+ * resident private data structure and we keep the UUID field empty
+ * (in FF-A 1.0 UUID is not provided by the partition descriptor)
+ *
+ * This function is called at the device probing level.
+ * ffa_cache_partitions_info uses ffa_query_partitions_info to get the data
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_cache_partitions_info(struct udevice *dev)
+{
+	return ffa_query_partitions_info(dev, NULL, NULL);
+}
+
+/**
+ * ffa_msg_send_direct_req() - FFA_MSG_SEND_DIRECT_{REQ,RESP} handler function
+ * @dev: The arm_ffa bus device
+ * @dst_part_id: destination partition ID
+ * @msg: pointer to the message data preallocated by the client (in/out)
+ * @is_smc64: select 64-bit or 32-bit FF-A ABI
+ *
+ * This function implements FFA_MSG_SEND_DIRECT_{REQ,RESP}
+ * FF-A functions.
+ *
+ * FFA_MSG_SEND_DIRECT_REQ is used to send the data to the secure partition.
+ * The response from the secure partition is handled by reading the
+ * FFA_MSG_SEND_DIRECT_RESP arguments.
+ *
+ * The maximum size of the data that can be exchanged is 40 bytes which is
+ * sizeof(struct ffa_send_direct_data) as defined by the FF-A specification 1.0
+ * in the section relevant to FFA_MSG_SEND_DIRECT_{REQ,RESP}
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_msg_send_direct_req(struct udevice *dev, u16 dst_part_id,
+				   struct ffa_send_direct_data *msg, bool is_smc64)
+{
+	ffa_value_t res = {0};
+	int ffa_errno;
+	u64 req_mode, resp_mode;
+	struct ffa_priv *priv = NULL;
+
+	if (!dev)
+		return -ENODEV;
+
+	priv = dev_get_priv(dev);
+
+	if (!priv || !priv->dscvry_info.invoke_ffa_fn)
+		return -EINVAL;
+
+	/* No partition installed */
+	if (!priv->partitions.count || !priv->partitions.descs)
+		return -ENODEV;
+
+	if (is_smc64) {
+		req_mode = FFA_SMC_64(FFA_MSG_SEND_DIRECT_REQ);
+		resp_mode = FFA_SMC_64(FFA_MSG_SEND_DIRECT_RESP);
+	} else {
+		req_mode = FFA_SMC_32(FFA_MSG_SEND_DIRECT_REQ);
+		resp_mode = FFA_SMC_32(FFA_MSG_SEND_DIRECT_RESP);
+	}
+
+	priv->dscvry_info.invoke_ffa_fn((ffa_value_t){
+			.a0 = req_mode,
+			.a1 = PREP_SELF_ENDPOINT_ID(priv->id) |
+				PREP_PART_ENDPOINT_ID(dst_part_id),
+			.a2 = 0,
+			.a3 = msg->data0,
+			.a4 = msg->data1,
+			.a5 = msg->data2,
+			.a6 = msg->data3,
+			.a7 = msg->data4,
+			}, &res);
+
+	while (res.a0 == FFA_SMC_32(FFA_INTERRUPT))
+		priv->dscvry_info.invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_SMC_32(FFA_RUN),
+			.a1 = res.a1,
+			}, &res);
+
+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
+		/* Message sent with no response */
+		return 0;
+	}
+
+	if (res.a0 == resp_mode) {
+		/* Message sent with response extract the return data */
+		msg->data0 = res.a3;
+		msg->data1 = res.a4;
+		msg->data2 = res.a5;
+		msg->data3 = res.a6;
+		msg->data4 = res.a7;
+
+		return 0;
+	}
+
+	ffa_errno = res.a2;
+	return ffa_to_std_errno(ffa_errno);
+}
+
+/**
+ * ffa_try_discovery() - performs FF-A discovery
+ * Tries to discover the FF-A framework. Discovery is performed by
+ * querying the FF-A framework version from secure world using the FFA_VERSION ABI.
+ * Return:
+ *
+ * true on success. Otherwise, false.
+ */
+bool ffa_try_discovery(void)
+{
+	int ret;
+
+	log_info("[FFA] trying FF-A framework discovery\n");
+
+	ret = ffa_set_smc_conduit();
+	if (ret)
+		return false;
+
+	ret = ffa_get_version();
+	if (ret)
+		return false;
+
+	return true;
+}
+
+/**
+ * __arm_ffa_fn_smc() - SMC wrapper
+ * @args: FF-A ABI arguments to be copied to Xn registers
+ * @res: FF-A ABI return data to be copied from Xn registers
+ *
+ * Calls low level SMC assembly function
+ */
+void __arm_ffa_fn_smc(ffa_value_t args, ffa_value_t *res)
+{
+	arm_smccc_1_2_smc(&args, res);
+}
+
+/**
+ * ffa_bus_is_supported() - FF-A discovery callback
+ * @invoke_fn: legacy SMC invoke function (not used)
+ *
+ * This function performs FF-A discovery by calling ffa_try_discovery().
+ * Discovery is performed by querying the FF-A framework version from
+ * secure world using the FFA_VERSION ABI.
+ *
+ * The FF-A driver is registered as an SMCCC feature driver. So, features discovery
+ * callbacks are called by the PSCI driver (PSCI device is the SMCCC features
+ * root device).
+ *
+ * The FF-A driver supports the SMCCCv1.2 extended input/output registers.
+ * So, the legacy SMC invocation is not used.
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static bool ffa_bus_is_supported(void (*invoke_fn)(unsigned long a0, unsigned long a1,
+						   unsigned long a2, unsigned long a3,
+						   unsigned long a4, unsigned long a5,
+						   unsigned long a6, unsigned long a7,
+						   struct arm_smccc_res *res))
+{
+	return ffa_try_discovery();
+}
+
+/* Registering the FF-A driver as an SMCCC feature driver */
+
+ARM_SMCCC_FEATURE_DRIVER(arm_ffa) = {
+	.driver_name = FFA_DRV_NAME,
+	.is_supported = ffa_bus_is_supported,
+};
+
+/**
+ * ffa_set_smc_conduit() - Set the SMC conduit
+ *
+ * This function selects the SMC conduit by setting the driver invoke function
+ * to SMC assembly function
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_set_smc_conduit(void)
+{
+	dscvry_info.invoke_ffa_fn = __arm_ffa_fn_smc;
+
+	log_info("[FFA] Conduit is SMC\n");
+
+	return 0;
+}
+
+/**
+ * ffa_devm_alloc_priv() - allocate FF-A driver private data
+ * @dev: The FF-A bus device
+ *
+ * This function dynamically allocates with devres the private data structure
+ * which contains all the FF-A data. Then, register the structure with the DM.
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_devm_alloc_priv(struct udevice *dev)
+{
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	if (!priv) {
+		priv = devm_kmalloc(dev, sizeof(struct ffa_priv), __GFP_ZERO);
+		if (!priv) {
+			log_err("[FFA] can not allocate FF-A main data structure\n");
+			return -ENOMEM;
+		}
+		dev_set_priv(dev, priv);
+	}
+
+	return 0;
+}
+
+/**
+ * ffa_probe() - The driver probe function
+ * @dev:	the FF-A bus device (arm_ffa)
+ *
+ * Probing is triggered on demand by clients searching for the uclass.
+ * At probe level the following actions are done:
+ *	- allocating private data (priv) with devres
+ *	- updating priv with discovery information
+ *	- querying from secure world the u-boot endpoint ID
+ *	- querying from secure world the supported features of FFA_RXTX_MAP
+ *	- mapping the RX/TX buffers
+ *	- querying from secure world all the partitions information
+ *
+ * All data queried from secure world is saved in the private data structure (priv).
+ *
+ * Return:
+ *
+ * 0 on success. Otherwise, failure
+ */
+static int ffa_probe(struct udevice *dev)
+{
+	int ret;
+	struct ffa_priv *priv = NULL;
+
+	ret = ffa_devm_alloc_priv(dev);
+	if (ret)
+		return ret;
+
+	/* The data is dynamically allocated, managed by devres */
+	priv = dev_get_priv(dev);
+
+	priv->dscvry_info = dscvry_info;
+
+	ret = ffa_get_endpoint_id(dev);
+	if (ret)
+		return ret;
+
+	ret = ffa_get_rxtx_map_features(dev);
+	if (ret)
+		return ret;
+
+	ret = ffa_map_rxtx_buffers(dev);
+	if (ret)
+		return ret;
+
+	ret = ffa_cache_partitions_info(dev);
+	if (ret) {
+		ffa_unmap_rxtx_buffers(dev);
+		return ret;
+	}
+
+	return 0;
+}
+
+/**
+ * ffa_remove() - The driver remove function
+ * @dev:	the arm_ffa device
+ * Making sure the RX/TX buffers are unmapped and freed when the device is removed.
+ * No need to free the private data structure because devres takes care of that.
+ * Return:
+ *
+ * 0 on success.
+ */
+static int ffa_remove(struct udevice *dev)
+{
+	log_info("[FFA] removing the device\n");
+
+	ffa_unmap_rxtx_buffers(dev);
+	dev_set_priv(dev, NULL);
+
+	return 0;
+}
+
+/**
+ * ffa_unbind() - The driver unbind function
+ * @dev:	the arm_ffa device
+ * Making sure the RX/TX buffers are unmapped and freed when the device is unbound.
+ * No need to free the private data structure because devres takes care of that.
+ * Return:
+ *
+ * 0 on success.
+ */
+static int ffa_unbind(struct udevice *dev)
+{
+	struct ffa_priv *priv = dev_get_priv(dev);
+
+	log_info("[FFA] unbinding the device\n");
+
+	if (priv)
+		ffa_unmap_rxtx_buffers(dev);
+
+	return 0;
+}
+
+/* FF-A driver operations */
+
+static const struct ffa_bus_ops ffa_ops = {
+	.partition_info_get = ffa_get_partitions_info,
+	.sync_send_receive = ffa_msg_send_direct_req,
+	.rxtx_unmap = ffa_unmap_rxtx_buffers,
+};
+
+/* Declaring the FF-A driver under UCLASS_FFA */
+
+U_BOOT_DRIVER(arm_ffa) = {
+	.name		= FFA_DRV_NAME,
+	.id		= UCLASS_FFA,
+	.flags		= DM_REMOVE_OS_PREPARE,
+	.probe		= ffa_probe,
+	.remove	= ffa_remove,
+	.unbind	= ffa_unbind,
+	.ops		= &ffa_ops,
+};
diff --git a/include/arm_ffa.h b/include/arm_ffa.h
new file mode 100644
index 0000000000..69f3c51080
--- /dev/null
+++ b/include/arm_ffa.h
@@ -0,0 +1,88 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ *
+ * Authors:
+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ */
+
+#ifndef __ARM_FFA_H
+#define __ARM_FFA_H
+
+#include <linux/printk.h>
+
+/*
+ * This header is public. It can be used by clients to access
+ * data structures and definitions they need
+ */
+
+/*
+ * struct ffa_partition_info - Partition information descriptor
+ * @id:	Partition ID
+ * @exec_ctxt:	Execution context count
+ * @properties:	Partition properties
+ *
+ * Data structure containing information about partitions instantiated in the system
+ * This structure is filled with the data queried by FFA_PARTITION_INFO_GET
+ */
+struct ffa_partition_info {
+	u16 id;
+	u16 exec_ctxt;
+/* partition supports receipt of direct requests */
+#define FFA_PARTITION_DIRECT_RECV	BIT(0)
+/* partition can send direct requests. */
+#define FFA_PARTITION_DIRECT_SEND	BIT(1)
+/* partition can send and receive indirect messages. */
+#define FFA_PARTITION_INDIRECT_MSG	BIT(2)
+	u32 properties;
+};
+
+/*
+ * struct ffa_send_direct_data - Data structure hosting the data
+ *                                       used by FFA_MSG_SEND_DIRECT_{REQ,RESP}
+ * @data0-4:	Data read/written from/to x3-x7 registers
+ *
+ * Data structure containing the data to be sent by FFA_MSG_SEND_DIRECT_REQ
+ * or read from FFA_MSG_SEND_DIRECT_RESP
+ */
+
+/* For use with FFA_MSG_SEND_DIRECT_{REQ,RESP} which pass data via registers */
+struct ffa_send_direct_data {
+	unsigned long data0; /* w3/x3 */
+	unsigned long data1; /* w4/x4 */
+	unsigned long data2; /* w5/x5 */
+	unsigned long data3; /* w6/x6 */
+	unsigned long data4; /* w7/x7 */
+};
+
+struct udevice;
+
+/**
+ * struct ffa_bus_ops - The driver operations structure
+ * @partition_info_get:	callback for the FFA_PARTITION_INFO_GET
+ * @sync_send_receive:	callback for the FFA_MSG_SEND_DIRECT_REQ
+ * @rxtx_unmap:	callback for the FFA_RXTX_UNMAP
+ *
+ * The data structure providing all the operations supported by the driver.
+ * This structure is EFI runtime resident.
+ */
+struct ffa_bus_ops {
+	int (*partition_info_get)(struct udevice *dev, const char *uuid_str,
+				  u32 *sp_count, struct ffa_partition_info *buffer);
+	int (*sync_send_receive)(struct udevice *dev, u16 dst_part_id,
+				 struct ffa_send_direct_data *msg,
+				 bool is_smc64);
+	int (*rxtx_unmap)(struct udevice *dev);
+};
+
+/* The device driver and the Uclass driver public functions */
+
+/**
+ * ffa_bus_get_ops() - bus driver operations getter
+ * @dev:	the arm_ffa device
+ * Returns a pointer to the FF-A driver ops field.
+ * Return:
+ * The ops pointer on success, NULL on failure.
+ */
+const struct ffa_bus_ops *ffa_bus_get_ops(struct udevice *dev);
+#endif
diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
index 33e43c20db..df77c7da58 100644
--- a/include/dm/uclass-id.h
+++ b/include/dm/uclass-id.h
@@ -4,6 +4,11 @@
  *
  * (C) Copyright 2012
  * Pavel Herrmann <morpheus.ibis@gmail.com>
+ *
+ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ *
+ * Authors:
+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
  */
 
 #ifndef _DM_UCLASS_ID_H
@@ -55,6 +60,7 @@ enum uclass_id {
 	UCLASS_EFI_MEDIA,	/* Devices provided by UEFI firmware */
 	UCLASS_ETH,		/* Ethernet device */
 	UCLASS_ETH_PHY,		/* Ethernet PHY device */
+	UCLASS_FFA,		/* Arm Firmware Framework for Armv8-A */
 	UCLASS_FIRMWARE,	/* Firmware */
 	UCLASS_FPGA,		/* FPGA device */
 	UCLASS_FUZZING_ENGINE,	/* Fuzzing engine */
-- 
2.25.1


  parent reply	other threads:[~2023-03-10 14:12 UTC|newest]

Thread overview: 478+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-29 15:16 [PATCH 0/6] introduce Arm FF-A support abdellatif.elkhlifi
2022-03-29 15:16 ` [PATCH 1/6] arm_ffa: introduce Arm FF-A low-level driver abdellatif.elkhlifi
2022-03-29 15:16 ` [PATCH 2/6] arm_ffa: introduce armffa command abdellatif.elkhlifi
2023-07-27  5:51   ` Heinrich Schuchardt
2023-07-27  9:00     ` Abdellatif El Khlifi
2023-07-28  1:52       ` Simon Glass
2023-07-28  9:53         ` Abdellatif El Khlifi
2022-03-29 15:16 ` [PATCH 3/6] arm_ffa: introduce the FF-A Sandbox driver abdellatif.elkhlifi
2022-03-29 15:16 ` [PATCH 4/6] arm_ffa: introduce Sandbox test cases for UCLASS_FFA abdellatif.elkhlifi
2022-03-29 15:16 ` [PATCH 5/6] arm_ffa: introduce armffa command Sandbox test abdellatif.elkhlifi
2022-03-29 15:16 ` [PATCH 6/6] arm_ffa: introduce FF-A MM communication abdellatif.elkhlifi
2022-04-14 19:54   ` Ilias Apalodimas
2022-09-26 10:56     ` Abdellatif El Khlifi
2022-04-06 15:51 ` [PATCH 0/6] introduce Arm FF-A support Abdellatif El Khlifi
2022-04-06 19:47 ` Tom Rini
2022-04-07 12:54   ` Abdellatif El Khlifi
2022-04-07 12:58     ` Tom Rini
2022-04-12 11:43       ` Abdellatif El Khlifi
2022-04-12 12:01         ` Tom Rini
2022-04-12 13:28           ` Rob Herring
2022-04-13 14:20             ` Abdellatif El Khlifi
2022-04-13 16:46               ` Tom Rini
2022-04-13 17:29                 ` Sudeep Holla
2022-04-15 12:27                   ` [PATCH v2 " abdellatif.elkhlifi
2022-04-15 12:27                     ` [PATCH v2 1/6] arm_ffa: introduce Arm FF-A low-level driver abdellatif.elkhlifi
2022-05-13 14:23                       ` Ilias Apalodimas
2022-09-26 10:42                         ` Abdellatif El Khlifi
2022-05-13 14:40                       ` Jens Wiklander
2022-09-26 11:30                         ` Abdellatif El Khlifi
2022-04-15 12:27                     ` [PATCH v2 2/6] arm_ffa: introduce armffa command abdellatif.elkhlifi
2022-04-15 12:28                     ` [PATCH v2 3/6] arm_ffa: introduce the FF-A Sandbox driver abdellatif.elkhlifi
2022-04-15 12:28                     ` [PATCH v2 4/6] arm_ffa: introduce Sandbox test cases for UCLASS_FFA abdellatif.elkhlifi
2022-04-15 12:28                     ` [PATCH v2 5/6] arm_ffa: introduce armffa command Sandbox test abdellatif.elkhlifi
2022-04-15 12:28                     ` [PATCH v2 6/6] arm_ffa: introduce FF-A MM communication abdellatif.elkhlifi
2022-04-15 15:43                     ` [PATCH v2 0/6] introduce Arm FF-A support Tom Rini
2022-05-09 10:55                       ` Abdellatif El Khlifi
2022-05-12 14:04                         ` Abdellatif El Khlifi
2022-05-12 14:43                           ` Ilias Apalodimas
2022-08-01 17:20                             ` [PATCH v3 0/4] " Abdellatif El Khlifi
2022-08-01 17:20                               ` [PATCH v3 1/4] arm64: smccc: add Xn registers support used by SMC calls Abdellatif El Khlifi
2022-08-01 18:41                                 ` Sudeep Holla
2022-08-05 11:17                                   ` Abdellatif El Khlifi
2022-08-01 17:20                               ` [PATCH v3 2/4] arm64: smccc: clear the Xn registers after " Abdellatif El Khlifi
2022-08-16 11:48                                 ` Jens Wiklander
2022-09-26 11:33                                   ` Abdellatif El Khlifi
2022-08-01 17:20                               ` [PATCH v3 3/4] arm_ffa: introduce Arm FF-A low-level driver Abdellatif El Khlifi
2022-08-12  7:39                                 ` Ilias Apalodimas
2022-09-26 11:11                                   ` Abdellatif El Khlifi
2022-08-13  2:21                                 ` Simon Glass
2022-09-26 11:37                                   ` Abdellatif El Khlifi
2022-11-15 15:24                                 ` Simon Glass
2022-11-16 13:03                                   ` Abdellatif El Khlifi
2022-11-18 20:50                                     ` Simon Glass
2022-11-22 13:49                                       ` Abdellatif El Khlifi
2022-11-22 22:24                                         ` Simon Glass
2022-08-01 17:20                               ` [PATCH v3 4/4] arm_ffa: introduce armffa command Abdellatif El Khlifi
2022-09-26 10:17                               ` [PATCH v4 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 02/10] arm64: smccc: clear the Xn registers after SMC calls Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 03/10] lib: uuid: introduce be_uuid_str_to_le_bin function Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 04/10] arm_ffa: introduce Arm FF-A low-level driver Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 06/10] arm_ffa: introduce the FF-A Sandbox driver Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 07/10] arm_ffa: introduce Sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 09/10] arm_ffa: introduce FF-A MM communication Abdellatif El Khlifi
2022-09-26 10:17                                 ` [PATCH v4 10/10] arm_ffa: corstone1000: enable EFI " Abdellatif El Khlifi
2022-09-26 14:08                                 ` [PATCH v5 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 02/10] arm64: smccc: clear the Xn registers after SMC calls Abdellatif El Khlifi
2022-09-30  9:48                                     ` Jens Wiklander
2022-10-14 10:17                                       ` Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 03/10] lib: uuid: introduce be_uuid_str_to_le_bin function Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 04/10] arm_ffa: introduce Arm FF-A low-level driver Abdellatif El Khlifi
2022-10-03  8:49                                     ` Jens Wiklander
2022-10-03 15:22                                       ` Tom Rini
2022-10-14 10:40                                         ` Abdellatif El Khlifi
2022-10-14 10:28                                       ` Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 06/10] arm_ffa: introduce the FF-A Sandbox driver Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 07/10] arm_ffa: introduce Sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 09/10] arm_ffa: introduce FF-A MM communication Abdellatif El Khlifi
2022-09-29  9:32                                     ` Ilias Apalodimas
2022-10-14 10:38                                       ` Abdellatif El Khlifi
2022-10-14 15:55                                         ` Simon Glass
2022-10-14 16:08                                           ` Ilias Apalodimas
2022-10-17 14:15                                           ` Abdellatif El Khlifi
2022-09-26 14:08                                   ` [PATCH v5 10/10] arm_ffa: corstone1000: enable EFI " Abdellatif El Khlifi
2022-10-13 10:38                                   ` [PATCH v6 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2022-10-24 14:19                                       ` Jens Wiklander
2022-11-08 11:13                                         ` Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 02/10] lib: uuid: introduce be_uuid_str_to_le_bin function Abdellatif El Khlifi
2022-10-24 12:07                                       ` Ilias Apalodimas
2022-11-08 10:45                                         ` Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 03/10] arm_ffa: introduce Arm FF-A low-level driver Abdellatif El Khlifi
2022-10-25  9:31                                       ` Jens Wiklander
2022-10-25 10:27                                         ` Abdellatif El Khlifi
2022-11-08 11:28                                         ` Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 04/10] arm_ffa: efi: unmap RX/TX buffers Abdellatif El Khlifi
2022-10-24 12:08                                       ` Ilias Apalodimas
2022-11-08 10:48                                         ` Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 06/10] arm_ffa: introduce the FF-A Sandbox driver Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 07/10] arm_ffa: introduce Sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2022-10-24 12:10                                       ` Ilias Apalodimas
2022-11-08 10:53                                         ` Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2022-10-24 12:30                                       ` Ilias Apalodimas
2022-11-08 10:58                                         ` Abdellatif El Khlifi
2022-10-13 10:38                                     ` [PATCH v6 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2022-10-24 12:13                                       ` Ilias Apalodimas
2022-11-08 11:01                                         ` Abdellatif El Khlifi
2022-10-13 12:07                                     ` [PATCH v6 00/10] introduce Arm FF-A support Ilias Apalodimas
2022-10-14 10:44                                       ` Abdellatif El Khlifi
2022-11-07 19:20                                     ` [PATCH v7 " Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2022-11-08 13:47                                         ` Ilias Apalodimas
2022-11-11 12:32                                           ` Abdellatif El Khlifi
2022-11-11 12:36                                             ` Ilias Apalodimas
2022-11-11 17:02                                         ` Anders Dellien
2022-11-14 10:11                                           ` Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 03/10] arm_ffa: introduce Arm FF-A low-level driver Abdellatif El Khlifi
2022-11-09 11:51                                         ` Jens Wiklander
2022-11-11 14:36                                           ` Abdellatif El Khlifi
2022-11-15 10:32                                             ` Jens Wiklander
2022-11-22 13:33                                               ` Abdellatif El Khlifi
2022-11-22 13:28                                           ` Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 04/10] arm_ffa: efi: unmap RX/TX buffers Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 06/10] arm_ffa: introduce the FF-A Sandbox driver Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 07/10] arm_ffa: introduce Sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2022-11-15  9:03                                         ` Ilias Apalodimas
2022-11-22 13:37                                           ` Abdellatif El Khlifi
2022-11-07 19:20                                       ` [PATCH v7 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2022-11-11 14:42                                       ` [PATCH v7 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2022-11-22 13:17                                       ` [PATCH v8 " Abdellatif El Khlifi
2022-11-22 13:17                                         ` [PATCH v8 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2022-11-22 13:17                                         ` [PATCH v8 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2022-11-23  2:09                                           ` Simon Glass
2022-11-22 13:17                                         ` [PATCH v8 03/10] arm_ffa: introduce Arm FF-A low-level driver Abdellatif El Khlifi
2022-11-23  2:09                                           ` Simon Glass
2022-11-24 13:21                                             ` Abdellatif El Khlifi
2022-11-25 21:17                                               ` Simon Glass
2022-11-28 16:22                                                 ` Rob Herring
2022-11-28 16:26                                                   ` Ilias Apalodimas
2022-12-04 19:22                                                   ` Simon Glass
2022-12-05 15:49                                                     ` Rob Herring
2022-12-19 11:12                                                       ` Abdellatif El Khlifi
2022-12-19 19:20                                                         ` Simon Glass
2023-01-12  2:10                                                           ` Rob Herring
2023-01-12 23:43                                                             ` Simon Glass
2023-01-13 10:44                                                               ` Abdellatif El Khlifi
2023-01-13 18:00                                                                 ` Simon Glass
2023-01-16 13:23                                                                   ` Abdellatif El Khlifi
2023-01-17 14:04                                                                     ` Tom Rini
2023-01-18  3:18                                                                       ` Rob Herring
2023-01-18  2:51                                                               ` Rob Herring
2023-01-18 12:49                                                                 ` Tom Rini
2023-01-18 13:46                                                                   ` Sudeep Holla
2023-01-18 13:59                                                                     ` Tom Rini
2023-01-18 15:49                                                                       ` Sudeep Holla
2023-01-19 16:31                                                                       ` Abdellatif El Khlifi
2023-01-19 16:40                                                                         ` Tom Rini
2023-01-19 16:41                                                                         ` Simon Glass
2023-01-19 16:43                                                                           ` Tom Rini
2023-01-19 16:56                                                                           ` Sudeep Holla
2023-01-20  9:56                                                                             ` Abdellatif El Khlifi
2023-01-19 18:11                                                                           ` Rob Herring
2023-01-20 10:33                                                                             ` Sudeep Holla
2023-01-20 22:04                                                                             ` Simon Glass
2023-01-23 15:13                                                                               ` Rob Herring
2023-01-23 16:32                                                                                 ` Simon Glass
2023-01-24 15:56                                                                                   ` Abdellatif El Khlifi
2023-01-24 22:44                                                                                     ` Simon Glass
2023-01-25  7:48                                                                                     ` Sudeep Holla
2023-01-25 10:55                                                                                       ` Abdellatif El Khlifi
2023-01-25 12:54                                                                                         ` Sudeep Holla
2023-01-25 16:00                                                                                     ` Rob Herring
2023-01-25 16:44                                                                                       ` Abdellatif El Khlifi
2023-01-25 17:11                                                                                         ` Sudeep Holla
2023-03-10 14:10                                                                                   ` [PATCH v9 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2023-03-10 14:10                                                                                     ` [PATCH v9 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-03-10 14:10                                                                                     ` [PATCH v9 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-03-10 20:49                                                                                       ` Simon Glass
2023-03-10 14:10                                                                                     ` [PATCH v9 03/10] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-03-10 14:10                                                                                     ` Abdellatif El Khlifi [this message]
2023-03-10 14:10                                                                                     ` [PATCH v9 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-03-10 20:49                                                                                       ` Simon Glass
2023-03-10 14:10                                                                                     ` [PATCH v9 06/10] arm_ffa: introduce the FF-A Sandbox driver Abdellatif El Khlifi
2023-03-10 20:49                                                                                       ` Simon Glass
2023-03-14 12:55                                                                                         ` Abdellatif El Khlifi
2023-03-14 17:59                                                                                         ` Abdellatif El Khlifi
2023-03-15 14:05                                                                                           ` Simon Glass
2023-03-10 14:10                                                                                     ` [PATCH v9 07/10] arm_ffa: introduce Sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-03-10 20:49                                                                                       ` Simon Glass
2023-03-10 14:10                                                                                     ` [PATCH v9 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2023-03-10 20:50                                                                                       ` Simon Glass
2023-03-10 14:10                                                                                     ` [PATCH v9 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-03-10 20:50                                                                                       ` Simon Glass
2023-03-14 17:05                                                                                         ` Abdellatif El Khlifi
2023-03-10 14:10                                                                                     ` [PATCH v9 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-03-10 20:50                                                                                     ` [PATCH v9 00/10] introduce Arm FF-A support Simon Glass
2023-03-28 16:11                                                                                       ` [PATCH v10 " Abdellatif El Khlifi
2023-03-28 16:11                                                                                         ` [PATCH v10 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-03-29 20:02                                                                                           ` Simon Glass
2023-03-28 16:11                                                                                         ` [PATCH v10 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-03-28 16:11                                                                                         ` [PATCH v10 03/10] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-03-29 20:02                                                                                           ` Simon Glass
2023-03-30 10:27                                                                                             ` Abdellatif El Khlifi
2023-03-28 16:11                                                                                         ` [PATCH v10 04/10] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-04-02  2:41                                                                                           ` Simon Glass
2023-03-28 16:11                                                                                         ` [PATCH v10 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-04-02  2:40                                                                                           ` Simon Glass
2023-04-12  9:48                                                                                             ` Abdellatif El Khlifi
2023-03-28 16:11                                                                                         ` [PATCH v10 06/10] arm_ffa: introduce sandbox FF-A support Abdellatif El Khlifi
2023-04-02  2:41                                                                                           ` Simon Glass
2023-04-12  9:52                                                                                             ` Abdellatif El Khlifi
2023-03-28 16:11                                                                                         ` [PATCH v10 07/10] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-04-02  2:40                                                                                           ` Simon Glass
2023-03-28 16:11                                                                                         ` [PATCH v10 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2023-03-28 16:11                                                                                         ` [PATCH v10 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-03-31  8:29                                                                                           ` Ilias Apalodimas
2023-04-12  9:59                                                                                             ` Abdellatif El Khlifi
2023-03-28 16:11                                                                                         ` [PATCH v10 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-04-02  2:41                                                                                           ` Simon Glass
2023-04-03  9:59                                                                                             ` Ilias Apalodimas
2023-04-03 10:33                                                                                               ` Abdellatif El Khlifi
2023-04-12  9:42                                                                                         ` [PATCH v11 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2023-04-12  9:42                                                                                           ` [PATCH v11 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-04-12  9:42                                                                                           ` [PATCH v11 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-04-12  9:42                                                                                           ` [PATCH v11 03/10] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-04-19  1:46                                                                                             ` Simon Glass
2023-04-12  9:42                                                                                           ` [PATCH v11 04/10] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-04-19  1:49                                                                                             ` Simon Glass
2023-04-12  9:42                                                                                           ` [PATCH v11 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-04-12 14:02                                                                                             ` Heinrich Schuchardt
2023-04-12 15:53                                                                                               ` Abdellatif El Khlifi
2023-04-12 20:00                                                                                                 ` Heinrich Schuchardt
2023-04-13 10:15                                                                                                   ` Abdellatif El Khlifi
2023-04-19  1:49                                                                                             ` Simon Glass
2023-05-12 12:14                                                                                               ` Abdellatif El Khlifi
2023-04-12  9:42                                                                                           ` [PATCH v11 06/10] arm_ffa: introduce sandbox FF-A support Abdellatif El Khlifi
2023-04-19  1:49                                                                                             ` Simon Glass
2023-05-03 17:56                                                                                               ` Abdellatif El Khlifi
2023-04-12  9:42                                                                                           ` [PATCH v11 07/10] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-04-19  1:50                                                                                             ` Simon Glass
2023-04-12  9:42                                                                                           ` [PATCH v11 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2023-04-19  1:50                                                                                             ` Simon Glass
2023-04-12  9:42                                                                                           ` [PATCH v11 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-04-19  1:49                                                                                             ` Simon Glass
2023-05-12 12:12                                                                                               ` Abdellatif El Khlifi
2023-04-21  8:10                                                                                             ` Ilias Apalodimas
2023-04-12  9:42                                                                                           ` [PATCH v11 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-04-17 16:02                                                                                           ` [PATCH v11 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2023-04-18 16:48                                                                                             ` Simon Glass
2023-05-12 12:10                                                                                           ` [PATCH v12 " Abdellatif El Khlifi
2023-05-12 12:10                                                                                             ` [PATCH v12 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-05-19 12:56                                                                                               ` Ilias Apalodimas
2023-05-12 12:10                                                                                             ` [PATCH v12 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-05-12 12:10                                                                                             ` [PATCH v12 03/10] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-05-12 12:10                                                                                             ` [PATCH v12 04/10] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-05-12 12:10                                                                                             ` [PATCH v12 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-05-12 12:10                                                                                             ` [PATCH v12 06/10] arm_ffa: introduce sandbox FF-A support Abdellatif El Khlifi
2023-05-12 12:10                                                                                             ` [PATCH v12 07/10] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-05-12 12:10                                                                                             ` [PATCH v12 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2023-05-12 12:10                                                                                             ` [PATCH v12 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-05-19 12:56                                                                                               ` Ilias Apalodimas
2023-05-19 13:36                                                                                                 ` Abdellatif El Khlifi
2023-05-19 14:07                                                                                                   ` Ilias Apalodimas
2023-05-12 12:10                                                                                             ` [PATCH v12 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-05-22  9:13                                                                                             ` [PATCH v12 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2023-06-06 11:56                                                                                               ` Abdellatif El Khlifi
2023-06-06 13:48                                                                                                 ` Tom Rini
2023-06-16 15:28                                                                                                   ` [PATCH v13 " Abdellatif El Khlifi
2023-06-16 15:28                                                                                                     ` [PATCH v13 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-06-20 14:05                                                                                                       ` Ilias Apalodimas
2023-07-03  9:47                                                                                                         ` Abdellatif El Khlifi
2023-06-16 15:28                                                                                                     ` [PATCH v13 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-06-16 15:28                                                                                                     ` [PATCH v13 03/10] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-06-20 10:27                                                                                                       ` Simon Glass
2023-06-16 15:28                                                                                                     ` [PATCH v13 04/10] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-06-20 10:27                                                                                                       ` Simon Glass
2023-06-30 12:49                                                                                                         ` Abdellatif El Khlifi
2023-07-02 15:44                                                                                                           ` Simon Glass
2023-07-03  9:41                                                                                                             ` Abdellatif El Khlifi
2023-06-16 15:28                                                                                                     ` [PATCH v13 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-06-20 10:27                                                                                                       ` Simon Glass
2023-06-20 14:25                                                                                                       ` Ilias Apalodimas
2023-07-03  9:55                                                                                                         ` Abdellatif El Khlifi
2023-07-03  9:59                                                                                                           ` Ilias Apalodimas
2023-07-03 12:08                                                                                                             ` Abdellatif El Khlifi
2023-07-03 13:30                                                                                                               ` Simon Glass
2023-07-03 15:53                                                                                                                 ` Abdellatif El Khlifi
2023-07-04  2:40                                                                                                                   ` Simon Glass
2023-07-07 14:43                                                                                                                     ` [PATCH v14 00/11] introduce Arm FF-A support Abdellatif El Khlifi
2023-07-07 14:44                                                                                                                       ` [PATCH v14 01/11] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-07-07 14:44                                                                                                                       ` [PATCH v14 02/11] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-07-07 14:44                                                                                                                       ` [PATCH v14 03/11] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-07-07 14:44                                                                                                                       ` [PATCH v14 04/11] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-07-07 14:44                                                                                                                       ` [PATCH v14 05/11] log: select physical address formatting in a generic way Abdellatif El Khlifi
2023-07-07 17:34                                                                                                                         ` Simon Glass
2023-07-10 12:14                                                                                                                           ` Abdellatif El Khlifi
2023-07-10 14:17                                                                                                                             ` Simon Glass
2023-07-10 14:49                                                                                                                               ` Abdellatif El Khlifi
2023-07-10 19:45                                                                                                                                 ` Simon Glass
2023-07-07 14:44                                                                                                                       ` [PATCH v14 06/11] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-07-07 14:44                                                                                                                       ` [PATCH v14 07/11] arm_ffa: introduce sandbox FF-A support Abdellatif El Khlifi
2023-07-07 17:35                                                                                                                         ` Simon Glass
2023-07-07 14:44                                                                                                                       ` [PATCH v14 08/11] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-07-07 14:44                                                                                                                       ` [PATCH v14 09/11] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2023-07-07 14:44                                                                                                                       ` [PATCH v14 10/11] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-07-07 14:44                                                                                                                       ` [PATCH v14 11/11] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-07-07 17:35                                                                                                                         ` Simon Glass
2023-07-07 17:44                                                                                                                           ` Tom Rini
2023-07-07 18:09                                                                                                                             ` Simon Glass
2023-07-10 15:03                                                                                                                               ` Abdellatif El Khlifi
2023-07-10 16:18                                                                                                                                 ` Tom Rini
2023-07-13 13:28                                                                                                                                   ` [PATCH v15 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 03/10] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 04/10] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 06/10] arm_ffa: introduce sandbox FF-A support Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 07/10] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-07-13 13:28                                                                                                                                     ` [PATCH v15 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-07-24 18:29                                                                                                                                     ` [PATCH v15 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2023-07-24 23:01                                                                                                                                     ` Tom Rini
2023-07-24 23:50                                                                                                                                     ` Tom Rini
2023-07-25  9:26                                                                                                                                       ` Abdellatif El Khlifi
2023-07-25 13:47                                                                                                                                         ` Tom Rini
2023-07-25 18:34                                                                                                                                           ` Abdellatif El Khlifi
2023-07-25 18:52                                                                                                                                             ` Tom Rini
2023-07-26  9:44                                                                                                                                               ` [PATCH v16 " Abdellatif El Khlifi
2023-07-26  9:44                                                                                                                                                 ` [PATCH v16 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-07-26  9:44                                                                                                                                                 ` [PATCH v16 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-07-26  9:44                                                                                                                                                 ` [PATCH v16 03/10] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-07-26  9:44                                                                                                                                                 ` [PATCH v16 04/10] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-07-27  9:56                                                                                                                                                   ` Ilias Apalodimas
2023-07-26  9:44                                                                                                                                                 ` [PATCH v16 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-07-26  9:44                                                                                                                                                 ` [PATCH v16 06/10] arm_ffa: introduce sandbox FF-A support Abdellatif El Khlifi
2023-07-26  9:45                                                                                                                                                 ` [PATCH v16 07/10] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-07-26  9:45                                                                                                                                                 ` [PATCH v16 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2023-07-26  9:45                                                                                                                                                 ` [PATCH v16 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-07-26 19:39                                                                                                                                                   ` Tom Rini
2023-07-27  9:34                                                                                                                                                     ` Abdellatif El Khlifi
2023-07-27 13:30                                                                                                                                                       ` Tom Rini
2023-07-27  9:58                                                                                                                                                   ` Ilias Apalodimas
2023-07-27 15:28                                                                                                                                                     ` Gowtham Suresh Kumar
2023-07-27 11:27                                                                                                                                                   ` Ilias Apalodimas
2023-07-27 12:36                                                                                                                                                     ` Abdellatif El Khlifi
2023-07-26  9:45                                                                                                                                                 ` [PATCH v16 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-07-26 16:06                                                                                                                                                   ` Tom Rini
2023-07-27 16:07                                                                                                                                                     ` [PATCH v17 00/10] introduce Arm FF-A support Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 01/10] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 02/10] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 03/10] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 04/10] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 06/10] arm_ffa: introduce sandbox FF-A support Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 07/10] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-07-27 16:43                                                                                                                                                         ` Tom Rini
2023-07-28  9:37                                                                                                                                                           ` Abdellatif El Khlifi
2023-07-28 11:00                                                                                                                                                           ` Ilias Apalodimas
2023-07-28 13:54                                                                                                                                                             ` Tom Rini
2023-07-31  9:38                                                                                                                                                               ` Ilias Apalodimas
2023-07-31 11:46                                                                                                                                                                 ` Abdellatif El Khlifi
2023-07-31 17:07                                                                                                                                                                   ` Simon Glass
2023-08-01  8:24                                                                                                                                                                   ` Ilias Apalodimas
2023-08-01 15:00                                                                                                                                                                     ` Tom Rini
2023-08-01 16:10                                                                                                                                                                       ` Abdellatif El Khlifi
2023-08-01 16:19                                                                                                                                                                         ` Tom Rini
2023-08-02  6:51                                                                                                                                                                           ` Ilias Apalodimas
2023-08-02 12:52                                                                                                                                                                             ` Simon Glass
2023-08-02 13:02                                                                                                                                                                               ` Ilias Apalodimas
2023-08-02 13:08                                                                                                                                                                                 ` Simon Glass
2023-08-02 13:26                                                                                                                                                                                   ` Ilias Apalodimas
2023-08-02 13:34                                                                                                                                                                                     ` Simon Glass
2023-08-02 13:37                                                                                                                                                                                       ` Ilias Apalodimas
2023-08-02 13:41                                                                                                                                                                                         ` Simon Glass
2023-08-02 13:42                                                                                                                                                                                           ` Ilias Apalodimas
2023-08-02 13:44                                                                                                                                                                                             ` Simon Glass
2023-08-02 13:47                                                                                                                                                                                               ` Ilias Apalodimas
2023-08-02 13:55                                                                                                                                                                                                 ` Simon Glass
2023-08-02 13:59                                                                                                                                                                                                   ` Ilias Apalodimas
2023-08-02 16:10                                                                                                                                                                                                     ` Simon Glass
2023-08-02 15:38                                                                                                                                                                                                   ` Tom Rini
2023-08-03 16:03                                                                                                                                                                             ` [PATCH v18 0/9] introduce Arm FF-A support Abdellatif El Khlifi
2023-08-03 16:03                                                                                                                                                                               ` [PATCH v18 1/9] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-08-03 16:03                                                                                                                                                                               ` [PATCH v18 2/9] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-08-03 16:03                                                                                                                                                                               ` [PATCH v18 3/9] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-08-03 16:03                                                                                                                                                                               ` [PATCH v18 4/9] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-08-03 16:03                                                                                                                                                                               ` [PATCH v18 5/9] arm_ffa: introduce sandbox " Abdellatif El Khlifi
2023-08-03 16:03                                                                                                                                                                               ` [PATCH v18 6/9] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-08-03 16:03                                                                                                                                                                               ` [PATCH v18 7/9] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-08-03 16:03                                                                                                                                                                               ` [PATCH v18 8/9] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-08-03 17:13                                                                                                                                                                                 ` Tom Rini
2023-08-03 16:03                                                                                                                                                                               ` [PATCH v18 9/9] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-08-03 17:14                                                                                                                                                                                 ` Tom Rini
2023-08-04  9:22                                                                                                                                                                                   ` Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                   ` [PATCH v19 0/9] introduce Arm FF-A support Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                     ` [PATCH v19 1/9] arm64: smccc: add support for SMCCCv1.2 x0-x17 registers Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                     ` [PATCH v19 2/9] lib: uuid: introduce uuid_str_to_le_bin function Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                     ` [PATCH v19 3/9] lib: uuid: introduce testcase for uuid_str_to_le_bin Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                     ` [PATCH v19 4/9] arm_ffa: introduce Arm FF-A support Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                     ` [PATCH v19 5/9] arm_ffa: introduce sandbox " Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                     ` [PATCH v19 6/9] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                     ` [PATCH v19 7/9] arm_ffa: introduce armffa command Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                     ` [PATCH v19 8/9] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-08-04 18:35                                                                                                                                                                                       ` Tom Rini
2023-08-07 14:47                                                                                                                                                                                       ` Ilias Apalodimas
2023-08-07 15:26                                                                                                                                                                                         ` Abdellatif El Khlifi
2023-08-04 13:33                                                                                                                                                                                     ` [PATCH v19 9/9] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-08-04 18:35                                                                                                                                                                                     ` [PATCH v19 0/9] introduce Arm FF-A support Tom Rini
2023-08-07 15:30                                                                                                                                                                                       ` Abdellatif El Khlifi
2023-08-08 19:25                                                                                                                                                                                     ` Tom Rini
2023-08-09  2:03                                                                                                                                                                                       ` Simon Glass
2023-08-09 11:47                                                                                                                                                                                         ` [PATCH] arm_ffa: use debug logs Abdellatif El Khlifi
2023-08-10  1:15                                                                                                                                                                                           ` Simon Glass
2023-08-17 19:02                                                                                                                                                                                           ` Tom Rini
2023-08-02 12:50                                                                                                                                                                           ` [PATCH v17 09/10] arm_ffa: efi: introduce FF-A MM communication Simon Glass
2023-08-01 12:28                                                                                                                                                                   ` Jens Wiklander
2023-08-02 10:36                                                                                                                                                                     ` Abdellatif El Khlifi
2023-07-27 16:07                                                                                                                                                       ` [PATCH v17 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-06-16 15:28                                                                                                     ` [PATCH v13 06/10] arm_ffa: introduce sandbox FF-A support Abdellatif El Khlifi
2023-06-16 15:28                                                                                                     ` [PATCH v13 07/10] arm_ffa: introduce sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2023-06-16 15:28                                                                                                     ` [PATCH v13 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2023-06-16 15:28                                                                                                     ` [PATCH v13 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2023-06-20 10:27                                                                                                       ` Simon Glass
2023-06-21  6:21                                                                                                       ` Ilias Apalodimas
2023-06-16 15:28                                                                                                     ` [PATCH v13 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2023-01-19 16:46                                                                         ` [PATCH v8 03/10] arm_ffa: introduce Arm FF-A low-level driver Sudeep Holla
2023-01-19 16:54                                                                           ` Simon Glass
2023-01-19 16:57                                                                             ` Tom Rini
2023-01-19 17:09                                                                               ` Sudeep Holla
2023-01-19 17:21                                                                                 ` Tom Rini
2023-01-19 17:22                                                                                 ` Simon Glass
2023-01-20 11:17                                                                                   ` Sudeep Holla
2023-01-23 16:32                                                                                     ` Simon Glass
2023-01-24 11:30                                                                                       ` Sudeep Holla
2023-01-24 22:44                                                                                         ` Simon Glass
2023-01-25  7:39                                                                                           ` Sudeep Holla
2023-01-19 17:21                                                                               ` Simon Glass
2023-01-19 17:24                                                                                 ` Tom Rini
2023-01-19 18:04                                                                                   ` Simon Glass
2023-01-20 10:52                                                                                     ` Sudeep Holla
2023-01-19 17:00                                                                             ` Sudeep Holla
2022-11-22 13:17                                         ` [PATCH v8 04/10] arm_ffa: efi: unmap RX/TX buffers Abdellatif El Khlifi
2022-11-23  2:09                                           ` Simon Glass
2022-11-22 13:17                                         ` [PATCH v8 05/10] arm_ffa: introduce armffa command Abdellatif El Khlifi
2022-11-23  2:09                                           ` Simon Glass
2022-11-22 13:17                                         ` [PATCH v8 06/10] arm_ffa: introduce the FF-A Sandbox driver Abdellatif El Khlifi
2022-11-23  2:09                                           ` Simon Glass
2022-11-22 13:17                                         ` [PATCH v8 07/10] arm_ffa: introduce Sandbox test cases for UCLASS_FFA Abdellatif El Khlifi
2022-11-23  2:09                                           ` Simon Glass
2022-11-22 13:17                                         ` [PATCH v8 08/10] arm_ffa: introduce armffa command Sandbox test Abdellatif El Khlifi
2022-11-23  2:09                                           ` Simon Glass
2022-11-22 13:17                                         ` [PATCH v8 09/10] arm_ffa: efi: introduce FF-A MM communication Abdellatif El Khlifi
2022-11-22 13:17                                         ` [PATCH v8 10/10] arm_ffa: efi: corstone1000: enable " Abdellatif El Khlifi
2022-08-01 19:13                 ` [PATCH 0/6] introduce Arm FF-A support Simon Glass
2022-08-01 19:28                   ` Sudeep Holla
2022-08-02  3:08                     ` Simon Glass
2022-08-02  8:38                       ` Sudeep Holla
2022-08-05 11:15                       ` Abdellatif El Khlifi
2022-08-05 16:48                         ` Simon Glass
2022-08-02 12:22                     ` Tom Rini
2022-08-02 13:45                       ` Sudeep Holla
2022-08-03 10:14                       ` Abdellatif El Khlifi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230310141016.137986-5-abdellatif.elkhlifi@arm.com \
    --to=abdellatif.elkhlifi@arm.com \
    --cc=Drew.Reed@arm.com \
    --cc=achin.gupta@arm.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jens.wiklander@linaro.org \
    --cc=nd@arm.com \
    --cc=robh@kernel.org \
    --cc=sjg@chromium.org \
    --cc=sudeep.holla@arm.com \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=xueliang.zhong@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.