All of lore.kernel.org
 help / color / mirror / Atom feed
From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
To: ilias.apalodimas@linaro.org
Cc: jens.wiklander@linaro.org, abdellatif.elkhlifi@arm.com,
	achin.gupta@arm.com, trini@konsulko.com, u-boot@lists.denx.de,
	vishnu.banavath@arm.com, xueliang.zhong@arm.com, nd@arm.com
Subject: [PATCH v3 3/4] arm_ffa: introduce Arm FF-A low-level driver
Date: Mon,  1 Aug 2022 18:20:52 +0100	[thread overview]
Message-ID: <20220801172053.20163-4-abdellatif.elkhlifi@arm.com> (raw)
In-Reply-To: <20220801172053.20163-1-abdellatif.elkhlifi@arm.com>

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

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 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.

32-bit version of the ABIs is supported and 64-bit version of FFA_RXTX_MAP
and FFA_MSG_SEND_DIRECT_{REQ, RESP}.

In u-boot FF-A design, FF-A is considered as a discoverable bus.
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

This implementation provides an optional feature to copy the driver data
to EFI runtime area.

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Jens Wiklander <jens.wiklander@linaro.org>
---
 MAINTAINERS                                |    6 +
 common/board_r.c                           |    7 +
 drivers/Kconfig                            |    2 +
 drivers/Makefile                           |    1 +
 drivers/arm-ffa/Kconfig                    |   33 +
 drivers/arm-ffa/Makefile                   |    7 +
 drivers/arm-ffa/arm-ffa-uclass.c           |   16 +
 drivers/arm-ffa/arm_ffa_prv.h              |  219 ++++
 drivers/arm-ffa/core.c                     | 1338 ++++++++++++++++++++
 drivers/arm-ffa/efi_ffa_runtime_data_mgr.c |   94 ++
 include/arm_ffa.h                          |  132 ++
 include/dm/uclass-id.h                     |    1 +
 include/uuid.h                             |    8 +
 lib/efi_loader/efi_boottime.c              |   17 +
 lib/uuid.c                                 |   65 +
 15 files changed, 1946 insertions(+)
 create mode 100644 drivers/arm-ffa/Kconfig
 create mode 100644 drivers/arm-ffa/Makefile
 create mode 100644 drivers/arm-ffa/arm-ffa-uclass.c
 create mode 100644 drivers/arm-ffa/arm_ffa_prv.h
 create mode 100644 drivers/arm-ffa/core.c
 create mode 100644 drivers/arm-ffa/efi_ffa_runtime_data_mgr.c
 create mode 100644 include/arm_ffa.h

diff --git a/MAINTAINERS b/MAINTAINERS
index f371d864f2..93a57f4df2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -248,6 +248,12 @@ 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:	drivers/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/common/board_r.c b/common/board_r.c
index ed29069d2d..2d3f359b96 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -63,6 +63,10 @@
 #include <efi_loader.h>
 #include <relocate.h>
 
+#ifdef CONFIG_ARM_FFA_TRANSPORT
+#include <arm_ffa.h>
+#endif
+
 DECLARE_GLOBAL_DATA_PTR;
 
 ulong monitor_flash_len;
@@ -767,6 +771,9 @@ static init_fnc_t init_sequence_r[] = {
 	INIT_FUNC_WATCHDOG_RESET
 	initr_net,
 #endif
+#ifdef CONFIG_ARM_FFA_TRANSPORT
+	ffa_bus_discover,
+#endif
 #ifdef CONFIG_POST
 	initr_post,
 #endif
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 8b6fead351..60b5fd4d9d 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -6,6 +6,8 @@ source "drivers/core/Kconfig"
 
 source "drivers/adc/Kconfig"
 
+source "drivers/arm-ffa/Kconfig"
+
 source "drivers/ata/Kconfig"
 
 source "drivers/axi/Kconfig"
diff --git a/drivers/Makefile b/drivers/Makefile
index eba9940231..dfde371381 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -110,6 +110,7 @@ obj-y += iommu/
 obj-y += smem/
 obj-y += thermal/
 obj-$(CONFIG_TEE) += tee/
+obj-$(CONFIG_ARM_FFA_TRANSPORT) += arm-ffa/
 obj-y += axi/
 obj-y += ufs/
 obj-$(CONFIG_W1) += w1/
diff --git a/drivers/arm-ffa/Kconfig b/drivers/arm-ffa/Kconfig
new file mode 100644
index 0000000000..882ffde90f
--- /dev/null
+++ b/drivers/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 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.
+	  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.
+
+config ARM_FFA_EFI_RUNTIME_MODE
+	bool "Enable EFI runtime support for FF-A data and code "
+	depends on ARM_FFA_TRANSPORT && EFI_LOADER
+	help
+	  Allows FF-A driver data structures and code to be accessible at EFI runtime
diff --git a/drivers/arm-ffa/Makefile b/drivers/arm-ffa/Makefile
new file mode 100644
index 0000000000..0b9b0a61b4
--- /dev/null
+++ b/drivers/arm-ffa/Makefile
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2022 Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+#
+
+obj-y += arm-ffa-uclass.o core.o
+obj-$(CONFIG_ARM_FFA_EFI_RUNTIME_MODE) += efi_ffa_runtime_data_mgr.o
diff --git a/drivers/arm-ffa/arm-ffa-uclass.c b/drivers/arm-ffa/arm-ffa-uclass.c
new file mode 100644
index 0000000000..7d9695d289
--- /dev/null
+++ b/drivers/arm-ffa/arm-ffa-uclass.c
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2022 ARM Limited
+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <asm/global_data.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+UCLASS_DRIVER(ffa) = {
+	.name		= "ffa",
+	.id		= UCLASS_FFA,
+};
diff --git a/drivers/arm-ffa/arm_ffa_prv.h b/drivers/arm-ffa/arm_ffa_prv.h
new file mode 100644
index 0000000000..1133c02400
--- /dev/null
+++ b/drivers/arm-ffa/arm_ffa_prv.h
@@ -0,0 +1,219 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * (C) Copyright 2022 ARM Limited
+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ */
+
+#ifndef __ARM_FFA_PRV_H
+#define __ARM_FFA_PRV_H
+
+#include <arm_ffa.h>
+#include <linux/bitfield.h>
+#include <linux/bitops.h>
+#include <linux/arm-smccc.h>
+
+/*
+ * This header is private. It is exclusively used by the FF-A driver
+ */
+
+/* FF-A core driver name */
+#define FFA_DRV_NAME "arm_ffa"
+
+/* 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))
+
+#define FFA_VERSION				FFA_SMC_32(0x63)
+#define FFA_ID_GET				FFA_SMC_32(0x69)
+#define FFA_FEATURES				FFA_SMC_32(0x64)
+#define FFA_PARTITION_INFO_GET			FFA_SMC_32(0x68)
+#define FFA_RXTX_UNMAP				FFA_SMC_32(0x67)
+#define FFA_RX_RELEASE				FFA_SMC_32(0x65)
+#define FFA_RUN					FFA_SMC_32(0x6D)
+#define FFA_ERROR				FFA_SMC_32(0x60)
+#define FFA_SUCCESS				FFA_SMC_32(0x61)
+#define FFA_INTERRUPT				FFA_SMC_32(0x62)
+#define FFA_RXTX_MAP				FFA_SMC_64(0x66)
+#define FFA_MSG_SEND_DIRECT_REQ			FFA_SMC_64(0x6F)
+#define FFA_MSG_SEND_DIRECT_RESP		FFA_SMC_64(0x70)
+
+/* The FF-A SMC function definitions */
+
+typedef struct arm_smccc_1_2_regs ffa_value_t;
+typedef void (*invoke_ffa_fn_t)(ffa_value_t args, ffa_value_t *res);
+
+/* FF-A error codes */
+#define FFA_ERR_STAT_NOT_SUPPORTED				(-1)
+#define FFA_ERR_STAT_INVALID_PARAMETERS				(-2)
+#define FFA_ERR_STAT_NO_MEMORY				(-3)
+#define FFA_ERR_STAT_BUSY				(-4)
+#define FFA_ERR_STAT_INTERRUPTED				(-5)
+#define FFA_ERR_STAT_DENIED				(-6)
+#define FFA_ERR_STAT_RETRY				(-7)
+#define FFA_ERR_STAT_ABORTED				(-8)
+
+/* UUID data size */
+#define UUID_SIZE (16)
+
+/*
+ * union ffa_partition_uuid - Data union hosting the UUID
+ *							transmitted by FFA_PARTITION_INFO_GET
+ * @words:	data structure giving 32-bit words access to the UUID data
+ * @bytes:	data structure giving byte access to the UUID data
+ *
+ * The structure holds little-endian UUID data.
+ */
+union ffa_partition_uuid {
+	struct __packed words {
+	u32 a1; /* w1 */
+	u32 a2; /* w2 */
+	u32 a3; /* w3 */
+	u32 a4; /* w4 */
+	} words;
+	u8 bytes[UUID_SIZE];
+};
+
+/**
+ * struct ffa_features_desc - FF-A functions features
+ * @func_id:	FF-A function
+ * @field1:	features read from register w2
+ * @field2:	features read from register w3
+ *
+ * Data structure describing the features of the  FF-A functions queried by
+ * FFA_FEATURES
+ */
+struct ffa_features_desc {
+	u32 func_id;
+	u32 field1;
+	u64 field2;
+};
+
+/**
+ * enum ffa_rxtx_buf_sizes - minimum sizes supported
+ * for the RX/TX buffers
+ */
+enum ffa_rxtx_buf_sizes {
+	RXTX_4K,
+	RXTX_64K,
+	RXTX_16K
+};
+
+/*
+ * Number of the FF-A interfaces features descriptors
+ * currently only FFA_RXTX_MAP descriptor is supported
+ */
+#define FFA_FEATURE_DESC_CNT (1)
+
+/**
+ * struct ffa_rxtxpair - structure hosting the RX/TX buffers virtual addresses
+ * @rxbuf:	virtual address of the RX buffer
+ * @txbuf:	virtual address of the TX buffer
+ *
+ * Data structure hosting 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 {
+	u64 rxbuf; /* virtual address */
+	u64 txbuf; /* virtual address */
+};
+
+/**
+ * struct ffa_partition_desc - the secure partition descriptor
+ * @info:	partition information
+ * @UUID:	UUID
+ *
+ * Each partition has its descriptor containing the partitions information and the UUID
+ */
+struct ffa_partition_desc {
+	struct ffa_partition_info info;
+	union ffa_partition_uuid UUID;
+};
+
+/**
+ * struct ffa_partitions - descriptors for all secure partitions
+ * @count:	The number of partitions descriptors
+ * @descs	The partitions descriptors table
+ *
+ * This data structure contains the partitions descriptors table
+ */
+struct ffa_partitions {
+	u32 count;
+	struct ffa_partition_desc *descs; /* virtual address */
+};
+
+/**
+ * struct ffa_prvdata - the driver private data structure
+ *
+ * @dev:	The arm_ffa device under u-boot driver model
+ * @ffa_ops:	The driver operations structure
+ * @fwk_version:	FF-A framework version
+ * @id:	u-boot endpoint ID
+ * @partitions:	The partitions descriptors structure
+ * @pair:	The RX/TX buffers pair
+ * @invoke_ffa_fn:	The function executing the FF-A function
+ * @features:	Table of the FF-A functions having features
+ *
+ * The driver data structure hosting all resident data.
+ */
+struct ffa_prvdata {
+	struct udevice *dev;
+	struct ffa_bus_ops ffa_ops;
+	u32 fwk_version;
+	u16 id;
+	struct ffa_partitions partitions;
+	struct ffa_rxtxpair pair;
+	invoke_ffa_fn_t invoke_ffa_fn;
+	struct ffa_features_desc features[FFA_FEATURE_DESC_CNT];
+};
+
+/**
+ * ffa_device_get - create, bind and probe the arm_ffa device
+ */
+int ffa_device_get(void);
+
+/**
+ * ffa_bus_prvdata_get - bus driver private data getter
+ */
+struct ffa_prvdata **ffa_bus_prvdata_get(void);
+
+#endif
diff --git a/drivers/arm-ffa/core.c b/drivers/arm-ffa/core.c
new file mode 100644
index 0000000000..40d140fc3e
--- /dev/null
+++ b/drivers/arm-ffa/core.c
@@ -0,0 +1,1338 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2022 ARM Limited
+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ */
+
+#include "arm_ffa_prv.h"
+#include <asm/global_data.h>
+#include <common.h>
+#include <dm.h>
+#include <dm/device-internal.h>
+#include <dm/devres.h>
+#include <dm/root.h>
+#include <linux/errno.h>
+#include <linux/sizes.h>
+#include <log.h>
+#include <malloc.h>
+#include <string.h>
+#include <uuid.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/**
+ * The device private data structure containing all the resident
+ * data read from secure world
+ */
+__ffa_runtime_data struct ffa_prvdata *ffa_priv_data;
+
+/*
+ * Driver functions
+ */
+
+/**
+ * ffa_remove_device - removes the arm_ffa device
+ * @dev:	the device to be removed
+ *
+ * This boot time function makes sure the arm_ffa device is removed
+ * No need to free the kmalloced data when the device is destroyed.
+ * It's automatically done by devm management.
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+int ffa_remove_device(struct udevice *dev)
+{
+	int ret;
+
+	if (!dev)
+		return -ENODEV;
+
+	ret = device_remove(dev, DM_REMOVE_NORMAL);
+	if (ret) {
+		ffa_err("Unable to remove. err:%d\n", ret);
+		return ret;
+	}
+
+	ret = device_unbind(dev);
+	if (ret) {
+		ffa_err("Unable to unbind. err:%d\n", ret);
+		return ret;
+	}
+
+	return FFA_ERR_STAT_SUCCESS;
+}
+
+/**
+ * ffa_device_get - create, bind and probe the arm_ffa device
+ *
+ * This boot time function makes sure the arm_ffa device is
+ * created, bound to this driver, probed and ready to use.
+ * Arm FF-A transport is implemented through a single u-boot
+ * device managing the FF-A bus (arm_ffa).
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+int ffa_device_get(void)
+{
+	int ret;
+	struct udevice *dev = NULL;
+
+	if (ffa_priv_data && ffa_priv_data->dev)
+		return FFA_ERR_STAT_SUCCESS;
+
+	ret = device_bind(dm_root(),
+			  DM_DRIVER_GET(arm_ffa),
+			  FFA_DRV_NAME,
+			  NULL,
+			  ofnode_null(),
+			  &dev);
+	if (ret)
+		return ret;
+
+	/* The FF-A bus discovery succeeds when probing is successful */
+	ret = device_probe(dev);
+	if (ret) {
+		ffa_err("arm_ffa device probing failed");
+		ffa_remove_device(dev);
+		return ret;
+	}
+
+	return FFA_ERR_STAT_SUCCESS;
+}
+
+/**
+ * ffa_get_version - FFA_VERSION handler function
+ *
+ * This is the boot time function that implements FFA_VERSION FF-A function
+ * to get from the secure world the FF-A framework version
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_get_version(void)
+{
+	u16 major, minor;
+	ffa_value_t res = {0};
+
+	if (!ffa_priv_data->invoke_ffa_fn)
+		panic("[FFA] no private data found\n");
+
+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_VERSION,
+			.a1 = FFA_VERSION_1_0, .a2 = 0, .a3 = 0, .a4 = 0, .a5 = 0, .a6 = 0, .a7 = 0,
+			}, &res);
+
+	if (((int)res.a0) == FFA_ERR_STAT_NOT_SUPPORTED) {
+		ffa_err("A Firmware Framework implementation does not exist");
+		return -EOPNOTSUPP;
+	}
+
+	major = GET_FFA_MAJOR_VERSION((u32)res.a0);
+	minor = GET_FFA_MINOR_VERSION((u32)res.a0);
+
+	ffa_info("FF-A driver %d.%d\nFF-A framework %d.%d",
+		 FFA_MAJOR_VERSION, FFA_MINOR_VERSION, major, minor);
+
+	if ((major == FFA_MAJOR_VERSION && minor >= FFA_MINOR_VERSION)) {
+		ffa_info("Versions are compatible ");
+
+		ffa_priv_data->fwk_version = (u32)res.a0;
+
+		return FFA_ERR_STAT_SUCCESS;
+	}
+
+	ffa_err("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
+ *
+ * This is the boot time function that implements FFA_ID_GET FF-A function
+ * to get from the secure world u-boot endpoint ID
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_get_endpoint_id(void)
+{
+	ffa_value_t res = {0};
+
+	if (!ffa_priv_data->invoke_ffa_fn)
+		panic("[FFA] no private data found\n");
+
+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_ID_GET,
+			.a1 = 0, .a2 = 0, .a3 = 0, .a4 = 0, .a5 = 0, .a6 = 0, .a7 = 0,
+			}, &res);
+
+	switch (res.a0) {
+	case FFA_ERROR:
+
+		if (((int)res.a2) == FFA_ERR_STAT_NOT_SUPPORTED) {
+			ffa_err("This function is not implemented at this FF-A instance");
+			return -EOPNOTSUPP;
+		}
+
+		ffa_err("Undefined error code (%d)", ((int)res.a2));
+		return -EINVAL;
+
+	case FFA_SUCCESS:
+
+		ffa_priv_data->id = GET_SELF_ENDPOINT_ID((u32)res.a2);
+		ffa_info("endpoint ID is %u", ffa_priv_data->id);
+
+		return FFA_ERR_STAT_SUCCESS;
+
+	default:
+
+		ffa_err("Undefined response function (0x%lx)", res.a0);
+		return -EINVAL;
+	}
+}
+
+/**
+ * ffa_get_features_desc - returns the features descriptor of the specified
+ *						FF-A function
+ * @func_id:	the FF-A function which the features are to be retrieved
+ *
+ * This is a boot time function that searches the features descriptor of the
+ * specified FF-A function
+ *
+ * Return:
+ *
+ * When found, the address of the features descriptor is returned. Otherwise, NULL.
+ */
+static struct ffa_features_desc *ffa_get_features_desc(u32 func_id)
+{
+	u32 desc_idx;
+
+	/*
+	 * search for the descriptor of the selected FF-A interface
+	 */
+	for (desc_idx = 0; desc_idx < FFA_FEATURE_DESC_CNT ; desc_idx++)
+		if (ffa_priv_data->features[desc_idx].func_id == func_id)
+			return &ffa_priv_data->features[desc_idx];
+
+	return NULL;
+}
+
+/**
+ * ffa_get_rxtx_map_features - FFA_FEATURES handler function with FFA_RXTX_MAP
+ *							argument
+ *
+ * This is the boot time function that implements FFA_FEATURES FF-A function
+ * to retrieve the FFA_RXTX_MAP features
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_get_rxtx_map_features(void)
+{
+	ffa_value_t res = {0};
+
+	if (!ffa_priv_data->invoke_ffa_fn)
+		panic("[FFA] no private data found\n");
+
+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_FEATURES,
+			.a1 = FFA_RXTX_MAP,
+			.a2 = 0, .a3 = 0, .a4 = 0, .a5 = 0, .a6 = 0, .a7 = 0,
+			}, &res);
+
+	switch (res.a0) {
+	case FFA_ERROR:
+	{
+		if (((int)res.a2) == FFA_ERR_STAT_NOT_SUPPORTED) {
+			ffa_err("FFA_RXTX_MAP is not implemented at this FF-A instance");
+			return -EOPNOTSUPP;
+		}
+
+		ffa_err("Undefined error code (%d)", ((int)res.a2));
+		return -EINVAL;
+	}
+	case FFA_SUCCESS:
+	{
+		u32 desc_idx;
+
+		/*
+		 * search for an empty descriptor
+		 */
+		for (desc_idx = 0; desc_idx < FFA_FEATURE_DESC_CNT ; desc_idx++)
+			if (!ffa_priv_data->features[desc_idx].func_id) {
+				/*
+				 * populate the descriptor with
+				 * the interface features data
+				 */
+				ffa_priv_data->features[desc_idx].func_id =
+					FFA_RXTX_MAP;
+				ffa_priv_data->features[desc_idx].field1 =
+					(u32)res.a2;
+
+				ffa_info("FFA_RXTX_MAP features data 0x%x",
+					 ffa_priv_data->features[desc_idx].field1);
+
+				return FFA_ERR_STAT_SUCCESS;
+			}
+
+		ffa_err("Cannot save FFA_RXTX_MAP features data. Descriptors table full");
+		return -ENOBUFS;
+	}
+	default:
+	{
+		ffa_err("Undefined response function (0x%lx)",
+			res.a0);
+		return -EINVAL;
+	}
+	}
+}
+
+/**
+ * ffa_get_rxtx_buffers_pages_cnt - reads from the features data descriptors
+ *						the minimum number of pages in each of the RX/TX
+ *						buffers
+ * @buf_4k_pages: Pointer to the minimum number of pages
+ *
+ * This is the boot time function that  returns the minimum number of pages
+ *  in each of the RX/TX buffers
+ *
+ * Return:
+ *
+ * buf_4k_pages points to the returned number of pages
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_get_rxtx_buffers_pages_cnt(size_t *buf_4k_pages)
+{
+	struct ffa_features_desc *desc = NULL;
+
+	if (!buf_4k_pages)
+		return -EINVAL;
+
+	desc = ffa_get_features_desc(FFA_RXTX_MAP);
+	if (!desc)
+		return -EINVAL;
+
+	switch (desc->field1) {
+	case RXTX_4K:
+		*buf_4k_pages = 1;
+		break;
+	case RXTX_16K:
+		*buf_4k_pages = 4;
+		break;
+	case RXTX_64K:
+		*buf_4k_pages = 16;
+		break;
+	default:
+		ffa_err("RX/TX buffer size not supported");
+		return -EINVAL;
+	}
+
+	return FFA_ERR_STAT_SUCCESS;
+}
+
+/**
+ * ffa_free_rxtx_buffers - frees the RX/TX buffers
+ * @buf_4k_pages: the minimum number of pages in each of the RX/TX
+ *			  buffers
+ *
+ * This is the boot time function used to free the RX/TX buffers
+ *
+ */
+static void ffa_free_rxtx_buffers(void)
+{
+	ffa_info("Freeing RX/TX buffers");
+
+	if (ffa_priv_data->pair.rxbuf) {
+		free((void *)ffa_priv_data->pair.rxbuf);
+		ffa_priv_data->pair.rxbuf = 0;
+	}
+
+	if (ffa_priv_data->pair.txbuf) {
+		free((void *)ffa_priv_data->pair.txbuf);
+		ffa_priv_data->pair.txbuf = 0;
+	}
+}
+
+/**
+ * ffa_alloc_rxtx_buffers - allocates the RX/TX buffers
+ * @buf_4k_pages: the minimum number of pages in each of the RX/TX
+ *			  buffers
+ *
+ * This is the boot time function 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:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_alloc_rxtx_buffers(size_t buf_4k_pages)
+{
+	u64 bytes;
+
+	ffa_info("Using %lu 4KB page(s) for RX/TX buffers size", buf_4k_pages);
+
+	bytes = buf_4k_pages * SZ_4K;
+
+	/* RX/TX buffers addresses should be PAGE_SIZE aligned */
+
+	ffa_priv_data->pair.rxbuf = (u64)memalign(PAGE_SIZE, bytes);
+	if (!ffa_priv_data->pair.rxbuf) {
+		ffa_err("Failure to allocate RX buffer");
+		return -ENOBUFS;
+	}
+
+	ffa_info("RX buffer at virtual address 0x%llx", ffa_priv_data->pair.rxbuf);
+
+	ffa_priv_data->pair.txbuf = (u64)memalign(PAGE_SIZE, bytes);
+	if (!ffa_priv_data->pair.txbuf) {
+		free((void *)ffa_priv_data->pair.rxbuf);
+		ffa_priv_data->pair.rxbuf = 0;
+		ffa_err("Failure to allocate the TX buffer");
+		return -ENOBUFS;
+	}
+
+	ffa_info("TX buffer at virtual address 0x%llx", ffa_priv_data->pair.txbuf);
+
+	/*
+	 * make sure the buffers are cleared before use
+	 */
+	memset((void *)ffa_priv_data->pair.rxbuf, 0, bytes);
+	memset((void *)ffa_priv_data->pair.txbuf, 0, bytes);
+
+	return FFA_ERR_STAT_SUCCESS;
+}
+
+/**
+ * ffa_map_rxtx_buffers - FFA_RXTX_MAP handler function
+ * @buf_4k_pages: the minimum number of pages in each of the RX/TX
+ *			  buffers
+ *
+ * This is the boot time function that implements FFA_RXTX_MAP FF-A function
+ * to map the RX/TX buffers
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_map_rxtx_buffers(size_t buf_4k_pages)
+{
+	int ret;
+	ffa_value_t res = {0};
+
+	if (!ffa_priv_data->invoke_ffa_fn)
+		panic("[FFA] no private data found\n");
+
+	ret = ffa_alloc_rxtx_buffers(buf_4k_pages);
+	if (ret != FFA_ERR_STAT_SUCCESS)
+		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
+	 */
+
+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_RXTX_MAP,
+			.a1 = ffa_priv_data->pair.txbuf,
+			.a2 = ffa_priv_data->pair.rxbuf,
+			.a3 = buf_4k_pages,
+			.a4 = 0, .a5 = 0, .a6 = 0, .a7 = 0,
+			}, &res);
+
+	switch (res.a0) {
+	case FFA_ERROR:
+	{
+		switch (((int)res.a2)) {
+		case FFA_ERR_STAT_INVALID_PARAMETERS:
+			ffa_err("One or more fields in input parameters is incorrectly encoded");
+			ret = -EPERM;
+			break;
+		case FFA_ERR_STAT_NO_MEMORY:
+			ffa_err("Not enough memory");
+			ret = -ENOMEM;
+			break;
+		case FFA_ERR_STAT_DENIED:
+			ffa_err("Buffer pair already registered");
+			ret = -EACCES;
+			break;
+		case FFA_ERR_STAT_NOT_SUPPORTED:
+			ffa_err("This function is not implemented at this FF-A instance");
+			ret = -EOPNOTSUPP;
+			break;
+		default:
+			ffa_err("Undefined error (%d)",
+				((int)res.a2));
+			ret = -EINVAL;
+		}
+		break;
+	}
+	case FFA_SUCCESS:
+		ffa_info("RX/TX buffers mapped");
+		return FFA_ERR_STAT_SUCCESS;
+	default:
+		ffa_err("Undefined response function (0x%lx)",
+			res.a0);
+		ret = -EINVAL;
+	}
+
+	ffa_free_rxtx_buffers();
+
+	return ret;
+}
+
+/**
+ * ffa_unmap_rxtx_buffers - FFA_RXTX_UNMAP handler function
+ *
+ * This is the boot time function that implements FFA_RXTX_UNMAP FF-A function
+ * to unmap the RX/TX buffers
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_unmap_rxtx_buffers(void)
+{
+	ffa_value_t res = {0};
+
+	if (!ffa_priv_data->invoke_ffa_fn)
+		panic("[FFA] no private data found\n");
+
+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_RXTX_UNMAP,
+			.a1 = PREP_SELF_ENDPOINT_ID(ffa_priv_data->id),
+			.a2 = 0, .a3 = 0, .a4 = 0, .a5 = 0, .a6 = 0, .a7 = 0,
+			}, &res);
+
+	switch (res.a0) {
+	case FFA_ERROR:
+	{
+		if (((int)res.a2) == FFA_ERR_STAT_NOT_SUPPORTED)
+			panic("[FFA] FFA_RXTX_UNMAP is not implemented at this FF-A instance\n");
+		else if (((int)res.a2) == FFA_ERR_STAT_INVALID_PARAMETERS)
+			panic("[FFA] There is no buffer pair registered on behalf of the caller\n");
+		else
+			panic("[FFA] Undefined error (%d)\n", ((int)res.a2));
+	}
+	case FFA_SUCCESS:
+	{
+		ffa_free_rxtx_buffers();
+
+		return FFA_ERR_STAT_SUCCESS;
+	}
+	default:
+		panic("[FFA] Undefined response function (0x%lx)", res.a0);
+		return -ENODEV;
+	}
+}
+
+/**
+ * ffa_release_rx_buffer - FFA_RX_RELEASE handler function
+ *
+ * This is the boot time function that invokes FFA_RX_RELEASE FF-A function
+ * to release the ownership of the RX buffer
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_release_rx_buffer(void)
+{
+	ffa_value_t res = {0};
+
+	if (!ffa_priv_data->invoke_ffa_fn)
+		panic("[FFA] no private data found\n");
+
+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_RX_RELEASE,
+			.a1 = 0, .a2 = 0, .a3 = 0, .a4 = 0, .a5 = 0, .a6 = 0, .a7 = 0,
+			}, &res);
+
+	switch (res.a0) {
+	case FFA_ERROR:
+	{
+		if (((int)res.a2) == FFA_ERR_STAT_NOT_SUPPORTED)
+			panic("[FFA] FFA_RX_RELEASE is not implemented at this FF-A instance\n");
+		else if (((int)res.a2) == FFA_ERR_STAT_DENIED)
+			panic("[FFA] Caller did not have ownership of the RX buffer\n");
+		else
+			panic("[FFA] Undefined error (%d)\n", ((int)res.a2));
+	}
+	case FFA_SUCCESS:
+		return FFA_ERR_STAT_SUCCESS;
+
+	default:
+		panic("[FFA] Undefined response function (0x%lx)\n", res.a0);
+		return -ENODEV;
+	}
+}
+
+/**
+ * ffa_uuid_are_identical - checks whether two given UUIDs are identical
+ * @uuid1: first UUID
+ * @uuid2: second UUID
+ *
+ * This is a boot time function used by ffa_read_partitions_info to search
+ * for a UUID in the partitions descriptors table
+ *
+ * Return:
+ *
+ * 1 when UUIDs match. Otherwise, 0
+ */
+int ffa_uuid_are_identical(const union ffa_partition_uuid *uuid1,
+			   const union ffa_partition_uuid *uuid2)
+{
+	if (!uuid1 || !uuid2)
+		return 0;
+
+	return (!memcmp(uuid1, uuid2, sizeof(union ffa_partition_uuid)));
+}
+
+/**
+ * ffa_read_partitions_info - reads the data queried by FFA_PARTITION_INFO_GET
+ *							and saves it in the private structure
+ * @count: The number of partitions queried
+ * @part_uuid: Pointer to the partition(s) UUID
+ *
+ * This is the boot time function that 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
+ * FFA_ERR_STAT_SUCCESS is returned on success. Otherwise, failure
+ */
+static int ffa_read_partitions_info(u32 count, union ffa_partition_uuid *part_uuid)
+{
+	if (!count) {
+		ffa_err("No partition detected");
+		return -ENODATA;
+	}
+
+	ffa_info("Reading partitions data from the RX buffer");
+
+	if (!part_uuid) {
+		/*
+		 * querying information of all partitions
+		 */
+		u64 buf_bytes;
+		u64 data_bytes;
+		size_t buf_4k_pages = 0;
+		u32 desc_idx;
+		struct ffa_partition_info *parts_info;
+		int ret;
+
+		data_bytes = count * sizeof(struct ffa_partition_desc);
+
+		/*
+		 * get the RX buffer size in pages
+		 */
+		ret = ffa_get_rxtx_buffers_pages_cnt(&buf_4k_pages);
+		if (ret != FFA_ERR_STAT_SUCCESS) {
+			ffa_err("Can not get the RX buffer size (error %d)", ret);
+			return ret;
+		}
+
+		buf_bytes = buf_4k_pages * SZ_4K;
+
+		if (data_bytes > buf_bytes) {
+			ffa_err("Partitions data size exceeds the RX buffer size:");
+			ffa_err("    Sizes in bytes: data %llu , RX buffer %llu ",
+				data_bytes,
+				buf_bytes);
+
+			return -ENOMEM;
+		}
+
+		ffa_priv_data->partitions.descs = (struct ffa_partition_desc *)
+			devm_kmalloc(ffa_priv_data->dev, data_bytes, __GFP_ZERO);
+		if (!ffa_priv_data->partitions.descs) {
+			ffa_err("Cannot  allocate partitions data buffer");
+			return -ENOMEM;
+		}
+
+		parts_info = (struct ffa_partition_info *)ffa_priv_data->pair.rxbuf;
+
+		for (desc_idx = 0 ; desc_idx < count ; desc_idx++) {
+			ffa_priv_data->partitions.descs[desc_idx].info =
+				parts_info[desc_idx];
+
+			ffa_info("Partition ID %x : info cached",
+				 ffa_priv_data->partitions.descs[desc_idx].info.id);
+		}
+
+		ffa_priv_data->partitions.count = count;
+
+		ffa_info("%d partition(s) found and cached", count);
+
+	} else {
+		u32 rx_desc_idx, cached_desc_idx;
+		struct ffa_partition_info *parts_info;
+		u8 desc_found;
+
+		parts_info = (struct ffa_partition_info *)ffa_priv_data->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 < ffa_priv_data->partitions.count;
+			     cached_desc_idx++) {
+				/*
+				 * save the UUID
+				 */
+				if (ffa_priv_data->partitions.descs[cached_desc_idx].info.id ==
+				    parts_info[rx_desc_idx].id) {
+					ffa_priv_data->partitions.descs[cached_desc_idx].UUID =
+						*part_uuid;
+
+					desc_found = 1;
+					break;
+				}
+			}
+
+			if (!desc_found)
+				return -ENODATA;
+		}
+	}
+
+	return  FFA_ERR_STAT_SUCCESS;
+}
+
+/**
+ * ffa_query_partitions_info - invokes FFA_PARTITION_INFO_GET and saves partitions data
+ *
+ * @part_uuid: Pointer to the partition(s) UUID
+ * @pcount: Pointer to the number of partitions variable filled when querying
+ *
+ * This is the boot time function that 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
+ * FFA_ERR_STAT_SUCCESS is returned on success. Otherwise, failure
+ */
+static int ffa_query_partitions_info(union ffa_partition_uuid *part_uuid,
+				     u32 *pcount)
+{
+	union ffa_partition_uuid query_uuid = {0};
+	ffa_value_t res = {0};
+
+	if (!ffa_priv_data->invoke_ffa_fn)
+		panic("[FFA] no private data found\n");
+
+	/*
+	 * 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;
+	}
+
+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_PARTITION_INFO_GET,
+			.a1 = query_uuid.words.a1,
+			.a2 = query_uuid.words.a2,
+			.a3 = query_uuid.words.a3,
+			.a4 = query_uuid.words.a4,
+			.a5 = 0,
+			.a6 = 0,
+			.a7 = 0,
+			}, &res);
+
+	switch (res.a0) {
+	case FFA_ERROR:
+	{
+		switch (((int)res.a2)) {
+		case FFA_ERR_STAT_INVALID_PARAMETERS:
+			ffa_err("Unrecognized UUID");
+			return -EPERM;
+		case FFA_ERR_STAT_NO_MEMORY:
+			ffa_err("Results cannot fit in RX buffer of the caller");
+			return -ENOMEM;
+		case FFA_ERR_STAT_DENIED:
+			ffa_err("Callee is not in a state to handle this request");
+			return -EACCES;
+		case FFA_ERR_STAT_NOT_SUPPORTED:
+			ffa_err("This function is not implemented at this FF-A instance");
+			return -EOPNOTSUPP;
+		case FFA_ERR_STAT_BUSY:
+			ffa_err("RX buffer of the caller is not free");
+			return -EBUSY;
+		default:
+			ffa_err("Undefined error (%d)", ((int)res.a2));
+			return -EINVAL;
+		}
+	}
+	case 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((u32)res.a2, part_uuid);
+			if (ret)
+				ffa_err("Failed to read partition(s) data , error (%d)", ret);
+		}
+
+		/*
+		 * return the SP count
+		 */
+		if (part_uuid) {
+			if (!ret)
+				*pcount = (u32)res.a2;
+			else
+				*pcount = 0;
+		}
+		/*
+		 * 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();
+
+		if (!part_uuid && !res.a2) {
+			ffa_err("[FFA] no partition installed in the system");
+			return -ENODEV;
+		}
+
+		return ret;
+	}
+	default:
+		ffa_err("Undefined response function (0x%lx)", res.a0);
+		return  -EINVAL;
+	}
+}
+
+/**
+ * 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
+ *	@parts_size: 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:
+ *	@uuid_str: pointer to the UUID string
+ *	@parts_size: pointer to the size of the SPs information buffer in bytes
+ *	@buffer: pointer to SPs information buffer
+ *		(allocated by the client).
+ *		The buffer will be filled by the driver
+ *
+ * This is the boot time function that 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:
+ *
+ * @parts_size: 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 FFA_ERR_STAT_SUCCESS is returned. Otherwise, failure
+ */
+static int ffa_get_partitions_info(const char *uuid_str,
+				   u32 *parts_size, struct ffa_partition_info *buffer)
+{
+	/*
+	 * fill_data:
+	 * 0: return the SP count
+	 * 1: fill SP data and return it to the caller
+	 * -1: undefined mode
+	 */
+	int fill_data = -1;
+	u32 desc_idx, client_desc_idx;
+	union ffa_partition_uuid part_uuid = {0};
+	u32 client_desc_max_cnt;
+	u32 parts_found = 0;
+
+	if (!ffa_priv_data->partitions.count || !ffa_priv_data->partitions.descs)
+		panic("[FFA] No partition installed\n");
+
+	if (!uuid_str) {
+		ffa_err("No UUID provided");
+		return -EINVAL;
+	}
+
+	if (!parts_size) {
+		ffa_err("No size/count provided");
+		return -EINVAL;
+	}
+
+	if (ffa_uuid_str_to_bin(uuid_str, (unsigned char *)&part_uuid)) {
+		ffa_err("Invalid UUID");
+		return -EINVAL;
+	}
+
+	if (!buffer) {
+		/* Mode 1: getting the number of secure partitions */
+
+		fill_data = 0;
+
+		ffa_info("Preparing for checking partitions count");
+
+	} else if ((*parts_size >= sizeof(struct ffa_partition_info)) &&
+		   !(*parts_size % sizeof(struct ffa_partition_info))) {
+		/* Mode 2: retrieving the partitions information */
+
+		fill_data = 1;
+
+		client_desc_idx = 0;
+
+		/*
+		 * number of empty descriptors preallocated by the caller
+		 */
+		client_desc_max_cnt = *parts_size / sizeof(struct ffa_partition_info);
+
+		ffa_info("Preparing for filling partitions info");
+
+	} else {
+		ffa_err("Invalid function arguments provided");
+		return -EINVAL;
+	}
+
+	ffa_info("Searching partitions using the provided UUID");
+
+	/*
+	 * search in the cached partitions
+	 */
+	for (desc_idx = 0;
+	     desc_idx < ffa_priv_data->partitions.count;
+	     desc_idx++) {
+		if (ffa_uuid_are_identical(&ffa_priv_data->partitions.descs[desc_idx].UUID,
+					   &part_uuid)) {
+			ffa_info("Partition ID %x matches the provided UUID",
+				 ffa_priv_data->partitions.descs[desc_idx].info.id);
+
+			parts_found++;
+
+			if (fill_data) {
+				/*
+				 * trying to fill the partition info in the input buffer
+				 */
+
+				if (client_desc_idx < client_desc_max_cnt) {
+					buffer[client_desc_idx++] =
+						ffa_priv_data->partitions.descs[desc_idx].info;
+					continue;
+				}
+
+				ffa_err("Failed to fill the current descriptor client buffer full");
+				return -ENOBUFS;
+			}
+		}
+	}
+
+	if (!parts_found) {
+		int ret;
+
+		ffa_info("No partition found. Querying framework ...");
+
+		ret = ffa_query_partitions_info(&part_uuid, &parts_found);
+
+		if (ret == FFA_ERR_STAT_SUCCESS) {
+			if (!fill_data) {
+				*parts_size = parts_found;
+
+				ffa_info("Number of partition(s) found matching the UUID: %d",
+					 parts_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 (parts_found)
+					ret = ffa_get_partitions_info(uuid_str, parts_size, buffer);
+				else
+					ret = -ENODATA;
+			}
+		}
+
+		return ret;
+	}
+
+	/* partition(s) found */
+	if (!fill_data)
+		*parts_size = parts_found;
+
+	return FFA_ERR_STAT_SUCCESS;
+}
+
+/**
+ * ffa_cache_partitions_info - Queries and saves all secure partitions data
+ *
+ * This is a boot time function that 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:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_cache_partitions_info(void)
+{
+	return ffa_query_partitions_info(NULL, NULL);
+}
+
+/**
+ * ffa_msg_send_direct_req - FFA_MSG_SEND_DIRECT_{REQ,RESP} handler function
+ * @dst_part_id: destination partition ID
+ * @msg: pointer to the message data preallocated by the client (in/out)
+ *
+ * This is the runtime function that 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:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int __ffa_runtime ffa_msg_send_direct_req(u16 dst_part_id, struct ffa_send_direct_data *msg)
+{
+	ffa_value_t res = {0};
+
+	if (!ffa_priv_data->invoke_ffa_fn)
+		return -ENODEV;
+
+	/* No partition installed */
+	if (!ffa_priv_data->partitions.count || !ffa_priv_data->partitions.descs)
+		return -ENODEV;
+
+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_MSG_SEND_DIRECT_REQ,
+			.a1 = PREP_SELF_ENDPOINT_ID(ffa_priv_data->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_INTERRUPT)
+		ffa_priv_data->invoke_ffa_fn((ffa_value_t){
+			.a0 = FFA_RUN,
+			.a1 = res.a1, .a2 = 0, .a3 = 0, .a4 = 0, .a5 = 0, .a6 = 0, .a7 = 0,
+			}, &res);
+
+	switch (res.a0) {
+	case FFA_ERROR:
+	{
+		switch (((int)res.a2)) {
+		case FFA_ERR_STAT_INVALID_PARAMETERS:
+			/* Invalid endpoint ID or non-zero reserved register */
+			return -EPERM;
+		case FFA_ERR_STAT_ABORTED:
+			/* Message target ran into unexpected error and has aborted */
+			return -ECONNABORTED;
+		case FFA_ERR_STAT_DENIED:
+			/* Callee is not in a state to handle this request */
+			return -EACCES;
+		case FFA_ERR_STAT_NOT_SUPPORTED:
+			/* This function is not implemented at this FF-A instance */
+			return -EOPNOTSUPP;
+		case FFA_ERR_STAT_BUSY:
+			/* Message target is busy */
+			return -EBUSY;
+		default:
+			/* Undefined error */
+			return -ENXIO;
+		}
+	}
+	case FFA_SUCCESS:
+
+		/* Message sent with no response */
+		return FFA_ERR_STAT_SUCCESS;
+
+	case FFA_MSG_SEND_DIRECT_RESP:
+		/*
+		 * 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 FFA_ERR_STAT_SUCCESS;
+
+	default:
+		/* Undefined response function */
+		return -ENOENT;
+	}
+}
+
+/**
+ * __arm_ffa_fn_smc - SMC wrapper
+ *
+ * Calls low level SMC function
+ *
+ * Return: void
+ */
+void __ffa_runtime __arm_ffa_fn_smc(ffa_value_t args, ffa_value_t *res)
+{
+	arm_smccc_1_2_smc(&args, res);
+}
+
+/**
+ * ffa_set_conduit - Set the conduit
+ *
+ * This boot time function clears the private data structure and sets the conduit
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_set_conduit(void)
+{
+	ffa_priv_data->invoke_ffa_fn = __arm_ffa_fn_smc;
+
+	ffa_info("Conduit is SMC");
+
+	return FFA_ERR_STAT_SUCCESS;
+}
+
+/**
+ * ffa_set_bus_ops - Set the bus driver operations
+ *
+ * Setting the driver callbacks.
+ *
+ */
+static void ffa_set_bus_ops(void)
+{
+	ffa_priv_data->ffa_ops.partition_info_get = ffa_get_partitions_info;
+	ffa_priv_data->ffa_ops.sync_send_receive = ffa_msg_send_direct_req;
+	ffa_priv_data->ffa_ops.rxtx_unmap = ffa_unmap_rxtx_buffers;
+}
+
+/**
+ * ffa_alloc_prvdata - allocate the driver main data structure
+ * @dev:	the arm_ffa device
+ *
+ * This boot time function creates the main data structure embedding all the driver data.
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_alloc_prvdata(struct udevice *dev)
+{
+	if (!dev)
+		return -ENODEV;
+
+	/* The device is registered with the DM. Let's create the driver main data structure*/
+
+	ffa_priv_data = devm_kmalloc(dev, sizeof(struct ffa_prvdata), __GFP_ZERO);
+	if (!ffa_priv_data) {
+		ffa_err("can not allocate the driver main data structure");
+		return -ENOMEM;
+	}
+
+	ffa_priv_data->dev = dev;
+
+	return FFA_ERR_STAT_SUCCESS;
+}
+
+/**
+ * ffa_probe - The driver probe function
+ * @dev:	the arm_ffa device
+ *
+ * Probing is done at boot time and triggered by the uclass device discovery.
+ * At probe level the following actions are done:
+ *	- setting the conduit
+ *	- querying the FF-A framework version
+ *	- querying from secure world the u-boot endpoint ID
+ *	- querying from secure world the supported features of the specified FF-A calls
+ *	- mapping the RX/TX buffers
+ *	- querying from secure world all the partitions information
+ *
+ * All data queried from secure world is saved in the resident private data structure.
+ *
+ * The probe will fail if either FF-A framework is not detected or the
+ * FF-A requests are not behaving correctly. This ensures that the
+ * driver is not installed and its operations are not exported to the clients.
+ * However, once the driver is successfully probed and an FF-A anomaly is
+ * detected when clients invoke the driver operations, the driver cause
+ * u-boot to panic because the client would not know what to do in such conditions.
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+static int ffa_probe(struct udevice *dev)
+{
+	int ret;
+	size_t buf_4k_pages = 0;
+
+	ret = ffa_alloc_prvdata(dev);
+	if (ret != FFA_ERR_STAT_SUCCESS)
+		return ret;
+
+	ffa_set_bus_ops();
+
+	ret = ffa_set_conduit();
+	if (ret != FFA_ERR_STAT_SUCCESS)
+		return ret;
+
+	ret = ffa_get_version();
+	if (ret != FFA_ERR_STAT_SUCCESS)
+		return ret;
+
+	ret = ffa_get_endpoint_id();
+	if (ret != FFA_ERR_STAT_SUCCESS)
+		return ret;
+
+	ret = ffa_get_rxtx_map_features();
+	if (ret != FFA_ERR_STAT_SUCCESS)
+		return ret;
+
+	ret = ffa_get_rxtx_buffers_pages_cnt(&buf_4k_pages);
+	if (ret != FFA_ERR_STAT_SUCCESS)
+		return ret;
+
+	ret = ffa_map_rxtx_buffers(buf_4k_pages);
+	if (ret != FFA_ERR_STAT_SUCCESS)
+		return ret;
+
+	ret = ffa_cache_partitions_info();
+	if (ret != FFA_ERR_STAT_SUCCESS) {
+		ffa_free_rxtx_buffers();
+		return ret;
+	}
+
+	return FFA_ERR_STAT_SUCCESS;
+}
+
+/**
+ * ffa_bus_ops_get - bus driver operations getter
+ *
+ * Return:
+ * This runtime function returns a pointer to the driver operations structure
+ */
+const struct ffa_bus_ops * __ffa_runtime ffa_bus_ops_get(void)
+{
+	return &ffa_priv_data->ffa_ops;
+}
+
+/**
+ * ffa_bus_prvdata_get - bus driver private data getter
+ *
+ * Return:
+ * This boot time function returns a pointer to the main private data structure
+ */
+struct ffa_prvdata **ffa_bus_prvdata_get(void)
+{
+	return &ffa_priv_data;
+}
+
+/**
+ * ffa_bus_discover - discover FF-A bus and probe the arm_ffa device
+ *
+ * This boot time function makes sure the FF-A bus is discoverable.
+ * Then, the arm_ffa device is probed and ready to use.
+ * This function is called automatically at initcalls
+ * level (after u-boot relocation).
+ *
+ * Arm FF-A transport is implemented through arm_ffa u-boot device managing the FF-A
+ * communication.
+ * All FF-A clients should use the arm_ffa device to use the FF-A transport.
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+int ffa_bus_discover(void)
+{
+	return ffa_device_get();
+}
+
+/**
+ * Declaring the arm_ffa driver under UCLASS_FFA
+ */
+
+U_BOOT_DRIVER(arm_ffa) = {
+	.name		= FFA_DRV_NAME,
+	.id		= UCLASS_FFA,
+	.probe		= ffa_probe,
+};
diff --git a/drivers/arm-ffa/efi_ffa_runtime_data_mgr.c b/drivers/arm-ffa/efi_ffa_runtime_data_mgr.c
new file mode 100644
index 0000000000..942601a7ba
--- /dev/null
+++ b/drivers/arm-ffa/efi_ffa_runtime_data_mgr.c
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2022 ARM Limited
+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ */
+
+#include "arm_ffa_prv.h"
+
+/**
+ * ffa_copy_runtime_data - copy the private data structure  to the runtime area
+ *
+ * This boot time function copies the arm_ffa driver data structures including
+ *  partitions data to the EFI runtime data section.
+ *
+ * Return:
+ *
+ * FFA_ERR_STAT_SUCCESS on success. Otherwise, failure
+ */
+efi_status_t ffa_copy_runtime_data(void)
+{
+	efi_status_t efi_ret;
+	efi_uintn_t prvdata_pages;
+	efi_uintn_t descs_pages;
+	struct ffa_prvdata **prvdata = NULL; /* Pointer to the current structure */
+	struct ffa_prvdata *runtime_prvdata = NULL; /* Pointer to the structure runtime copy */
+	u64 runtime_descs = 0;
+
+	prvdata = ffa_bus_prvdata_get();
+
+	printf("INFO: EFI: FFA: prv data area at 0x%llx\n", (u64)prvdata);
+
+	/* allocate private data runtime area */
+
+	prvdata_pages = efi_size_in_pages(sizeof(struct ffa_prvdata));
+	efi_ret = efi_allocate_pages(EFI_ALLOCATE_ANY_PAGES,
+				     EFI_RUNTIME_SERVICES_DATA,
+				     prvdata_pages,
+				     (u64 *)&runtime_prvdata);
+
+	if (efi_ret != EFI_SUCCESS) {
+		printf("ERROR: EFI: FFA: allocating runtime data (err: 0x%lx, addr 0x%llx)\n",
+		       efi_ret, (u64)runtime_prvdata);
+
+		return efi_ret;
+	}
+
+	printf("INFO: EFI: FFA: runtime data area at 0x%llx\n", (u64)runtime_prvdata);
+
+	if (!runtime_prvdata)
+		return EFI_INVALID_PARAMETER;
+
+	/* allocate the partition data runtime area */
+
+	descs_pages = efi_size_in_pages((*prvdata)->partitions.count *
+					sizeof(struct ffa_partition_desc));
+	efi_ret = efi_allocate_pages(EFI_ALLOCATE_ANY_PAGES,
+				     EFI_RUNTIME_SERVICES_DATA,
+				     descs_pages,
+				     &runtime_descs);
+
+	if (efi_ret != EFI_SUCCESS) {
+		printf("ERROR: EFI: FFA: allocating runtime SPs data (err: 0x%lx, addr 0x%llx)\n",
+		       efi_ret, runtime_descs);
+
+		efi_free_pages((u64)runtime_prvdata, prvdata_pages);
+
+		return efi_ret;
+	}
+
+	printf("INFO: EFI: FFA: SPs runtime area at 0x%llx\n", (u64)runtime_descs);
+
+	if (!runtime_descs)
+		return EFI_INVALID_PARAMETER;
+
+	*runtime_prvdata = **prvdata;
+
+	runtime_prvdata->dev = NULL;
+	runtime_prvdata->ffa_ops.partition_info_get = NULL;
+	runtime_prvdata->ffa_ops.rxtx_unmap = NULL;
+	runtime_prvdata->partitions.descs = (struct ffa_partition_desc *)runtime_descs;
+	runtime_prvdata->pair.rxbuf = 0;
+	runtime_prvdata->pair.txbuf = 0;
+
+	/*
+	 * Update the private data structure pointer in the driver
+	 * no need to free the old structure. devm takes care of that
+	 */
+	*prvdata = runtime_prvdata;
+
+	printf("INFO: EFI: FFA: runtime prv data now at 0x%llx , SPs count %d\n",
+	       (u64)*prvdata, (*prvdata)->partitions.count);
+
+	return FFA_ERR_STAT_SUCCESS;
+}
diff --git a/include/arm_ffa.h b/include/arm_ffa.h
new file mode 100644
index 0000000000..ee9ce2d99d
--- /dev/null
+++ b/include/arm_ffa.h
@@ -0,0 +1,132 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * (C) Copyright 2022 ARM Limited
+ * 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
+ */
+
+/*
+ * Macros for displaying logs
+ */
+
+#define ffa_info(fmt, ...)  pr_info("[FFA] " fmt "\n", ##__VA_ARGS__)
+#define ffa_err(fmt, ...)  pr_err("[FFA] " fmt "\n", ##__VA_ARGS__)
+
+/*
+ * The driver operations success error code
+ */
+#define FFA_ERR_STAT_SUCCESS				(0)
+
+/*
+ * 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  __packed 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 __packed 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 */
+};
+
+#if CONFIG_IS_ENABLED(ARM_FFA_EFI_RUNTIME_MODE)
+
+#include <efi_loader.h>
+
+/*
+ *  __ffa_runtime - controls whether functions are
+ * available after calling the EFI ExitBootServices service.
+ * Functions tagged with these keywords are resident (available at boot time and
+ * at runtime)
+ */
+
+#define __ffa_runtime_data __efi_runtime_data
+#define __ffa_runtime __efi_runtime
+
+#else
+
+/*
+ *  The FF-A driver is independent from EFI
+ */
+
+#define __ffa_runtime_data
+#define __ffa_runtime
+
+#endif
+
+/**
+ * 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)(const char *uuid_str,
+				  u32 *parts_size, struct ffa_partition_info *buffer);
+	int (*sync_send_receive)(u16 dst_part_id, struct ffa_send_direct_data *msg);
+	int (*rxtx_unmap)(void);
+};
+
+/**
+ * The device driver and the Uclass driver public functions
+ */
+
+/**
+ * ffa_bus_ops_get - driver operations getter
+ */
+const struct ffa_bus_ops * __ffa_runtime ffa_bus_ops_get(void);
+
+/**
+ * ffa_bus_discover - discover FF-A bus and probes the arm_ffa device
+ */
+int ffa_bus_discover(void);
+
+#if CONFIG_IS_ENABLED(ARM_FFA_EFI_RUNTIME_MODE)
+
+/**
+ * ffa_copy_runtime_data - copy the private data structure and the SPs data to the runtime area
+ */
+efi_status_t ffa_copy_runtime_data(void);
+
+#endif
+
+#endif
diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
index a432e43871..6eebbe9c7d 100644
--- a/include/dm/uclass-id.h
+++ b/include/dm/uclass-id.h
@@ -55,6 +55,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_FUZZING_ENGINE,	/* Fuzzing engine */
 	UCLASS_FS_FIRMWARE_LOADER,		/* Generic loader */
diff --git a/include/uuid.h b/include/uuid.h
index 4a4883d3b5..789f8e0f15 100644
--- a/include/uuid.h
+++ b/include/uuid.h
@@ -44,4 +44,12 @@ int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin);
 const char *uuid_guid_get_str(const unsigned char *guid_bin);
 void gen_rand_uuid(unsigned char *uuid_bin);
 void gen_rand_uuid_str(char *uuid_str, int str_format);
+
+#ifdef CONFIG_ARM_FFA_TRANSPORT
+/**
+ * ffa_uuid_str_to_bin - Converts a big endian UUID string to a little endian buffer
+ */
+int ffa_uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin);
+#endif
+
 #endif
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index 4da64b5d29..e02bb445f5 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -23,6 +23,10 @@
 #include <asm/setjmp.h>
 #include <linux/libfdt_env.h>
 
+#if defined(CONFIG_ARM_FFA_TRANSPORT)
+#include <arm_ffa.h>
+#endif
+
 DECLARE_GLOBAL_DATA_PTR;
 
 /* Task priority level */
@@ -2113,6 +2117,10 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
 	struct efi_event *evt, *next_event;
 	efi_status_t ret = EFI_SUCCESS;
 
+#if defined(CONFIG_ARM_FFA_TRANSPORT)
+	int ffa_ret;
+#endif
+
 	EFI_ENTRY("%p, %zx", image_handle, map_key);
 
 	/* Check that the caller has read the current memory map */
@@ -2173,6 +2181,15 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
 		dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL);
 	}
 
+#if defined(CONFIG_ARM_FFA_TRANSPORT)
+	/* unmap FF-A RX/TX buffers */
+	ffa_ret = ffa_bus_ops_get()->rxtx_unmap();
+	if (ffa_ret)
+		debug("[efi_boottime][ERROR]: can not unmap FF-A RX/TX buffers\n");
+	else
+		debug("[efi_boottime][INFO]: FF-A RX/TX buffers unmapped\n");
+#endif
+
 	/* Patch out unsupported runtime function */
 	efi_runtime_detach();
 
diff --git a/lib/uuid.c b/lib/uuid.c
index 284f8113ff..50b3e61d59 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2011 Calxeda, Inc.
+ * Copyright 2022 ARM Limited
  */
 
 #include <common.h>
@@ -342,6 +343,70 @@ int uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin,
 	return 0;
 }
 
+#ifdef CONFIG_ARM_FFA_TRANSPORT
+/**
+ * ffa_uuid_str_to_bin - Converts a big endian UUID string to a little endian buffer
+ * @uuid_str:	UUID string in big endian format (36 bytes wide + '/0')
+ * @uuid_bin:	preallocated 16 bytes UUID buffer in little endian format
+ *
+ * UUID string is 36 characters (36 bytes):
+ *
+ * xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+ * be		     be	     be	      be      be
+ *
+ * where x is a hexadecimal character. Fields are separated by '-'s.
+ * When converting to a binary UUID, these endianness rules apply:
+ *     be: means the field in the string is considered a big endian hex number
+ *	   and should be converted to little endian binary format
+ *
+ * Return:
+ *
+ *    uuid_bin filled with little endian UUID data
+ *    On success 0 is returned. Otherwise, failure code.
+ */
+int ffa_uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin)
+{
+	u16 tmp16 = 0;
+	u32 tmp32 = 0;
+	u64 tmp64 = 0;
+
+	if (!uuid_str_valid(uuid_str) || !uuid_bin)
+		return -EINVAL;
+
+	/*
+	 * reverse bytes from big to little endian
+	 */
+	tmp32 = simple_strtoul(uuid_str, NULL, 16);
+	memcpy(uuid_bin, &tmp32, 4);
+
+	/*
+	 * reverse bytes from big to little endian
+	 */
+	tmp16 = simple_strtoul(uuid_str + 9, NULL, 16);
+	memcpy(uuid_bin + 4, &tmp16, 2);
+
+	/*
+	 * reverse bytes from big to little endian
+	 */
+	tmp16 = simple_strtoul(uuid_str + 14, NULL, 16);
+	memcpy(uuid_bin + 6, &tmp16, 2);
+
+	/*
+	 * reverse bytes from big to little endian
+	 */
+	tmp16 = simple_strtoul(uuid_str + 19, NULL, 16);
+	memcpy(uuid_bin + 8, &tmp16, 2);
+
+	/*
+	 * reverse bytes from big to little endian
+	 */
+	tmp64 = simple_strtoull(uuid_str + 24, NULL, 16);
+	memcpy(uuid_bin + 10, (char *)&tmp64, 6);
+
+	return 0;
+}
+#endif
+
 /*
  * uuid_bin_to_str() - convert big endian binary data to string UUID or GUID.
  *
-- 
2.17.1


  parent reply	other threads:[~2022-08-01 17:21 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                               ` Abdellatif El Khlifi [this message]
2022-08-12  7:39                                 ` [PATCH v3 3/4] arm_ffa: introduce Arm FF-A low-level driver 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                                                                                     ` [PATCH v9 04/10] arm_ffa: introduce Arm FF-A low-level driver Abdellatif El Khlifi
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=20220801172053.20163-4-abdellatif.elkhlifi@arm.com \
    --to=abdellatif.elkhlifi@arm.com \
    --cc=achin.gupta@arm.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jens.wiklander@linaro.org \
    --cc=nd@arm.com \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=vishnu.banavath@arm.com \
    --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.