diff --git a/meta-arm/.gitlab-ci.yml b/meta-arm/.gitlab-ci.yml
index 840a650..1fb21f6 100644
--- a/meta-arm/.gitlab-ci.yml
+++ b/meta-arm/.gitlab-ci.yml
@@ -171,6 +171,13 @@
         TCLIBC: [glibc, musl]
         TESTING: testimage
 
+qemuarm64-secureboot-ts:
+  extends: .build
+  parallel:
+    matrix:
+      - TCLIBC: [glibc, musl]
+        TESTING: testimage
+
 qemuarm64:
   extends: .build
   parallel:
diff --git a/meta-arm/ci/qemuarm64-secureboot-ts.yml b/meta-arm/ci/qemuarm64-secureboot-ts.yml
new file mode 100644
index 0000000..66a27c6
--- /dev/null
+++ b/meta-arm/ci/qemuarm64-secureboot-ts.yml
@@ -0,0 +1,28 @@
+# Build qemuarm64-secureboot machine with
+# Trusted Services secure partition included into optee-os image.
+#
+# Run Trustes Services OEQA tests.
+
+header:
+  version: 11
+  includes:
+    - ci/base.yml
+    - ci/meta-openembedded.yml
+
+machine: qemuarm64-secureboot
+
+local_conf_header:
+  failing_tests: |
+    # software IO TLB: Cannot allocate buffer
+    DEFAULT_TEST_SUITES:remove = "parselogs"
+  trusted_services: |
+    TEST_SUITES:append = " trusted_services"
+    # Include TS Crypto, Storage, ITS, Attestation and SMM-Gateway SPs into optee-os image
+    MACHINE_FEATURES:append = " arm-ffa ts-crypto ts-storage ts-its ts-attestation ts-smm-gateway"
+    # Include TS demo/test tools into image
+    IMAGE_INSTALL:append = " packagegroup-ts-tests"
+    # Include TS PSA Arch tests into image
+    IMAGE_INSTALL:append = " packagegroup-ts-tests-psa"
+
+target:
+  - core-image-base
diff --git a/meta-arm/documentation/oeqa-fvp.md b/meta-arm/documentation/oeqa-fvp.md
new file mode 100644
index 0000000..582dd38
--- /dev/null
+++ b/meta-arm/documentation/oeqa-fvp.md
@@ -0,0 +1,55 @@
+# OEQA on Arm FVPs
+
+OE-Core's [oeqa][OEQA] framework provides a method of performing runtime tests on machines using the `testimage` Yocto task. meta-arm has good support for writing test cases against [Arm FVPs][FVP], meaning the [runfvp][RUNFVP] boot configuration can be re-used.
+
+Tests can be configured to run automatically post-build by setting the variable `TESTIMAGE_AUTO="1"`, e.g. in your Kas file or local.conf.
+
+There are two main methods of testing, using different test "targets".
+
+## OEFVPTarget
+
+This runs test cases on a machine using SSH. It therefore requires that an SSH server is installed in the image.
+
+In test cases, the primary interface with the target is, e.g:
+```
+(status, output) = self.target.run('uname -a')
+```
+which runs a single command on the target (using `ssh -c`) and returns the status code and the output. It is therefore useful for running tests in a Linux environment.
+
+For examples of test cases, see meta/lib/oeqa/runtime/cases in OE-Core. The majority of test cases depend on `ssh.SSHTest.test_ssh`, which first validates that the SSH connection is functioning.
+
+Example machine configuration:
+```
+TEST_TARGET = "OEFVPTarget"
+TEST_SERVER_IP = "127.0.0.1"
+TEST_TARGET_IP = "127.0.0.1:8022"
+IMAGE_FEATURES:append = " ssh-server-dropbear"
+FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] ?= "8022=22"
+```
+
+## OEFVPSerialTarget
+
+This runs tests against one or more serial consoles on the FVP. It is more flexible than OEFVPTarget, but test cases written for this test target do not support the test cases in OE-core. As it does not require an SSH server, it is suitable for machines with performance or memory limitations.
+
+Internally, this test target launches a [Pexpect][PEXPECT] instance for each entry in FVP_CONSOLES which can be used with the provided alias. The whole Pexpect API is exposed on the target, where the alias is always passed as the first argument, e.g.:
+```
+self.target.expect('default', r'root@.*\:~#', timeout=30)
+self.assertNotIn(b'ERROR:', self.target.before('tf-a'))
+```
+
+For an example of a full test case, see meta-arm/lib/oeqa/runtime/cases/linuxboot.py This test case can be used to minimally verify that a machine boots to a Linux shell. The default timeout is 10 minutes, but this can be configured with the variable TEST_FVP_LINUX_BOOT_TIMEOUT, which expects a value in seconds.
+
+The SSH interface described above is also available on OEFVPSerialTarget to support writing a set of hybrid test suites that use a combination of serial and SSH access. Note however that this test target does not guarantee that Linux has booted to shell prior to running any tests, so the test cases in OE-core are not supported.
+
+Example machine configuration:
+```
+TEST_TARGET="OEFVPSerialTarget"
+TEST_SUITES="linuxboot"
+FVP_CONSOLES[default] = "terminal_0"
+FVP_CONSOLES[tf-a] = "s_terminal_0"
+```
+
+[OEQA]: https://docs.yoctoproject.org/test-manual/intro.html
+[FVP]: https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms
+[RUNFVP]: runfvp.md
+[PEXPECT]: https://pexpect.readthedocs.io/en/stable/overview.html
diff --git a/meta-arm/documentation/runfvp.md b/meta-arm/documentation/runfvp.md
index b9e007b..c792f4e 100644
--- a/meta-arm/documentation/runfvp.md
+++ b/meta-arm/documentation/runfvp.md
@@ -98,13 +98,16 @@
 FVP_TERMINALS[bp.terminal_3] = ""
 ```
 
-### `FVP_CONSOLE`
+### `FVP_CONSOLES`
 
-This specifies what serial port is used when `--console` is passed to runfvp. Note that this has to be the FVP identifier but without the board prefix, for example:
+This specifies what serial ports can be used in oeqa tests, along with an alias to be used in the test cases. Note that the values have to be the FVP identifier but without the board prefix, for example:
 ```
-FVP_CONSOLE = "terminal_0"
+FVP_CONSOLES[default] = "terminal_0"
+FVP_CONSOLES[tf-a] = "s_terminal_0"
 ```
 
+The 'default' console is also used when `--console` is passed to runfvp.
+
 ### `FVP_EXTRA_ARGS`
 
 Arbitrary extra arguments that are passed directly to the FVP.  For example:
diff --git a/meta-arm/meta-arm-bsp/conf/machine/corstone500.conf b/meta-arm/meta-arm-bsp/conf/machine/corstone500.conf
index 1d25471..adcfddd 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/corstone500.conf
+++ b/meta-arm/meta-arm-bsp/conf/machine/corstone500.conf
@@ -26,7 +26,7 @@
 UBOOT_MACHINE = "corstone500_defconfig"
 UBOOT_IMAGE_ENTRYPOINT = "0x84000000"
 UBOOT_IMAGE_LOADADDRESS = "0x84000000"
-PREFERRED_VERSION_u-boot ?= "2022.04"
+PREFERRED_VERSION_u-boot ?= "2022.07"
 
 # making sure EXTRA_IMAGEDEPENDS will be used while creating the image
 WKS_FILE_DEPENDS:append = " ${EXTRA_IMAGEDEPENDS}"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/fvp-base.conf b/meta-arm/meta-arm-bsp/conf/machine/fvp-base.conf
index 434812b..04ec112 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/fvp-base.conf
+++ b/meta-arm/meta-arm-bsp/conf/machine/fvp-base.conf
@@ -10,6 +10,8 @@
 TUNE_FEATURES = "aarch64"
 
 PREFERRED_VERSION_u-boot ?= "2022.04"
+PREFERRED_VERSION_linux-yocto ?= "5.15%"
+PREFERRED_VERSION_linux-yocto-rt ?= "5.15%"
 
 # FVP u-boot configuration
 UBOOT_MACHINE = "vexpress_aemv8a_semi_defconfig"
diff --git a/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc b/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc
index 91dbbfd..ec48222 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc
+++ b/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc
@@ -22,7 +22,7 @@
 RE_IMAGE_OFFSET = "0x1000"
 
 # u-boot
-PREFERRED_VERSION_u-boot ?= "2022.04"
+PREFERRED_VERSION_u-boot ?= "2022.07"
 EXTRA_IMAGEDEPENDS += "u-boot"
 
 UBOOT_CONFIG ??= "EFI"
@@ -46,7 +46,7 @@
 # Linux kernel
 PREFERRED_PROVIDER_virtual/kernel:forcevariable = "linux-yocto"
 PREFERRED_VERSION_linux-yocto = "5.15%"
-KERNEL_IMAGETYPE = "Image"
+KERNEL_IMAGETYPE = "Image.gz"
 
 INITRAMFS_IMAGE_BUNDLE ?= "1"
 
diff --git a/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf b/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf
index 5e87e61..5d1be82 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf
+++ b/meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf
@@ -30,6 +30,9 @@
 #UEFI EDK2 firmware
 EXTRA_IMAGEDEPENDS += "edk2-firmware"
 
+#optee
+PREFERRED_VERSION_optee-os ?= "3.18.%"
+
 #grub-efi
 EFI_PROVIDER ?= "grub-efi"
 MACHINE_FEATURES += "efi"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/bl_size.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/bl_size.patch
deleted file mode 100644
index a5b3019..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/bl_size.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 80b1efa92486a87f9e82dbf665ef612291148de8 Mon Sep 17 00:00:00 2001
-From: Adam Johnston <adam.johnston@arm.com>
-Date: Tue, 14 Jun 2022 11:19:30 +0000
-Subject: [PATCH] arm-bsp/trusted-firmware-a: N1SDP trusted boot
-
-Increase max size of BL2 on N1SDP by 4KB to enable trusted boot
-Decrease max size of BL1 on N1SDP by 8KB so BL1/BL2 fits above BL31 progbits
-
-Signed-off-by: Adam Johnston <adam.johnston@arm.com>
-Upstream-Status: Pending [Flagged to upstream]
-
----
- plat/arm/board/n1sdp/include/platform_def.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/plat/arm/board/n1sdp/include/platform_def.h b/plat/arm/board/n1sdp/include/platform_def.h
-index c9b81bafa..7468a31ed 100644
---- a/plat/arm/board/n1sdp/include/platform_def.h
-+++ b/plat/arm/board/n1sdp/include/platform_def.h
-@@ -91,7 +91,7 @@
-  * PLAT_ARM_MAX_BL1_RW_SIZE is calculated using the current BL1 RW debug size
-  * plus a little space for growth.
-  */
--#define PLAT_ARM_MAX_BL1_RW_SIZE	0xE000
-+#define PLAT_ARM_MAX_BL1_RW_SIZE	0xC000
- 
- /*
-  * PLAT_ARM_MAX_ROMLIB_RW_SIZE is define to use a full page
-@@ -110,7 +110,7 @@
-  * little space for growth.
-  */
- #if TRUSTED_BOARD_BOOT
--# define PLAT_ARM_MAX_BL2_SIZE		0x20000
-+# define PLAT_ARM_MAX_BL2_SIZE		0x21000
- #else
- # define PLAT_ARM_MAX_BL2_SIZE		0x14000
- #endif
--- 
-2.35.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
index f8a0b8d..034dac3 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
@@ -1,5 +1,8 @@
 # N1SDP specific TFA support
 
+SRCREV_tfa  = "1d867c14cb41c1171d16fa7e395a4eaed3d572b2"
+PV .= "+git${SRCPV}"
+
 COMPATIBLE_MACHINE = "n1sdp"
 TFA_PLATFORM       = "n1sdp"
 TFA_BUILD_TARGET   = "all fip"
@@ -9,16 +12,23 @@
 TFA_UBOOT          = "0"
 TFA_UEFI           = "1"
 
-SRC_URI:append = " file://bl_size.patch"
-
 TFA_ROT_KEY= "plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem"
 
+# Enabling Secure-EL1 Payload Dispatcher (SPD)
+TFA_SPD = "spmd"
+# Cortex-A35 supports Armv8.0-A (no S-EL2 execution state).
+# So, the SPD SPMC component should run at the S-EL1 execution state
+TFA_SPMD_SPM_AT_SEL2 = "0"
+
+# BL2 loads BL32 (optee). So, optee needs to be built first:
+DEPENDS += "optee-os"
+
 EXTRA_OEMAKE:append = "\
                     TRUSTED_BOARD_BOOT=1 \
-                    GENERATE_COT=1 \
-                    CREATE_KEYS=1 \
-                    ENABLE_PIE=0 \
-                    ARM_ROTPK_LOCATION="devel_rsa" \
-                    ROT_KEY="${TFA_ROT_KEY}" \
-                    BL33=${RECIPE_SYSROOT}/firmware/uefi.bin \
-                    "
+		    GENERATE_COT=1 \
+		    CREATE_KEYS=1 \
+		    ARM_ROTPK_LOCATION="devel_rsa" \
+		    ROT_KEY="${TFA_ROT_KEY}" \
+		    BL32=${RECIPE_SYSROOT}/lib/firmware/tee-pager_v2.bin \
+		    BL33=${RECIPE_SYSROOT}/firmware/uefi.bin \
+		    "
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-cmd-load-add-load-command-for-memory-mapped.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-cmd-load-add-load-command-for-memory-mapped.patch
index d0ae964..dc64e3c 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-cmd-load-add-load-command-for-memory-mapped.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-cmd-load-add-load-command-for-memory-mapped.patch
@@ -1,7 +1,7 @@
-From c047b15fba9da36616bc9a346d9fe4d76e7ca4b2 Mon Sep 17 00:00:00 2001
+From 7a1a84ea74fdd06a7f5f239f4c5f4b727d6cd232 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Thu, 24 Jun 2021 09:25:00 +0100
-Subject: [PATCH 01/27] cmd: load: add load command for memory mapped
+Subject: [PATCH 01/24] cmd: load: add load command for memory mapped
 
 cp.b is used a lot as a way to load binaries to memory and execute
 them, however we may need to integrate this with the efi subsystem to
@@ -26,10 +26,10 @@
  6 files changed, 78 insertions(+)
 
 diff --git a/README b/README
-index f51f392111f9..049bcd108980 100644
+index b7ab6e50708d..cd76f95e74c1 100644
 --- a/README
 +++ b/README
-@@ -2760,6 +2760,7 @@ rarpboot- boot image via network using RARP/TFTP protocol
+@@ -2578,6 +2578,7 @@ rarpboot- boot image via network using RARP/TFTP protocol
  diskboot- boot from IDE devicebootd   - boot default, i.e., run 'bootcmd'
  loads	- load S-Record file over serial line
  loadb	- load binary file over serial line (kermit mode)
@@ -38,10 +38,10 @@
  mm	- memory modify (auto-incrementing)
  nm	- memory modify (constant address)
 diff --git a/cmd/Kconfig b/cmd/Kconfig
-index 5e25e45fd288..ff50102a89c7 100644
+index 09193b61b95f..ba2f321ae989 100644
 --- a/cmd/Kconfig
 +++ b/cmd/Kconfig
-@@ -1076,6 +1076,12 @@ config CMD_LOADB
+@@ -1143,6 +1143,12 @@ config CMD_LOADB
  	help
  	  Load a binary file over serial line.
  
@@ -55,7 +55,7 @@
  	bool "loads"
  	default y
 diff --git a/cmd/bootefi.c b/cmd/bootefi.c
-index 53d9f0e0dcca..8d492ea9e70c 100644
+index 827fcd97dfd8..37ce659fa123 100644
 --- a/cmd/bootefi.c
 +++ b/cmd/bootefi.c
 @@ -34,6 +34,18 @@ static struct efi_device_path *bootefi_device_path;
@@ -141,10 +141,10 @@
 +);
 +#endif /* CONFIG_CMD_LOADM */
 diff --git a/include/efi_loader.h b/include/efi_loader.h
-index af36639ec6a7..126db279dd3e 100644
+index 11930fbea838..5b41985244e2 100644
 --- a/include/efi_loader.h
 +++ b/include/efi_loader.h
-@@ -585,6 +585,8 @@ efi_status_t efi_load_pe(struct efi_loaded_image_obj *handle,
+@@ -591,6 +591,8 @@ efi_status_t efi_load_pe(struct efi_loaded_image_obj *handle,
  void efi_save_gd(void);
  /* Call this to relocate the runtime section to an address space */
  void efi_runtime_relocate(ulong offset, struct efi_mem_desc *map);
@@ -154,10 +154,10 @@
  void efi_add_handle(efi_handle_t obj);
  /* Create handle */
 diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c
-index 0542aaae16c7..d8dc59b2c95c 100644
+index 171661b89727..2493d7432613 100644
 --- a/lib/efi_loader/efi_device_path.c
 +++ b/lib/efi_loader/efi_device_path.c
-@@ -1138,6 +1138,8 @@ efi_status_t efi_dp_from_name(const char *dev, const char *devnr,
+@@ -1158,6 +1158,8 @@ efi_status_t efi_dp_from_name(const char *dev, const char *devnr,
  {
  	struct blk_desc *desc = NULL;
  	struct disk_partition fs_partition;
@@ -166,7 +166,7 @@
  	int part = 0;
  	char *filename;
  	char *s;
-@@ -1153,6 +1155,13 @@ efi_status_t efi_dp_from_name(const char *dev, const char *devnr,
+@@ -1173,6 +1175,13 @@ efi_status_t efi_dp_from_name(const char *dev, const char *devnr,
  	} else if (!strcmp(dev, "Uart")) {
  		if (device)
  			*device = efi_dp_from_uart();
@@ -181,5 +181,5 @@
  		part = blk_get_device_part_str(dev, devnr, &desc, &fs_partition,
  					       1);
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-arm-add-support-to-corstone1000-platform.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-arm-add-support-to-corstone1000-platform.patch
index e0caaa4..1863629 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-arm-add-support-to-corstone1000-platform.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-arm-add-support-to-corstone1000-platform.patch
@@ -1,7 +1,7 @@
-From 5cc889db3279ef4944ab64e36db3dbab1bf9ffa5 Mon Sep 17 00:00:00 2001
+From c9a9a467bb335047812004dd022dcadf9514101f Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Tue, 15 Feb 2022 09:44:10 +0000
-Subject: [PATCH 02/27] arm: add support to corstone1000 platform
+Subject: [PATCH 02/24] arm: add support to corstone1000 platform
 
 Corstone1000 is a platform from arm, which includes pre
 verified Corstone SSE710 sub-system that combines Cortex-A and
@@ -27,10 +27,10 @@
  board/armltd/corstone1000/Kconfig        |  12 ++
  board/armltd/corstone1000/MAINTAINERS    |   7 +
  board/armltd/corstone1000/Makefile       |   7 +
- board/armltd/corstone1000/corstone1000.c | 121 ++++++++++++++++
+ board/armltd/corstone1000/corstone1000.c | 125 +++++++++++++++++
  configs/corstone1000_defconfig           |  80 +++++++++++
  include/configs/corstone1000.h           |  86 ++++++++++++
- 11 files changed, 548 insertions(+)
+ 11 files changed, 552 insertions(+)
  create mode 100644 arch/arm/dts/corstone1000-fvp.dts
  create mode 100644 arch/arm/dts/corstone1000-mps3.dts
  create mode 100644 arch/arm/dts/corstone1000.dtsi
@@ -42,12 +42,12 @@
  create mode 100644 include/configs/corstone1000.h
 
 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 4567c183fb84..d64051b533a7 100644
+index 9898c7d68e1b..2fc2b7d20f12 100644
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -1266,6 +1266,12 @@ config TARGET_VEXPRESS64_JUNO
- 	select USB
- 	imply OF_HAS_PRIOR_STAGE
+@@ -1347,6 +1347,12 @@ config ARCH_VEXPRESS64
+ 	select ENV_IS_IN_FLASH if MTD
+ 	imply DISTRO_DEFAULTS
  
 +config TARGET_CORSTONE1000
 +	bool "Support Corstone1000 Platform"
@@ -58,7 +58,7 @@
  config TARGET_TOTAL_COMPUTE
  	bool "Support Total Compute Platform"
  	select ARM64
-@@ -2198,6 +2204,8 @@ source "arch/arm/mach-nexell/Kconfig"
+@@ -2295,6 +2301,8 @@ source "arch/arm/mach-npcm/Kconfig"
  
  source "board/armltd/total_compute/Kconfig"
  
@@ -68,10 +68,10 @@
  source "board/bosch/guardian/Kconfig"
  source "board/Marvell/octeontx/Kconfig"
 diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
-index 644ba961a223..7de25d09c9fe 100644
+index a7e0d9f6c0e8..8c8f15b6a813 100644
 --- a/arch/arm/dts/Makefile
 +++ b/arch/arm/dts/Makefile
-@@ -1215,6 +1215,9 @@ dtb-$(CONFIG_TARGET_EA_LPC3250DEVKITV2) += lpc3250-ea3250.dtb
+@@ -1265,6 +1265,9 @@ dtb-$(CONFIG_TARGET_EA_LPC3250DEVKITV2) += lpc3250-ea3250.dtb
  
  dtb-$(CONFIG_ARCH_QEMU) += qemu-arm.dtb qemu-arm64.dtb
  
@@ -369,10 +369,10 @@
 +obj-y	:= corstone1000.o
 diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
 new file mode 100644
-index 000000000000..eff1739f0b02
+index 000000000000..2fa485ff3799
 --- /dev/null
 +++ b/board/armltd/corstone1000/corstone1000.c
-@@ -0,0 +1,121 @@
+@@ -0,0 +1,125 @@
 +// SPDX-License-Identifier: GPL-2.0+
 +/*
 + * (C) Copyright 2022 ARM Limited
@@ -452,6 +452,10 @@
 +
 +struct mm_region *mem_map = corstone1000_mem_map;
 +
++void set_dfu_alt_info(char *interface, char *devstr)
++{
++}
++
 +int board_init(void)
 +{
 +	return 0;
@@ -673,5 +677,5 @@
 +				"bootefi $kernel_addr_r $fdtcontroladdr;"
 +#endif
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-usb-common-move-urb-code-to-common.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-usb-common-move-urb-code-to-common.patch
index 9974915..1cebd07 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-usb-common-move-urb-code-to-common.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-usb-common-move-urb-code-to-common.patch
@@ -1,7 +1,7 @@
-From b8f4f76e135ff2061d0032292f5209ac911dba16 Mon Sep 17 00:00:00 2001
+From 61c5fe3758a0febdee33429f5be16f69279045cc Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Mon, 28 Jun 2021 23:20:55 +0100
-Subject: [PATCH 03/27] usb: common: move urb code to common
+Subject: [PATCH 03/24] usb: common: move urb code to common
 
 Move urb code from musb only use to a more common scope, so other
 drivers in the future can use the handling of urb in usb.
@@ -493,5 +493,5 @@
  /*
   * Hub Status & Hub Change bit masks
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-usb-add-isp1760-family-driver.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-usb-add-isp1760-family-driver.patch
index 5940f06..1dd6f25 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-usb-add-isp1760-family-driver.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-usb-add-isp1760-family-driver.patch
@@ -1,7 +1,7 @@
-From 62a666a83766f5517e90464638455286bb33f433 Mon Sep 17 00:00:00 2001
+From 8abb9c6a342d750a3a3a66e674c3be6597fc9f66 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Mon, 28 Jun 2021 23:31:25 +0100
-Subject: [PATCH 04/27] usb: add isp1760 family driver
+Subject: [PATCH 04/24] usb: add isp1760 family driver
 
 ISP1760/61/63 are a family of usb controllers, blah, blah, more info
 here.
@@ -34,10 +34,10 @@
  create mode 100644 drivers/usb/isp1760/isp1760-uboot.h
 
 diff --git a/Makefile b/Makefile
-index ad83d60dc39d..2c857c1fe2cc 100644
+index 98867fbe06b4..67851020f5c1 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -834,6 +834,7 @@ libs-y += drivers/usb/host/
+@@ -841,6 +841,7 @@ libs-y += drivers/usb/host/
  libs-y += drivers/usb/mtu3/
  libs-y += drivers/usb/musb/
  libs-y += drivers/usb/musb-new/
@@ -3801,5 +3801,5 @@
 +
 +#endif
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-corstone1000-enable-isp1763-usb-controller.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-corstone1000-enable-isp1763-usb-controller.patch
index 2ce03b6..c465455 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-corstone1000-enable-isp1763-usb-controller.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-corstone1000-enable-isp1763-usb-controller.patch
@@ -1,7 +1,7 @@
-From b7fb62e512e00a5fdbb4321bb0b4109261518481 Mon Sep 17 00:00:00 2001
+From 5031fea320bb4ccc1ce7470193d8f4402ae819c9 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Thu, 3 Mar 2022 16:52:02 +0000
-Subject: [PATCH 05/27] corstone1000: enable isp1763 usb controller
+Subject: [PATCH 05/24] corstone1000: enable isp1763 usb controller
 
 MPS3 board have a ISP1763 usb controller, add the
 correspondent mmio area and enable it to be used for mass
@@ -44,5 +44,5 @@
  				"boot_bank_flag=0x08002000\0"				\
  				"kernel_addr_bank_0=0x083EE000\0"			\
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-arm_ffa-introducing-Arm-FF-A-low-level-driver.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-arm_ffa-introducing-Arm-FF-A-low-level-driver.patch
index 8cc848f..617aaf7 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-arm_ffa-introducing-Arm-FF-A-low-level-driver.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-arm_ffa-introducing-Arm-FF-A-low-level-driver.patch
@@ -1,7 +1,7 @@
-From ede21dc1ca75132698cc81e88357c5789ccf67c7 Mon Sep 17 00:00:00 2001
+From 968c86e8a6ed3e9e6621f0ae44977b5b13d90bfd Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Tue, 16 Nov 2021 12:34:52 +0000
-Subject: [PATCH 06/27] arm_ffa: introducing Arm FF-A low-level driver
+Subject: [PATCH 06/24] arm_ffa: introducing Arm FF-A low-level driver
 
 This driver implements Arm Firmware Framework for Armv8-A on u-boot
 
@@ -58,10 +58,10 @@
  create mode 100644 lib/arm-ffa/arm_ffa_helper.c
 
 diff --git a/MAINTAINERS b/MAINTAINERS
-index 96582fc67777..14307e6da644 100644
+index 7f27ff4c20fc..d29d7e040764 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -232,6 +232,14 @@ F:	board/CZ.NIC/
+@@ -244,6 +244,14 @@ F:	board/CZ.NIC/
  F:	configs/turris_*_defconfig
  F:	include/configs/turris_*.h
  
@@ -143,20 +143,20 @@
  	DEFINE(ARM_SMCCC_QUIRK_STATE_OFFS, offsetof(struct arm_smccc_quirk, state));
  #endif
 diff --git a/common/board_r.c b/common/board_r.c
-index c24d9b4e220b..af20f38b104c 100644
+index 6f4aca2077d6..412a0ea9fac3 100644
 --- a/common/board_r.c
 +++ b/common/board_r.c
-@@ -61,6 +61,9 @@
- #include <wdt.h>
+@@ -62,6 +62,9 @@
  #include <asm-generic/gpio.h>
  #include <efi_loader.h>
+ #include <relocate.h>
 +#ifdef CONFIG_ARM_FFA_TRANSPORT
 +#include <arm_ffa_helper.h>
 +#endif
  
  DECLARE_GLOBAL_DATA_PTR;
  
-@@ -770,6 +773,9 @@ static init_fnc_t init_sequence_r[] = {
+@@ -779,6 +782,9 @@ static init_fnc_t init_sequence_r[] = {
  	INIT_FUNC_WATCHDOG_RESET
  	initr_net,
  #endif
@@ -180,10 +180,10 @@
  
  source "drivers/axi/Kconfig"
 diff --git a/drivers/Makefile b/drivers/Makefile
-index 4e7cf284405a..6671d2a604ab 100644
+index 67c8af74424e..1be687b55d13 100644
 --- a/drivers/Makefile
 +++ b/drivers/Makefile
-@@ -107,6 +107,7 @@ obj-y += iommu/
+@@ -109,6 +109,7 @@ obj-y += iommu/
  obj-y += smem/
  obj-y += thermal/
  obj-$(CONFIG_TEE) += tee/
@@ -2249,10 +2249,10 @@
 +int ffa_uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin);
 +#endif
 diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
-index 0e26e1d13824..a1181b8f48e7 100644
+index 3ba69ad9a084..732441824557 100644
 --- a/include/dm/uclass-id.h
 +++ b/include/dm/uclass-id.h
-@@ -52,6 +52,7 @@ enum uclass_id {
+@@ -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 */
@@ -2320,10 +2320,10 @@
  
  #define arm_smccc_smc_quirk(...) __arm_smccc_smc(__VA_ARGS__)
 diff --git a/lib/Kconfig b/lib/Kconfig
-index 3c6fa99b1a6a..473821b882e2 100644
+index acc0ac081a44..65db65c3c4cd 100644
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
-@@ -810,6 +810,7 @@ config SMBIOS_PARSER
+@@ -902,6 +902,7 @@ config SMBIOS_PARSER
  source lib/efi/Kconfig
  source lib/efi_loader/Kconfig
  source lib/optee/Kconfig
@@ -2332,7 +2332,7 @@
  config TEST_FDTDEC
  	bool "enable fdtdec test"
 diff --git a/lib/Makefile b/lib/Makefile
-index 11b03d1cbec8..8e6fad613067 100644
+index d9b1811f7506..4aa3e2ed2a7e 100644
 --- a/lib/Makefile
 +++ b/lib/Makefile
 @@ -9,6 +9,7 @@ obj-$(CONFIG_EFI) += efi/
@@ -2564,7 +2564,7 @@
 +	return 0;
 +}
 diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
-index 5bcb8253edba..cffa2c69d621 100644
+index 4da64b5d2962..c68d9ed4f0bd 100644
 --- a/lib/efi_loader/efi_boottime.c
 +++ b/lib/efi_loader/efi_boottime.c
 @@ -23,6 +23,10 @@
@@ -2578,7 +2578,7 @@
  DECLARE_GLOBAL_DATA_PTR;
  
  /* Task priority level */
-@@ -2114,6 +2118,10 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
+@@ -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;
  
@@ -2589,7 +2589,7 @@
  	EFI_ENTRY("%p, %zx", image_handle, map_key);
  
  	/* Check that the caller has read the current memory map */
-@@ -2174,6 +2182,15 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
+@@ -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);
  	}
  
@@ -2606,5 +2606,5 @@
  	efi_runtime_detach();
  
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-arm_ffa-introducing-armffa-command.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-arm_ffa-introducing-armffa-command.patch
index 83f0547..582bc3e 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-arm_ffa-introducing-armffa-command.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-arm_ffa-introducing-armffa-command.patch
@@ -1,7 +1,7 @@
-From 541b2b51dc77832ab5845cab4762d29976838d36 Mon Sep 17 00:00:00 2001
+From 58358f79d9f8abbdc8bcfc7d08bd0c7c4c90ec84 Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Tue, 16 Nov 2021 12:36:27 +0000
-Subject: [PATCH 07/27] arm_ffa: introducing armffa command
+Subject: [PATCH 07/24] arm_ffa: introducing armffa command
 
 A new armffa command is provided as an example of how to use
 the FF-A helper functions to communicate with secure world.
@@ -20,10 +20,10 @@
  create mode 100644 cmd/armffa.c
 
 diff --git a/MAINTAINERS b/MAINTAINERS
-index 14307e6da644..f3fd559da54a 100644
+index d29d7e040764..32fc267fcf13 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -235,6 +235,7 @@ F:	include/configs/turris_*.h
+@@ -247,6 +247,7 @@ F:	include/configs/turris_*.h
  ARM FF-A
  M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
  S:	Maintained
@@ -32,10 +32,10 @@
  F:	include/arm_ffa.h
  F:	include/arm_ffa_helper.h
 diff --git a/cmd/Kconfig b/cmd/Kconfig
-index ff50102a89c7..ff124bf4bad0 100644
+index ba2f321ae989..090e668125d5 100644
 --- a/cmd/Kconfig
 +++ b/cmd/Kconfig
-@@ -813,6 +813,16 @@ endmenu
+@@ -873,6 +873,16 @@ endmenu
  
  menu "Device access commands"
  
@@ -53,7 +53,7 @@
  	#depends on FLASH_CFI_DRIVER
  	bool "armflash"
 diff --git a/cmd/Makefile b/cmd/Makefile
-index 166c652d9825..770b846c44e0 100644
+index 5e43a1e022e8..e40f52f1e416 100644
 --- a/cmd/Makefile
 +++ b/cmd/Makefile
 @@ -12,6 +12,8 @@ obj-y += panic.o
@@ -338,5 +338,5 @@
 +	   "devlist\n"
 +	   "	 - displays the arm_ffa device info\n");
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-arm_ffa-introducing-MM-communication-with-FF-A.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-arm_ffa-introducing-MM-communication-with-FF-A.patch
index 9b1383e..3b82b41 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-arm_ffa-introducing-MM-communication-with-FF-A.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-arm_ffa-introducing-MM-communication-with-FF-A.patch
@@ -1,7 +1,7 @@
-From 2f09d4a2e87febd7365b9e18d669208ff2c35edc Mon Sep 17 00:00:00 2001
+From ee7c0aee66db53b2372a3b4245a8754dceee804d Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Wed, 13 Oct 2021 17:51:44 +0100
-Subject: [PATCH 08/27] arm_ffa: introducing MM communication with FF-A
+Subject: [PATCH 08/24] arm_ffa: introducing MM communication with FF-A
 
 This commit allows to perform MM communication using FF-A transport.
 
@@ -30,10 +30,10 @@
  2 files changed, 273 insertions(+), 6 deletions(-)
 
 diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
-index e5e35fe51f65..6827b821545e 100644
+index e3f2402d0e8e..37131237af3f 100644
 --- a/lib/efi_loader/Kconfig
 +++ b/lib/efi_loader/Kconfig
-@@ -56,13 +56,23 @@ config EFI_VARIABLE_FILE_STORE
+@@ -60,13 +60,23 @@ config EFI_VARIABLE_FILE_STORE
  	  stored as file /ubootefi.var on the EFI system partition.
  
  config EFI_MM_COMM_TEE
@@ -42,7 +42,7 @@
 +	bool "UEFI variables storage service via the trusted world"
 +	depends on OPTEE || ARM_FFA_TRANSPORT
  	help
-+	  The MM SP (also called partition) can be StandAlonneMM or smm-gateway.
++         the MM SP (also called partition) can be StandAlonneMM or smm-gateway.
 +	  When using the u-boot OP-TEE driver, StandAlonneMM is supported.
 +	  When using the u-boot FF-A  driver, StandAlonneMM and smm-gateway are supported.
 +
@@ -56,9 +56,9 @@
 +	  MM buffer. The data is copied by u-boot to thea shared buffer before issuing
 +	  the door bell event.
 +
- endchoice
- 
- config EFI_VARIABLES_PRESEED
+ config EFI_VARIABLE_NO_STORE
+ 	bool "Don't persist non-volatile UEFI variables"
+ 	help
 diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c
 index dfef18435dfa..9cb8cfb9c779 100644
 --- a/lib/efi_loader/efi_variable_tee.c
@@ -379,5 +379,5 @@
  
  	/*
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-arm_ffa-introducing-test-module-for-UCLASS_FFA.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-arm_ffa-introducing-test-module-for-UCLASS_FFA.patch
index 4fb317b..ae4bb02 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-arm_ffa-introducing-test-module-for-UCLASS_FFA.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-arm_ffa-introducing-test-module-for-UCLASS_FFA.patch
@@ -1,7 +1,7 @@
-From c9a2c457648b732292482fae59a7fd61cefffd33 Mon Sep 17 00:00:00 2001
+From 6f998a5e94e2562b5876b88864876c8b03b88f5a Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Tue, 16 Nov 2021 12:38:48 +0000
-Subject: [PATCH 09/27] arm_ffa: introducing test module for UCLASS_FFA
+Subject: [PATCH 09/24] arm_ffa: introducing test module for UCLASS_FFA
 
 This is the test module for the UCLASS_FFA class.
 
@@ -17,10 +17,10 @@
  create mode 100644 test/dm/ffa.h
 
 diff --git a/MAINTAINERS b/MAINTAINERS
-index f3fd559da54a..6510f844fe09 100644
+index 32fc267fcf13..8209dc9319f1 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -240,6 +240,7 @@ F:	drivers/arm-ffa/
+@@ -252,6 +252,7 @@ F:	drivers/arm-ffa/
  F:	include/arm_ffa.h
  F:	include/arm_ffa_helper.h
  F:	lib/arm-ffa/
@@ -29,7 +29,7 @@
  ARM FREESCALE IMX
  M:	Stefano Babic <sbabic@denx.de>
 diff --git a/test/dm/Makefile b/test/dm/Makefile
-index d46552fbf320..ddac250cdff0 100644
+index f0a7c97e3d17..09a3403d2f53 100644
 --- a/test/dm/Makefile
 +++ b/test/dm/Makefile
 @@ -79,6 +79,7 @@ obj-$(CONFIG_POWER_DOMAIN) += power-domain.o
@@ -128,5 +128,5 @@
 +
 +#endif /*__TEST_DM_FFA_H */
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-arm_ffa-corstone1000-enable-FF-A-and-MM-support.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-arm_ffa-corstone1000-enable-FF-A-and-MM-support.patch
index bc96fc4..8cab40c 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-arm_ffa-corstone1000-enable-FF-A-and-MM-support.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-arm_ffa-corstone1000-enable-FF-A-and-MM-support.patch
@@ -1,7 +1,7 @@
-From ce6598d255113458fd5c9d19bb7469b721e37f6f Mon Sep 17 00:00:00 2001
+From c0b01dff84d74f1b5aaff0d9b594e0aaec16c744 Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Tue, 2 Nov 2021 16:44:39 +0000
-Subject: [PATCH 10/27] arm_ffa: corstone1000: enable FF-A and MM support
+Subject: [PATCH 10/24] arm_ffa: corstone1000: enable FF-A and MM support
 
 This commit allows corstone1000 platform to perform
 MM communication between u-boot and the secure world
@@ -53,5 +53,5 @@
  #define CONFIG_SKIP_LOWLEVEL_INIT
  
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-introduce-EFI-capsule-update.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-introduce-EFI-capsule-update.patch
index cb24ec3..0a829c4 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-introduce-EFI-capsule-update.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-introduce-EFI-capsule-update.patch
@@ -1,7 +1,7 @@
-From e70d0128090158872847b82b82cdbcf0e2f13885 Mon Sep 17 00:00:00 2001
+From 652259af2f795a5d69c628ae7b1e79d33c234abd Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Thu, 11 Nov 2021 16:27:59 +0000
-Subject: [PATCH 11/27] efi: corstone1000: introduce EFI capsule update
+Subject: [PATCH 11/24] efi: corstone1000: introduce EFI capsule update
 
 This commit provides capsule update feature for Corstone1000.
 
@@ -58,10 +58,10 @@
  #define MM_SP_UUID_DATA	\
  	0xed, 0x32, 0xd5, 0x33,	\
 diff --git a/include/efi_loader.h b/include/efi_loader.h
-index 126db279dd3e..01b432e6184b 100644
+index 5b41985244e2..796419b69b40 100644
 --- a/include/efi_loader.h
 +++ b/include/efi_loader.h
-@@ -965,11 +965,11 @@ extern const struct efi_firmware_management_protocol efi_fmp_fit;
+@@ -984,11 +984,11 @@ extern const struct efi_firmware_management_protocol efi_fmp_fit;
  extern const struct efi_firmware_management_protocol efi_fmp_raw;
  
  /* Capsule update */
@@ -76,10 +76,10 @@
  		efi_uintn_t capsule_count,
  		u64 *maximum_capsule_size,
 diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
-index cffa2c69d621..5c77a40c3ebe 100644
+index c68d9ed4f0bd..f2b5c7834c01 100644
 --- a/lib/efi_loader/efi_boottime.c
 +++ b/lib/efi_loader/efi_boottime.c
-@@ -2096,6 +2096,44 @@ static void efi_exit_caches(void)
+@@ -2095,6 +2095,44 @@ static void efi_exit_caches(void)
  #endif
  }
  
@@ -124,7 +124,7 @@
  /**
   * efi_exit_boot_services() - stop all boot services
   * @image_handle: handle of the loaded image
-@@ -2209,6 +2247,15 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
+@@ -2208,6 +2246,15 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
  	/* Recalculate CRC32 */
  	efi_update_table_header_crc32(&systab.hdr);
  
@@ -141,10 +141,10 @@
  	efi_set_watchdog(0);
  	WATCHDOG_RESET();
 diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
-index f00440163d41..c100c1b95298 100644
+index a6b98f066a0b..a0689ba912fc 100644
 --- a/lib/efi_loader/efi_capsule.c
 +++ b/lib/efi_loader/efi_capsule.c
-@@ -24,6 +24,14 @@
+@@ -25,6 +25,14 @@
  #include <crypto/pkcs7_parser.h>
  #include <linux/err.h>
  
@@ -159,7 +159,7 @@
  DECLARE_GLOBAL_DATA_PTR;
  
  const efi_guid_t efi_guid_capsule_report = EFI_CAPSULE_REPORT_GUID;
-@@ -509,6 +517,89 @@ static efi_status_t efi_capsule_update_firmware(
+@@ -512,6 +520,89 @@ static efi_status_t efi_capsule_update_firmware(
  }
  #endif /* CONFIG_EFI_CAPSULE_FIRMWARE_MANAGEMENT */
  
@@ -249,7 +249,7 @@
  /**
   * efi_update_capsule() - process information from operating system
   * @capsule_header_array:	Array of virtual address pointers
-@@ -522,7 +613,7 @@ static efi_status_t efi_capsule_update_firmware(
+@@ -525,7 +616,7 @@ static efi_status_t efi_capsule_update_firmware(
   *
   * Return:			status code
   */
@@ -258,7 +258,7 @@
  		struct efi_capsule_header **capsule_header_array,
  		efi_uintn_t capsule_count,
  		u64 scatter_gather_list)
-@@ -539,6 +630,13 @@ efi_status_t EFIAPI efi_update_capsule(
+@@ -542,6 +633,13 @@ efi_status_t EFIAPI efi_update_capsule(
  		goto out;
  	}
  
@@ -272,7 +272,7 @@
  	ret = EFI_SUCCESS;
  	for (i = 0, capsule = *capsule_header_array; i < capsule_count;
  	     i++, capsule = *(++capsule_header_array)) {
-@@ -551,6 +649,39 @@ efi_status_t EFIAPI efi_update_capsule(
+@@ -554,6 +652,39 @@ efi_status_t EFIAPI efi_update_capsule(
  
  		log_debug("Capsule[%d] (guid:%pUs)\n",
  			  i, &capsule->capsule_guid);
@@ -312,7 +312,7 @@
  		if (!guidcmp(&capsule->capsule_guid,
  			     &efi_guid_firmware_management_capsule_id)) {
  			ret  = efi_capsule_update_firmware(capsule);
-@@ -589,7 +720,7 @@ out:
+@@ -592,7 +723,7 @@ out:
   *
   * Return:			status code
   */
@@ -322,7 +322,7 @@
  		efi_uintn_t capsule_count,
  		u64 *maximum_capsule_size,
 diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
-index eee54e48784f..989380d4f8cd 100644
+index 492ecf4cb15c..bfd4687e10b5 100644
 --- a/lib/efi_loader/efi_setup.c
 +++ b/lib/efi_loader/efi_setup.c
 @@ -16,6 +16,13 @@
@@ -355,5 +355,5 @@
  		ret = efi_set_variable_int(u"CapsuleMax",
  					   &efi_guid_capsule_report,
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0012-corstone1000-Update-FFA-shared-buffer-address.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0012-corstone1000-Update-FFA-shared-buffer-address.patch
index 60dc850..d1e13f6 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0012-corstone1000-Update-FFA-shared-buffer-address.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0012-corstone1000-Update-FFA-shared-buffer-address.patch
@@ -1,7 +1,7 @@
-From b2d752b4bbd5b2dc4cb22d2d652a261287505926 Mon Sep 17 00:00:00 2001
+From 1ff229c8e02bdd3c859d581787636cfdf674eec1 Mon Sep 17 00:00:00 2001
 From: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
 Date: Wed, 17 Nov 2021 15:28:06 +0000
-Subject: [PATCH 12/27] corstone1000: Update FFA shared buffer address
+Subject: [PATCH 12/24] corstone1000: Update FFA shared buffer address
 
 FFA shared buffer address changed to 0x02000000.
 
@@ -33,5 +33,5 @@
  #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_SDRAM_BASE + 0x03f00000)
  #define CONFIG_SKIP_LOWLEVEL_INIT
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-corstone1000-Make-sure-shared-buffer-contents-are-no.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-corstone1000-Make-sure-shared-buffer-contents-are-no.patch
index 2495538..2caeb58 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-corstone1000-Make-sure-shared-buffer-contents-are-no.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-corstone1000-Make-sure-shared-buffer-contents-are-no.patch
@@ -1,7 +1,7 @@
-From 67a755f74716068cfd44a8897c31151fe9ee4328 Mon Sep 17 00:00:00 2001
+From 370422921b2a3f4f7b73ce5b08820c24e82bba19 Mon Sep 17 00:00:00 2001
 From: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
 Date: Thu, 18 Nov 2021 16:42:59 +0000
-Subject: [PATCH 13/27] corstone1000: Make sure shared buffer contents are not
+Subject: [PATCH 13/24] corstone1000: Make sure shared buffer contents are not
  cached
 
 After updating the shared buffer, it is required to flush the cache
@@ -48,5 +48,5 @@
  
  	ffa_ret = ffa_notify_mm_sp();
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-arm-corstone1000-fix-unrecognized-filesystem-type.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-arm-corstone1000-fix-unrecognized-filesystem-type.patch
index fa201eb..3151741 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-arm-corstone1000-fix-unrecognized-filesystem-type.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-arm-corstone1000-fix-unrecognized-filesystem-type.patch
@@ -1,7 +1,7 @@
-From e2463e3ef52260b38131085c0901de8708d52693 Mon Sep 17 00:00:00 2001
+From 340ba3fbb0ea388578e30aede92695886f221eaf Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Fri, 4 Mar 2022 15:56:09 +0000
-Subject: [PATCH 14/27] arm: corstone1000: fix unrecognized filesystem type
+Subject: [PATCH 14/24] arm: corstone1000: fix unrecognized filesystem type
 
 Some usb sticks are not recognized by usb, just add a
 delay before checking status.
@@ -12,10 +12,10 @@
  1 file changed, 3 insertions(+)
 
 diff --git a/common/usb_storage.c b/common/usb_storage.c
-index c9e2d7343ce2..ae72338323ba 100644
+index eaa31374ef73..79cf4297d4f4 100644
 --- a/common/usb_storage.c
 +++ b/common/usb_storage.c
-@@ -769,6 +769,9 @@ static int usb_stor_BBB_transport(struct scsi_cmd *srb, struct us_data *us)
+@@ -784,6 +784,9 @@ static int usb_stor_BBB_transport(struct scsi_cmd *srb, struct us_data *us)
  st:
  	retry = 0;
  again:
@@ -26,5 +26,5 @@
  	result = usb_bulk_msg(us->pusb_dev, pipein, csw, UMASS_BBB_CSW_SIZE,
  				&actlen, USB_CNTL_TIMEOUT*5);
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_capsule-corstone1000-pass-interface-id-and-buffe.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_capsule-corstone1000-pass-interface-id-and-buffe.patch
index 0d1912c..4e3f237 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_capsule-corstone1000-pass-interface-id-and-buffe.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_capsule-corstone1000-pass-interface-id-and-buffe.patch
@@ -1,7 +1,7 @@
-From 81bf9ed7e8e858cef13cfc3d1435c44445e523df Mon Sep 17 00:00:00 2001
+From 4c249de0915750b328e456c34f18546f92850afd Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Fri, 10 Dec 2021 20:03:35 +0000
-Subject: [PATCH 15/27] efi_capsule: corstone1000: pass interface id and buffer
+Subject: [PATCH 15/24] efi_capsule: corstone1000: pass interface id and buffer
  event id using register w4
 
 Initially the interface/event IDs are passed to the SP using register
@@ -39,10 +39,10 @@
  #define CORSTONE1000_CAPSULE_BUFFER_SIZE	(8192) /* 32 MB */
  
 diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
-index c100c1b95298..17d769803b2a 100644
+index a0689ba912fc..e08e97cf3fb7 100644
 --- a/lib/efi_loader/efi_capsule.c
 +++ b/lib/efi_loader/efi_capsule.c
-@@ -27,6 +27,8 @@
+@@ -28,6 +28,8 @@
  #ifdef CONFIG_TARGET_CORSTONE1000
  #include <arm_ffa_helper.h>
  #include <cpu_func.h>
@@ -51,7 +51,7 @@
  
  void *__efi_runtime_data corstone1000_capsule_buf; /* capsule shared buffer virtual address */
  efi_guid_t corstone1000_capsule_guid = EFI_CORSTONE1000_CAPSULE_ID_GUID;
-@@ -587,11 +589,12 @@ static int __efi_runtime efi_corstone1000_buffer_ready_event(u32 capsule_image_s
+@@ -590,11 +592,12 @@ static int __efi_runtime efi_corstone1000_buffer_ready_event(u32 capsule_image_s
  	func_data.data0 = &part_id;
  
  	/*
@@ -69,5 +69,5 @@
  	func_data.data1_size = sizeof(msg);
  	func_data.data1 = &msg;
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_boottime-corstone1000-pass-interface-id-and-kern.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_boottime-corstone1000-pass-interface-id-and-kern.patch
index f460fad..e134f23 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_boottime-corstone1000-pass-interface-id-and-kern.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_boottime-corstone1000-pass-interface-id-and-kern.patch
@@ -1,7 +1,7 @@
-From 10d0ffc26ddcecd83921c2b3b37cb4eff54a154f Mon Sep 17 00:00:00 2001
+From e5e1cf36cb7b77a5bb526f1744c0c77164374ca3 Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Fri, 10 Dec 2021 20:10:41 +0000
-Subject: [PATCH 16/27] efi_boottime: corstone1000: pass interface id and
+Subject: [PATCH 16/24] efi_boottime: corstone1000: pass interface id and
  kernel event id using register w4
 
 Initially the interface/event IDs are passed to the SP using register
@@ -21,7 +21,7 @@
  1 file changed, 10 insertions(+), 3 deletions(-)
 
 diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
-index 5c77a40c3ebe..b58a8c98fd05 100644
+index f2b5c7834c01..140d0f4f71da 100644
 --- a/lib/efi_loader/efi_boottime.c
 +++ b/lib/efi_loader/efi_boottime.c
 @@ -27,6 +27,11 @@
@@ -36,7 +36,7 @@
  DECLARE_GLOBAL_DATA_PTR;
  
  /* Task priority level */
-@@ -2121,10 +2126,12 @@ static int efi_corstone1000_kernel_started_event(void)
+@@ -2120,10 +2125,12 @@ static int efi_corstone1000_kernel_started_event(void)
  	func_data.data0 = &part_id;
  
  	/*
@@ -53,5 +53,5 @@
  	func_data.data1_size = sizeof(msg);
  	func_data.data1 = &msg;
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-efi_loader-corstone1000-remove-guid-check-from-corst.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-efi_loader-corstone1000-remove-guid-check-from-corst.patch
index fa6ab32..b5a1715 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-efi_loader-corstone1000-remove-guid-check-from-corst.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-efi_loader-corstone1000-remove-guid-check-from-corst.patch
@@ -1,7 +1,7 @@
-From c463798489e41725f8ba33debeedc7c4011cda38 Mon Sep 17 00:00:00 2001
+From 596cf4d04580b191d2f4f6082000534bdab13791 Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Sat, 11 Dec 2021 13:23:55 +0000
-Subject: [PATCH 17/27] efi_loader: corstone1000: remove guid check from
+Subject: [PATCH 17/24] efi_loader: corstone1000: remove guid check from
  corstone1000 config option
 
 Use generic fmp guid and no separte check is required for
@@ -14,10 +14,10 @@
  1 file changed, 1 insertion(+), 15 deletions(-)
 
 diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
-index 17d769803b2a..939040d2755e 100644
+index e08e97cf3fb7..891143c33909 100644
 --- a/lib/efi_loader/efi_capsule.c
 +++ b/lib/efi_loader/efi_capsule.c
-@@ -654,12 +654,6 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
+@@ -657,12 +657,6 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
  			  i, &capsule->capsule_guid);
  
  #if CONFIG_IS_ENABLED(TARGET_CORSTONE1000)
@@ -30,7 +30,7 @@
  		if (efi_size_in_pages(capsule->capsule_image_size) >
  		    CORSTONE1000_CAPSULE_BUFFER_SIZE) {
  			log_err("Corstone1000: Capsule data size exceeds the shared buffer size\n");
-@@ -685,15 +679,7 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
+@@ -688,15 +682,7 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
  		goto out;
  #endif
  
@@ -48,5 +48,5 @@
  			goto out;
  	}
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-arm_ffa-removing-the-cast-when-using-binary-OR-on-FI.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-arm_ffa-removing-the-cast-when-using-binary-OR-on-FI.patch
index 4ee10a0..f858a26 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-arm_ffa-removing-the-cast-when-using-binary-OR-on-FI.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-arm_ffa-removing-the-cast-when-using-binary-OR-on-FI.patch
@@ -1,7 +1,7 @@
-From 1cfca60850727448bdbfe720d98d9e0d4523f6aa Mon Sep 17 00:00:00 2001
+From 460406b46b51b6c585788001147a8961c95cc73c Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Sat, 11 Dec 2021 21:05:10 +0000
-Subject: [PATCH 18/27] arm_ffa: removing the cast when using binary OR on
+Subject: [PATCH 18/24] arm_ffa: removing the cast when using binary OR on
  FIELD_PREP macros
 
 When the GENMASK used is above 16-bits wide a u16 cast will cause
@@ -36,5 +36,5 @@
  /* The FF-A SMC function prototype definition */
  
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Return-proper-error-code-when-rx-buffer-is-larger.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Return-proper-error-code-when-rx-buffer-is-larger.patch
deleted file mode 100644
index 21a89a4..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Return-proper-error-code-when-rx-buffer-is-larger.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 7db27eeaba0fd5ddb1e49977bb7e342a1980aa3d Mon Sep 17 00:00:00 2001
-From: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
-Date: Sun, 12 Dec 2021 17:51:17 +0000
-Subject: [PATCH 19/27] Return proper error code when rx buffer is larger
-
-ffa_mm_communicate should return EFI_BUFFER_TOO_SMALL when
-the buffer received from the secure world is larger than the
-comm buffer as this value is forwarded by mm_communicate.
-
-Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- lib/efi_loader/efi_variable_tee.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c
-index b6be2b54a030..38655a9dbb7c 100644
---- a/lib/efi_loader/efi_variable_tee.c
-+++ b/lib/efi_loader/efi_variable_tee.c
-@@ -358,7 +358,7 @@ static efi_status_t __efi_runtime ffa_mm_communicate(void *comm_buf, ulong comm_
- 
- 		if (rx_data_size > comm_buf_size) {
- 			unmap_sysmem(virt_shared_buf);
--			return EFI_OUT_OF_RESOURCES;
-+			return EFI_BUFFER_TOO_SMALL;
- 		}
- 
- 		efi_memcpy_runtime(comm_buf, virt_shared_buf, rx_data_size);
--- 
-2.30.2
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-Use-correct-buffer-size.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Use-correct-buffer-size.patch
similarity index 91%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-Use-correct-buffer-size.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Use-correct-buffer-size.patch
index 54328a7..af857f4 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-Use-correct-buffer-size.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Use-correct-buffer-size.patch
@@ -1,7 +1,7 @@
-From 9ad9ead58e8e9e4f9e7a283c916421b443b424ce Mon Sep 17 00:00:00 2001
+From 936c857add300f41bc58c300793a0e10b48ff69f Mon Sep 17 00:00:00 2001
 From: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
 Date: Mon, 13 Dec 2021 15:25:23 +0000
-Subject: [PATCH 20/27] Use correct buffer size
+Subject: [PATCH 19/24] Use correct buffer size
 
 The comm buffer created has additional 4 bytes length which
 needs to be trimmed. This change will reduce the size of the
@@ -36,5 +36,5 @@
  	efi_uintn_t data_size;
  	efi_uintn_t name_size;
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
similarity index 79%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
index aaea20e..1204f2a 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
@@ -1,7 +1,7 @@
-From 5fec641015f8f1ca80f55f05b5e1f67653321303 Mon Sep 17 00:00:00 2001
+From 5c57ef351882afebde479de430acf2c4f8fdefc8 Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Fri, 17 Dec 2021 19:49:02 +0000
-Subject: [PATCH 22/27] efi_loader: populate ESRT table if EFI_ESRT config
+Subject: [PATCH 20/24] efi_loader: populate ESRT table if EFI_ESRT config
  option is set
 
 This change is to call efi_esrt_populate function if CONFIG_EFI_ESRT
@@ -14,10 +14,10 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
-index 939040d2755e..790d2ba8fe19 100644
+index 891143c33909..7db78f1f7648 100644
 --- a/lib/efi_loader/efi_capsule.c
 +++ b/lib/efi_loader/efi_capsule.c
-@@ -676,6 +676,13 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
+@@ -679,6 +679,13 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
  			ret = EFI_SUCCESS;
  		}
  
@@ -32,5 +32,5 @@
  #endif
  
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-Update-comm_buf-when-EFI_BUFFER_TOO_SMALL.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-Update-comm_buf-when-EFI_BUFFER_TOO_SMALL.patch
deleted file mode 100644
index c7ac38f..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-Update-comm_buf-when-EFI_BUFFER_TOO_SMALL.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b81214dea7056c3877aa9eb775557dc4702660ec Mon Sep 17 00:00:00 2001
-From: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
-Date: Sun, 12 Dec 2021 17:58:08 +0000
-Subject: [PATCH 21/27] Update comm_buf when EFI_BUFFER_TOO_SMALL
-
-When the received buffer is larger than the comm buffer,
-the contents of the shared buffer which can fit in the
-comm buffer should be read before returning.
-
-Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- lib/efi_loader/efi_variable_tee.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c
-index 38655a9dbb7c..67743d1f8fce 100644
---- a/lib/efi_loader/efi_variable_tee.c
-+++ b/lib/efi_loader/efi_variable_tee.c
-@@ -357,6 +357,7 @@ static efi_status_t __efi_runtime ffa_mm_communicate(void *comm_buf, ulong comm_
- 			sizeof(size_t);
- 
- 		if (rx_data_size > comm_buf_size) {
-+			efi_memcpy_runtime(comm_buf, virt_shared_buf, comm_buf_size);
- 			unmap_sysmem(virt_shared_buf);
- 			return EFI_BUFFER_TOO_SMALL;
- 		}
--- 
-2.30.2
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-efi_firmware-add-get_image_info-for-corstone1000.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-efi_firmware-add-get_image_info-for-corstone1000.patch
similarity index 68%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-efi_firmware-add-get_image_info-for-corstone1000.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-efi_firmware-add-get_image_info-for-corstone1000.patch
index c86b658..8f86b65 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-efi_firmware-add-get_image_info-for-corstone1000.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-efi_firmware-add-get_image_info-for-corstone1000.patch
@@ -1,7 +1,7 @@
-From 34fadec4f659248a6020676f5894895977ccf79d Mon Sep 17 00:00:00 2001
+From fcd1dc670d83bd7e7528370d0d6f168bfb44054d Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Fri, 17 Dec 2021 19:50:25 +0000
-Subject: [PATCH 23/27] efi_firmware: add get_image_info for corstone1000
+Subject: [PATCH 21/24] efi_firmware: add get_image_info for corstone1000
 
 This change is to populate get_image_info which eventually
 will be populated in ESRT table
@@ -12,26 +12,25 @@
 
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 ---
- lib/efi_loader/efi_firmware.c | 64 ++++++++++++++++++++++++++++++++++-
- 1 file changed, 63 insertions(+), 1 deletion(-)
+ lib/efi_loader/efi_firmware.c | 71 ++++++++++++++++++++++++++++++++++-
+ 1 file changed, 70 insertions(+), 1 deletion(-)
 
 diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
-index a5ff32f121f4..9eb89849b28d 100644
+index 30cafd15caac..af43d4502f92 100644
 --- a/lib/efi_loader/efi_firmware.c
 +++ b/lib/efi_loader/efi_firmware.c
-@@ -241,6 +241,7 @@ const efi_guid_t efi_firmware_image_type_uboot_fit =
-  *
-  * Return		status code
-  */
-+
- static
- efi_status_t EFIAPI efi_firmware_fit_get_image_info(
- 	struct efi_firmware_management_protocol *this,
-@@ -332,6 +333,56 @@ const struct efi_firmware_management_protocol efi_fmp_fit = {
- const efi_guid_t efi_firmware_image_type_uboot_raw =
- 	EFI_FIRMWARE_IMAGE_TYPE_UBOOT_RAW_GUID;
+@@ -17,11 +17,69 @@
+ 
+ #define FMP_PAYLOAD_HDR_SIGNATURE	SIGNATURE_32('M', 'S', 'S', '1')
  
 +#if CONFIG_IS_ENABLED(TARGET_CORSTONE1000)
++#define EFI_FIRMWARE_IMAGE_TYPE_UBOOT_RAW_GUID \
++	EFI_GUID(0xe2bb9c06, 0x70e9, 0x4b14, 0x97, 0xa3, \
++		 0x5a, 0x79, 0x13, 0x17, 0x6e, 0x3f)
++
++ const efi_guid_t efi_firmware_image_type_uboot_raw =
++				EFI_FIRMWARE_IMAGE_TYPE_UBOOT_RAW_GUID;
++
 +static efi_status_t efi_corstone1000_img_info_get (
 +	efi_uintn_t *image_info_size,
 +	struct efi_firmware_image_descriptor *image_info,
@@ -81,34 +80,38 @@
 +	return EFI_SUCCESS;
 +}
 +#endif
++
  /**
-  * efi_firmware_raw_get_image_info - return information about the current
- 				     firmware image
-@@ -376,12 +427,20 @@ efi_status_t EFIAPI efi_firmware_raw_get_image_info(
+  * struct fmp_payload_header - EDK2 header for the FMP payload
+  *
+  * This structure describes the header which is preprended to the
+- * FMP payload by the edk2 capsule generation scripts.
++ * FMP payload by the edk1 capsule generation scripts.
+  *
+  * @signature:			Header signature used to identify the header
+  * @header_size:		Size of the structure
+@@ -285,10 +343,18 @@ efi_status_t EFIAPI efi_firmware_get_image_info(
  	     !descriptor_size || !package_version || !package_version_name))
  		return EFI_EXIT(EFI_INVALID_PARAMETER);
  
--	ret = efi_get_dfu_info(image_info_size, image_info,
 +#if CONFIG_IS_ENABLED(TARGET_CORSTONE1000)
 +	ret = efi_corstone1000_img_info_get(image_info_size, image_info,
- 			       descriptor_version, descriptor_count,
- 			       descriptor_size,
- 			       package_version, package_version_name,
- 			       &efi_firmware_image_type_uboot_raw);
-+#else
- 
-+	ret = efi_get_dfu_info(image_info_size, image_info,
 +			       descriptor_version, descriptor_count,
 +			       descriptor_size,
 +			       package_version, package_version_name,
 +			       &efi_firmware_image_type_uboot_raw);
++#else
+ 	ret = efi_fill_image_desc_array(image_info_size, image_info,
+ 					descriptor_version, descriptor_count,
+ 					descriptor_size, package_version,
+ 					package_version_name);
 +#endif
+ 
  	return EFI_EXIT(ret);
  }
- 
-@@ -462,6 +521,9 @@ efi_status_t EFIAPI efi_firmware_raw_set_image(
- 
- 	}
+@@ -401,6 +467,9 @@ efi_status_t EFIAPI efi_firmware_raw_set_image(
+ 	if (status != EFI_SUCCESS)
+ 		return EFI_EXIT(status);
  
 +#if CONFIG_IS_ENABLED(TARGET_CORSTONE1000)
 +	return EFI_EXIT(EFI_SUCCESS);
@@ -117,5 +120,5 @@
  			     NULL, NULL))
  		return EFI_EXIT(EFI_DEVICE_ERROR);
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-efi_loader-send-bootcomplete-message-to-secure-encla.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-efi_loader-send-bootcomplete-message-to-secure-encla.patch
similarity index 92%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-efi_loader-send-bootcomplete-message-to-secure-encla.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-efi_loader-send-bootcomplete-message-to-secure-encla.patch
index d5a0ec0..1dc0455 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-efi_loader-send-bootcomplete-message-to-secure-encla.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-efi_loader-send-bootcomplete-message-to-secure-encla.patch
@@ -1,7 +1,7 @@
-From af2defbfaffa4264052e30f269b91794068e4773 Mon Sep 17 00:00:00 2001
+From 902d5c499b6627a505986d298986a4ac430592b8 Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Wed, 5 Jan 2022 17:56:09 +0000
-Subject: [PATCH 25/27] efi_loader: send bootcomplete message to secure enclave
+Subject: [PATCH 22/24] efi_loader: send bootcomplete message to secure enclave
 
 On corstone1000 platform, Secure Enclave will be expecting
 an event from uboot when it performs capsule update. Previously,
@@ -32,10 +32,10 @@
  #define PREP_SEPROXY_SVC_ID_MASK	GENMASK(31, 16)
  #define PREP_SEPROXY_SVC_ID(x)	 (FIELD_PREP(PREP_SEPROXY_SVC_ID_MASK, (x)))
 diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
-index b58a8c98fd05..d0703060491b 100644
+index 140d0f4f71da..6b9f5cf272b8 100644
 --- a/lib/efi_loader/efi_boottime.c
 +++ b/lib/efi_loader/efi_boottime.c
-@@ -2101,46 +2101,6 @@ static void efi_exit_caches(void)
+@@ -2100,46 +2100,6 @@ static void efi_exit_caches(void)
  #endif
  }
  
@@ -82,7 +82,7 @@
  /**
   * efi_exit_boot_services() - stop all boot services
   * @image_handle: handle of the loaded image
-@@ -2254,15 +2214,6 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
+@@ -2253,15 +2213,6 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
  	/* Recalculate CRC32 */
  	efi_update_table_header_crc32(&systab.hdr);
  
@@ -99,10 +99,10 @@
  	efi_set_watchdog(0);
  	WATCHDOG_RESET();
 diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
-index 9eb89849b28d..477ad072070e 100644
+index af43d4502f92..25f427b93669 100644
 --- a/lib/efi_loader/efi_firmware.c
 +++ b/lib/efi_loader/efi_firmware.c
-@@ -356,7 +356,7 @@ static efi_status_t efi_corstone1000_img_info_get (
+@@ -47,7 +47,7 @@ static efi_status_t efi_corstone1000_img_info_get (
  		*package_version_name = NULL; /* not supported */
  
  	if(image_info == NULL) {
@@ -112,7 +112,7 @@
  	}
  
 diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
-index 989380d4f8cd..515a0bdf74ef 100644
+index bfd4687e10b5..a20128e9b582 100644
 --- a/lib/efi_loader/efi_setup.c
 +++ b/lib/efi_loader/efi_setup.c
 @@ -17,6 +17,9 @@
@@ -187,5 +187,5 @@
  	if (ret != EFI_SUCCESS) {
  		printf("EFI: Corstone-1000: cannot allocate caspsule shared buffer\n");
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-efi_loader-fix-null-pointer-exception-with-get_image.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-efi_loader-fix-null-pointer-exception-with-get_image.patch
similarity index 88%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-efi_loader-fix-null-pointer-exception-with-get_image.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-efi_loader-fix-null-pointer-exception-with-get_image.patch
index 532e872..165fac5 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-efi_loader-fix-null-pointer-exception-with-get_image.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-efi_loader-fix-null-pointer-exception-with-get_image.patch
@@ -1,7 +1,7 @@
-From 2da8554ab732c59c7ca624ac4b16412fa9c2e39c Mon Sep 17 00:00:00 2001
+From 383078dde2fbf509dc3d24505f6b328316aee030 Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Fri, 14 Jan 2022 15:24:18 +0000
-Subject: [PATCH 26/27] efi_loader: fix null pointer exception with
+Subject: [PATCH 23/24] efi_loader: fix null pointer exception with
  get_image_info
 
 get_img_info API implemented for corstone1000 target does not
@@ -16,10 +16,10 @@
  1 file changed, 11 insertions(+), 8 deletions(-)
 
 diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
-index 477ad072070e..f99c57fde576 100644
+index 25f427b93669..28d9a19edb90 100644
 --- a/lib/efi_loader/efi_firmware.c
 +++ b/lib/efi_loader/efi_firmware.c
-@@ -347,26 +347,29 @@ static efi_status_t efi_corstone1000_img_info_get (
+@@ -38,26 +38,29 @@ static efi_status_t efi_corstone1000_img_info_get (
  	int i = 0;
  
  	*image_info_size = sizeof(*image_info);
@@ -58,5 +58,5 @@
  					     IMAGE_ATTRIBUTE_AUTHENTICATION_REQUIRED;
  	image_info[i].attributes_setting = IMAGE_ATTRIBUTE_IMAGE_UPDATABLE;
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-Comment-mm_communicate-failure-log.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-Comment-mm_communicate-failure-log.patch
deleted file mode 100644
index c6a1aed..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-Comment-mm_communicate-failure-log.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c0c6e4c1166c4868afc36649b9ed98081a6966e1 Mon Sep 17 00:00:00 2001
-From: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
-Date: Fri, 24 Dec 2021 14:22:52 +0000
-Subject: [PATCH 24/27] Comment mm_communicate failure log
-
-When a getVariable() call is made with data size set to 0,
-mm_communicate should return EFI_BUFFER_TOO_SMALL. This is
-an expected behavior. There should not be any failure logs
-in this case. So the error log is commented here.
-
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- lib/efi_loader/efi_variable_tee.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c
-index 67743d1f8fce..a34989efac83 100644
---- a/lib/efi_loader/efi_variable_tee.c
-+++ b/lib/efi_loader/efi_variable_tee.c
-@@ -411,7 +411,10 @@ static efi_status_t __efi_runtime mm_communicate(u8 *comm_buf, efi_uintn_t dsize
- 	ret = ffa_mm_communicate(comm_buf, dsize);
- 	#endif
- 	if (ret != EFI_SUCCESS) {
--		log_err("%s failed!\n", __func__);
-+		/* mm_communicate failure is logged even when getVariable() is called
-+		 * with data size set to 0. This is not expected so logging is commented.
-+		*/
-+		//log_err("%s failed!\n", __func__);
- 		return ret;
- 	}
- 
--- 
-2.30.2
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-arm-corstone1000-add-mmc-for-fvp.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-arm-corstone1000-add-mmc-for-fvp.patch
similarity index 96%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-arm-corstone1000-add-mmc-for-fvp.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-arm-corstone1000-add-mmc-for-fvp.patch
index bf95ed7..2b9ca78 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-arm-corstone1000-add-mmc-for-fvp.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-arm-corstone1000-add-mmc-for-fvp.patch
@@ -1,7 +1,7 @@
-From cbf16548dc6dcc8eea97aa18c6ae17fb848e5c6c Mon Sep 17 00:00:00 2001
+From cc3356c2a30b7aa85a25e9bc7b69a03537df3f27 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Tue, 5 Apr 2022 10:24:38 +0100
-Subject: [PATCH 27/27] arm:corstone1000: add mmc for fvp
+Subject: [PATCH 24/24] arm:corstone1000: add mmc for fvp
 
 Enable support mmc/sdcard for the corstone1000 FVP.
 
@@ -52,7 +52,7 @@
 +	};
  };
 diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
-index eff1739f0b02..936a6c9f8b89 100644
+index 2fa485ff3799..3d537d7a9052 100644
 --- a/board/armltd/corstone1000/corstone1000.c
 +++ b/board/armltd/corstone1000/corstone1000.c
 @@ -46,22 +46,38 @@ static struct mm_region corstone1000_mem_map[] = {
@@ -144,5 +144,5 @@
  #include <config_distro_bootcmd.h>
  
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-use-a-compressed-kernel.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-use-a-compressed-kernel.patch
new file mode 100644
index 0000000..4cc2498
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-use-a-compressed-kernel.patch
@@ -0,0 +1,32 @@
+From df70c467c5d100f1522b4521f48da4c51e43688c Mon Sep 17 00:00:00 2001
+From: Jon Mason <jon.mason@arm.com>
+Date: Thu, 25 Aug 2022 13:48:22 +0000
+Subject: [PATCH 25/25] corstone1000: use a compressed kernel
+
+The corstone1000 kernel has become too large to fit in the available
+storage.  Swtiching to a compressed kernel avoids the problem, but
+requires uncompressing it.  Add this decompression to the default boot
+instructions.
+
+Signed-off-by: Jon Mason <jon.mason@arm.com>
+---
+ include/configs/corstone1000.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
+index d9855bf91e..d0cbc40121 100644
+--- a/include/configs/corstone1000.h
++++ b/include/configs/corstone1000.h
+@@ -126,7 +126,8 @@
+ #define CONFIG_BOOTCOMMAND								\
+ 				"run retrieve_kernel_load_addr;"			\
+ 				"echo Loading kernel from $kernel_addr to memory ... ;"	\
+-				"loadm $kernel_addr $kernel_addr_r 0xc00000;"		\
++				"unzip $kernel_addr 0x90000000;"                        \
++				"loadm 0x90000000 $kernel_addr_r 0xd00000;"		\
+ 				"usb start; usb reset;"					\
+ 				"run distro_bootcmd;"					\
+ 				"bootefi $kernel_addr_r $fdtcontroladdr;"
+-- 
+2.30.2
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0001-armv7-adding-generic-timer-access-through-MMIO.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0001-armv7-adding-generic-timer-access-through-MMIO.patch
index 8a98f9d..9a29975 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0001-armv7-adding-generic-timer-access-through-MMIO.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0001-armv7-adding-generic-timer-access-through-MMIO.patch
@@ -1,4 +1,4 @@
-From fff63cfd7d9654dc9ed0c106f29d3a7ad01b0502 Mon Sep 17 00:00:00 2001
+From d75d794785419592ba49046165d19a6ec9488b2d Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Wed, 18 Dec 2019 21:52:34 +0000
 Subject: [PATCH 1/2] armv7: adding generic timer access through MMIO
@@ -21,6 +21,8 @@
 Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 
 %% original patch: 0001-armv7-adding-generic-timer-access-through-MMIO.patch
+
+Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 ---
  arch/arm/cpu/armv7/Makefile     |  1 +
  arch/arm/cpu/armv7/mmio_timer.c | 75 +++++++++++++++++++++++++++++++++
@@ -29,7 +31,7 @@
  create mode 100644 arch/arm/cpu/armv7/mmio_timer.c
 
 diff --git a/arch/arm/cpu/armv7/Makefile b/arch/arm/cpu/armv7/Makefile
-index bfbd85ae64..1a0a24e531 100644
+index bfbd85ae64ef..1a0a24e53110 100644
 --- a/arch/arm/cpu/armv7/Makefile
 +++ b/arch/arm/cpu/armv7/Makefile
 @@ -28,6 +28,7 @@ obj-$(CONFIG_ARMV7_PSCI)	+= psci.o psci-common.o
@@ -42,7 +44,7 @@
  obj-y += s5p-common/
 diff --git a/arch/arm/cpu/armv7/mmio_timer.c b/arch/arm/cpu/armv7/mmio_timer.c
 new file mode 100644
-index 0000000000..edd806e06e
+index 000000000000..edd806e06e42
 --- /dev/null
 +++ b/arch/arm/cpu/armv7/mmio_timer.c
 @@ -0,0 +1,75 @@
@@ -122,17 +124,17 @@
 +	return gd->arch.timer_rate_hz;
 +}
 diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt
-index a6bc234f51..8d5cd67ace 100644
+index c61df4fb1c9b..cfb1c68b6297 100644
 --- a/scripts/config_whitelist.txt
 +++ b/scripts/config_whitelist.txt
-@@ -1524,6 +1524,7 @@ CONFIG_SYS_MMC_U_BOOT_DST
+@@ -1253,6 +1253,7 @@ CONFIG_SYS_MMC_U_BOOT_DST
  CONFIG_SYS_MMC_U_BOOT_OFFS
  CONFIG_SYS_MMC_U_BOOT_SIZE
  CONFIG_SYS_MMC_U_BOOT_START
 +CONFIG_SYS_MMIO_TIMER
- CONFIG_SYS_MONITOR_BASE
  CONFIG_SYS_MONITOR_LEN
  CONFIG_SYS_MONITOR_SEC
+ CONFIG_SYS_MOR_VAL
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0002-board-arm-add-corstone500-board.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0002-board-arm-add-corstone500-board.patch
index 29b2943..c389a64 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0002-board-arm-add-corstone500-board.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0002-board-arm-add-corstone500-board.patch
@@ -1,4 +1,4 @@
-From 73c319a1096259652853fa2538a733a8ebea96a8 Mon Sep 17 00:00:00 2001
+From 3566cf4ab79ca78acd69cfb87e74587394e5aeb2 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Wed, 8 Jan 2020 09:48:11 +0000
 Subject: [PATCH 2/2] board: arm: add corstone500 board
@@ -13,6 +13,8 @@
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 
 %% original patch: 0002-board-arm-add-corstone500-board.patch
+
+Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 ---
  arch/arm/Kconfig                       |  10 +++
  board/armltd/corstone500/Kconfig       |  12 +++
@@ -28,10 +30,10 @@
  create mode 100644 include/configs/corstone500.h
 
 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 4567c183fb..66f99fdf4f 100644
+index 9898c7d68e1b..8c60ed39712e 100644
 --- a/arch/arm/Kconfig
 +++ b/arch/arm/Kconfig
-@@ -641,6 +641,15 @@ config ARCH_BCMSTB
+@@ -718,6 +718,15 @@ config ARCH_BCMSTB
  	  This enables support for Broadcom ARM-based set-top box
  	  chipsets, including the 7445 family of chips.
  
@@ -47,7 +49,7 @@
  config TARGET_VEXPRESS_CA9X4
  	bool "Support vexpress_ca9x4"
  	select CPU_V7A
-@@ -2202,6 +2211,7 @@ source "board/bosch/shc/Kconfig"
+@@ -2299,6 +2308,7 @@ source "board/bosch/shc/Kconfig"
  source "board/bosch/guardian/Kconfig"
  source "board/Marvell/octeontx/Kconfig"
  source "board/Marvell/octeontx2/Kconfig"
@@ -57,7 +59,7 @@
  source "board/cortina/presidio-asic/Kconfig"
 diff --git a/board/armltd/corstone500/Kconfig b/board/armltd/corstone500/Kconfig
 new file mode 100644
-index 0000000000..8e689bd1fd
+index 000000000000..8e689bd1fdc8
 --- /dev/null
 +++ b/board/armltd/corstone500/Kconfig
 @@ -0,0 +1,12 @@
@@ -75,7 +77,7 @@
 +endif
 diff --git a/board/armltd/corstone500/Makefile b/board/armltd/corstone500/Makefile
 new file mode 100644
-index 0000000000..6598fdd3ae
+index 000000000000..6598fdd3ae0d
 --- /dev/null
 +++ b/board/armltd/corstone500/Makefile
 @@ -0,0 +1,8 @@
@@ -89,7 +91,7 @@
 +obj-y := corstone500.o
 diff --git a/board/armltd/corstone500/corstone500.c b/board/armltd/corstone500/corstone500.c
 new file mode 100644
-index 0000000000..e878f5c6a5
+index 000000000000..e878f5c6a521
 --- /dev/null
 +++ b/board/armltd/corstone500/corstone500.c
 @@ -0,0 +1,48 @@
@@ -143,7 +145,7 @@
 +
 diff --git a/configs/corstone500_defconfig b/configs/corstone500_defconfig
 new file mode 100644
-index 0000000000..d3161a4b40
+index 000000000000..d3161a4b40d8
 --- /dev/null
 +++ b/configs/corstone500_defconfig
 @@ -0,0 +1,40 @@
@@ -189,7 +191,7 @@
 +CONFIG_OF_LIBFDT=y
 diff --git a/include/configs/corstone500.h b/include/configs/corstone500.h
 new file mode 100644
-index 0000000000..93c397d2f5
+index 000000000000..93c397d2f515
 --- /dev/null
 +++ b/include/configs/corstone500.h
 @@ -0,0 +1,109 @@
@@ -303,5 +305,5 @@
 +#define CONFIG_ENV_IS_IN_FLASH		1
 +#endif
 -- 
-2.30.2
+2.37.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend
index e254d41..a0a7284 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend
@@ -36,15 +36,13 @@
         file://0016-efi_boottime-corstone1000-pass-interface-id-and-kern.patch \
         file://0017-efi_loader-corstone1000-remove-guid-check-from-corst.patch \
         file://0018-arm_ffa-removing-the-cast-when-using-binary-OR-on-FI.patch \
-        file://0019-Return-proper-error-code-when-rx-buffer-is-larger.patch \
-        file://0020-Use-correct-buffer-size.patch \
-        file://0021-Update-comm_buf-when-EFI_BUFFER_TOO_SMALL.patch \
-        file://0022-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch \
-        file://0023-efi_firmware-add-get_image_info-for-corstone1000.patch \
-        file://0024-Comment-mm_communicate-failure-log.patch \
-        file://0025-efi_loader-send-bootcomplete-message-to-secure-encla.patch \
-        file://0026-efi_loader-fix-null-pointer-exception-with-get_image.patch \
-        file://0027-arm-corstone1000-add-mmc-for-fvp.patch \
+        file://0019-Use-correct-buffer-size.patch \
+        file://0020-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch \
+        file://0021-efi_firmware-add-get_image_info-for-corstone1000.patch \
+        file://0022-efi_loader-send-bootcomplete-message-to-secure-encla.patch \
+        file://0023-efi_loader-fix-null-pointer-exception-with-get_image.patch \
+        file://0024-arm-corstone1000-add-mmc-for-fvp.patch \
+        file://0025-corstone1000-use-a-compressed-kernel.patch \
       "
 
 #
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/juno.scc b/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/juno.scc
index 2980b39..240ecf5 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/juno.scc
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/juno.scc
@@ -1,5 +1,6 @@
 include features/input/input.scc
 include features/net/net.scc
+include features/bluetooth/bluetooth.scc
 include cfg/timer/no_hz.scc
 include cfg/usb-mass-storage.scc
 
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/fvp-base-arm32/0001-ARM-vexpress-enable-GICv3.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/fvp-base-arm32/0001-ARM-vexpress-enable-GICv3.patch
index d0a05c2..184a763 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/fvp-base-arm32/0001-ARM-vexpress-enable-GICv3.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/fvp-base-arm32/0001-ARM-vexpress-enable-GICv3.patch
@@ -1,4 +1,4 @@
-From 5dbb6c4267b1e46ed08359be363d8bc9b6a79397 Mon Sep 17 00:00:00 2001
+From 9fe529a146f4528ec80a3d04588e387f3651dc22 Mon Sep 17 00:00:00 2001
 From: Ryan Harkin <ryan.harkin@linaro.org>
 Date: Wed, 16 Nov 2016 14:43:02 +0000
 Subject: [PATCH] ARM: vexpress: enable GICv3
@@ -11,21 +11,21 @@
 Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
 Signed-off-by: Jon Medhurst <tixy@linaro.org>
 ---
- arch/arm/mach-vexpress/Kconfig | 1 +
+ arch/arm/mach-versatile/Kconfig | 1 +
  1 file changed, 1 insertion(+)
 
-diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
-index 7c728ebc0b33..ed579382d41f 100644
---- a/arch/arm/mach-vexpress/Kconfig
-+++ b/arch/arm/mach-vexpress/Kconfig
-@@ -4,6 +4,7 @@ menuconfig ARCH_VEXPRESS
- 	select ARCH_SUPPORTS_BIG_ENDIAN
+diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
+index 2ef226194c3a..3d54877fe339 100644
+--- a/arch/arm/mach-versatile/Kconfig
++++ b/arch/arm/mach-versatile/Kconfig
+@@ -251,6 +251,7 @@ menuconfig ARCH_VEXPRESS
+ 	depends on ARCH_MULTI_V7
  	select ARM_AMBA
  	select ARM_GIC
 +	select ARM_GIC_V3
  	select ARM_GLOBAL_TIMER
  	select ARM_TIMER_SP804
- 	select COMMON_CLK_VERSATILE
+ 	select GPIOLIB
 -- 
-2.17.1
+2.30.2
 
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/juno/juno-dts-mhu-doorbell.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/juno/juno-dts-mhu-doorbell.patch
deleted file mode 100644
index 81f641c..0000000
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/juno/juno-dts-mhu-doorbell.patch
+++ /dev/null
@@ -1,616 +0,0 @@
-Add MHU doorbell support and SCMI device nodes to the Juno DeviceTree.
-
-Patch taken from https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git/log/?h=scmi_dt_defconfig
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 821ffd8e5dc4d2fb2716d5fb912b343b932e1e77 Mon Sep 17 00:00:00 2001
-From: Sudeep Holla <sudeep.holla@arm.com>
-Date: Thu, 20 Apr 2017 11:58:01 +0100
-Subject: [PATCH] arm64: dts: juno: add mhu doorbell support and scmi device
- nodes
-
-Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
----
- arch/arm64/boot/dts/arm/juno-base.dtsi    | 139 ++++++++++++----------
- arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi |   6 +-
- arch/arm64/boot/dts/arm/juno-r1.dts       |  12 +-
- arch/arm64/boot/dts/arm/juno-r2.dts       |  12 +-
- arch/arm64/boot/dts/arm/juno.dts          |  12 +-
- 5 files changed, 96 insertions(+), 85 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi
-index 6288e104a089..36844f7d861e 100644
---- a/arch/arm64/boot/dts/arm/juno-base.dtsi
-+++ b/arch/arm64/boot/dts/arm/juno-base.dtsi
-@@ -23,11 +23,12 @@ frame@2a830000 {
- 	};
- 
- 	mailbox: mhu@2b1f0000 {
--		compatible = "arm,mhu", "arm,primecell";
-+		compatible = "arm,mhu-doorbell", "arm,primecell";
- 		reg = <0x0 0x2b1f0000 0x0 0x1000>;
- 		interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
- 			     <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
--		#mbox-cells = <1>;
-+		#mbox-cells = <2>;
-+		mbox-name = "ARM-MHU";
- 		clocks = <&soc_refclk100mhz>;
- 		clock-names = "apb_pclk";
- 	};
-@@ -39,7 +40,7 @@ smmu_gpu: iommu@2b400000 {
- 			     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
- 		#iommu-cells = <1>;
- 		#global-interrupts = <1>;
--		power-domains = <&scpi_devpd 1>;
-+		power-domains = <&scmi_devpd 9>;
- 		dma-coherent;
- 		status = "disabled";
- 	};
-@@ -63,7 +64,7 @@ smmu_etr: iommu@2b600000 {
- 		#iommu-cells = <1>;
- 		#global-interrupts = <1>;
- 		dma-coherent;
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 	};
- 
- 	gic: interrupt-controller@2c010000 {
-@@ -123,7 +124,7 @@ etf@20010000 { /* etf0 */
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 
- 		in-ports {
- 			port {
-@@ -147,7 +148,7 @@ tpiu@20030000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		in-ports {
- 			port {
- 				tpiu_in_port: endpoint {
-@@ -164,7 +165,7 @@ main_funnel: funnel@20040000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 
- 		out-ports {
- 			port {
-@@ -201,7 +202,7 @@ etr@20070000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		arm,scatter-gather;
- 		in-ports {
- 			port {
-@@ -220,7 +221,7 @@ stm@20100000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				stm_out_port: endpoint {
-@@ -235,7 +236,7 @@ replicator@20120000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 
- 		out-ports {
- 			#address-cells = <1>;
-@@ -270,7 +271,7 @@ cpu_debug0: cpu-debug@22010000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 	};
- 
- 	etm0: etm@22040000 {
-@@ -279,7 +280,7 @@ etm0: etm@22040000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				cluster0_etm0_out_port: endpoint {
-@@ -295,7 +296,7 @@ funnel@220c0000 { /* cluster0 funnel */
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				cluster0_funnel_out_port: endpoint {
-@@ -330,7 +331,7 @@ cpu_debug1: cpu-debug@22110000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 	};
- 
- 	etm1: etm@22140000 {
-@@ -339,7 +340,7 @@ etm1: etm@22140000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				cluster0_etm1_out_port: endpoint {
-@@ -355,7 +356,7 @@ cpu_debug2: cpu-debug@23010000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 	};
- 
- 	etm2: etm@23040000 {
-@@ -364,7 +365,7 @@ etm2: etm@23040000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				cluster1_etm0_out_port: endpoint {
-@@ -380,7 +381,7 @@ funnel@230c0000 { /* cluster1 funnel */
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				cluster1_funnel_out_port: endpoint {
-@@ -427,7 +428,7 @@ cpu_debug3: cpu-debug@23110000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 	};
- 
- 	etm3: etm@23140000 {
-@@ -436,7 +437,7 @@ etm3: etm@23140000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				cluster1_etm1_out_port: endpoint {
-@@ -452,7 +453,7 @@ cpu_debug4: cpu-debug@23210000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 	};
- 
- 	etm4: etm@23240000 {
-@@ -461,7 +462,7 @@ etm4: etm@23240000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				cluster1_etm2_out_port: endpoint {
-@@ -477,7 +478,7 @@ cpu_debug5: cpu-debug@23310000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 	};
- 
- 	etm5: etm@23340000 {
-@@ -486,7 +487,7 @@ etm5: etm@23340000 {
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				cluster1_etm3_out_port: endpoint {
-@@ -503,8 +504,8 @@ gpu: gpu@2d000000 {
- 			     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
- 			     <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
- 		interrupt-names = "job", "mmu", "gpu";
--		clocks = <&scpi_dvfs 2>;
--		power-domains = <&scpi_devpd 1>;
-+		clocks = <&scmi_dvfs 2>;
-+		power-domains = <&scmi_devpd 9>;
- 		dma-coherent;
- 		/* The SMMU is only really of interest to bare-metal hypervisors */
- 		/* iommus = <&smmu_gpu 0>; */
-@@ -519,14 +520,24 @@ sram: sram@2e000000 {
- 		#size-cells = <1>;
- 		ranges = <0 0x0 0x2e000000 0x8000>;
- 
--		cpu_scp_lpri: scp-sram@0 {
--			compatible = "arm,juno-scp-shmem";
--			reg = <0x0 0x200>;
-+		cpu_scp_lpri0: scp-sram@0 {
-+			compatible = "arm,scmi-shmem";
-+			reg = <0x0 0x80>;
- 		};
- 
--		cpu_scp_hpri: scp-sram@200 {
--			compatible = "arm,juno-scp-shmem";
--			reg = <0x200 0x200>;
-+		cpu_scp_lpri1: scp-sram@80 {
-+			compatible = "arm,scmi-shmem";
-+			reg = <0x80 0x80>;
-+		};
-+
-+		cpu_scp_hpri0: scp-sram@100 {
-+			compatible = "arm,scmi-shmem";
-+			reg = <0x100 0x80>;
-+		};
-+
-+		cpu_scp_hpri1: scp-sram@180 {
-+			compatible = "arm,scmi-shmem";
-+			reg = <0x180 0x80>;
- 		};
- 	};
- 
-@@ -558,37 +569,37 @@ pcie_ctlr: pcie@40000000 {
- 		iommu-map = <0x0 &smmu_pcie 0x0 0x1>;
- 	};
- 
--	scpi {
--		compatible = "arm,scpi";
--		mboxes = <&mailbox 1>;
--		shmem = <&cpu_scp_hpri>;
-+	firmware {
-+		scmi {
-+			compatible = "arm,scmi";
-+			mbox-names = "tx", "rx";
-+			mboxes = <&mailbox 0 0 &mailbox 0 1>;
-+			shmem = <&cpu_scp_lpri0 &cpu_scp_lpri1>;
-+			#address-cells = <1>;
-+			#size-cells = <0>;
- 
--		clocks {
--			compatible = "arm,scpi-clocks";
-+			scmi_devpd: protocol@11 {
-+				reg = <0x11>;
-+				#power-domain-cells = <1>;
-+			};
- 
--			scpi_dvfs: clocks-0 {
--				compatible = "arm,scpi-dvfs-clocks";
-+			scmi_dvfs: protocol@13 {
-+				reg = <0x13>;
- 				#clock-cells = <1>;
--				clock-indices = <0>, <1>, <2>;
--				clock-output-names = "atlclk", "aplclk","gpuclk";
-+				mbox-names = "tx", "rx";
-+				mboxes = <&mailbox 1 0 &mailbox 1 1>;
-+				shmem = <&cpu_scp_hpri0 &cpu_scp_hpri1>;
- 			};
--			scpi_clk: clocks-1 {
--				compatible = "arm,scpi-variable-clocks";
-+
-+			scmi_clk: protocol@14 {
-+				reg = <0x14>;
- 				#clock-cells = <1>;
--				clock-indices = <3>;
--				clock-output-names = "pxlclk";
- 			};
--		};
- 
--		scpi_devpd: power-controller {
--			compatible = "arm,scpi-power-domains";
--			num-domains = <2>;
--			#power-domain-cells = <1>;
--		};
--
--		scpi_sensors0: sensors {
--			compatible = "arm,scpi-sensors";
--			#thermal-sensor-cells = <1>;
-+			scmi_sensors0: protocol@15 {
-+				reg = <0x15>;
-+				#thermal-sensor-cells = <1>;
-+			};
- 		};
- 	};
- 
-@@ -596,40 +607,40 @@ thermal-zones {
- 		pmic {
- 			polling-delay = <1000>;
- 			polling-delay-passive = <100>;
--			thermal-sensors = <&scpi_sensors0 0>;
-+			thermal-sensors = <&scmi_sensors0 0>;
- 		};
- 
- 		soc {
- 			polling-delay = <1000>;
- 			polling-delay-passive = <100>;
--			thermal-sensors = <&scpi_sensors0 3>;
-+			thermal-sensors = <&scmi_sensors0 3>;
- 		};
- 
- 		big_cluster_thermal_zone: big-cluster {
- 			polling-delay = <1000>;
- 			polling-delay-passive = <100>;
--			thermal-sensors = <&scpi_sensors0 21>;
-+			thermal-sensors = <&scmi_sensors0 21>;
- 			status = "disabled";
- 		};
- 
- 		little_cluster_thermal_zone: little-cluster {
- 			polling-delay = <1000>;
- 			polling-delay-passive = <100>;
--			thermal-sensors = <&scpi_sensors0 22>;
-+			thermal-sensors = <&scmi_sensors0 22>;
- 			status = "disabled";
- 		};
- 
- 		gpu0_thermal_zone: gpu0 {
- 			polling-delay = <1000>;
- 			polling-delay-passive = <100>;
--			thermal-sensors = <&scpi_sensors0 23>;
-+			thermal-sensors = <&scmi_sensors0 23>;
- 			status = "disabled";
- 		};
- 
- 		gpu1_thermal_zone: gpu1 {
- 			polling-delay = <1000>;
- 			polling-delay-passive = <100>;
--			thermal-sensors = <&scpi_sensors0 24>;
-+			thermal-sensors = <&scmi_sensors0 24>;
- 			status = "disabled";
- 		};
- 	};
-@@ -705,7 +716,7 @@ hdlcd@7ff50000 {
- 		reg = <0 0x7ff50000 0 0x1000>;
- 		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
- 		iommus = <&smmu_hdlcd1 0>;
--		clocks = <&scpi_clk 3>;
-+		clocks = <&scmi_clk 3>;
- 		clock-names = "pxlclk";
- 
- 		port {
-@@ -720,7 +731,7 @@ hdlcd@7ff60000 {
- 		reg = <0 0x7ff60000 0 0x1000>;
- 		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
- 		iommus = <&smmu_hdlcd0 0>;
--		clocks = <&scpi_clk 3>;
-+		clocks = <&scmi_clk 3>;
- 		clock-names = "pxlclk";
- 
- 		port {
-diff --git a/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi b/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi
-index eda3d9e18af6..e6ecb0dfcbcd 100644
---- a/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi
-+++ b/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi
-@@ -6,7 +6,7 @@ funnel@20130000 { /* cssys1 */
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				csys1_funnel_out_port: endpoint {
-@@ -29,7 +29,7 @@ etf@20140000 { /* etf1 */
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		in-ports {
- 			port {
- 				etf1_in_port: endpoint {
-@@ -52,7 +52,7 @@ funnel@20150000 { /* cssys2 */
- 
- 		clocks = <&soc_smc50mhz>;
- 		clock-names = "apb_pclk";
--		power-domains = <&scpi_devpd 0>;
-+		power-domains = <&scmi_devpd 8>;
- 		out-ports {
- 			port {
- 				csys2_funnel_out_port: endpoint {
-diff --git a/arch/arm64/boot/dts/arm/juno-r1.dts b/arch/arm64/boot/dts/arm/juno-r1.dts
-index 0e24e29eb9b1..fee67943f4d5 100644
---- a/arch/arm64/boot/dts/arm/juno-r1.dts
-+++ b/arch/arm64/boot/dts/arm/juno-r1.dts
-@@ -96,7 +96,7 @@ A57_0: cpu@0 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <256>;
- 			next-level-cache = <&A57_L2>;
--			clocks = <&scpi_dvfs 0>;
-+			clocks = <&scmi_dvfs 0>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <1024>;
- 		};
-@@ -113,7 +113,7 @@ A57_1: cpu@1 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <256>;
- 			next-level-cache = <&A57_L2>;
--			clocks = <&scpi_dvfs 0>;
-+			clocks = <&scmi_dvfs 0>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <1024>;
- 		};
-@@ -130,7 +130,7 @@ A53_0: cpu@100 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <578>;
- 		};
-@@ -147,7 +147,7 @@ A53_1: cpu@101 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <578>;
- 		};
-@@ -164,7 +164,7 @@ A53_2: cpu@102 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <578>;
- 		};
-@@ -181,7 +181,7 @@ A53_3: cpu@103 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <578>;
- 		};
-diff --git a/arch/arm64/boot/dts/arm/juno-r2.dts b/arch/arm64/boot/dts/arm/juno-r2.dts
-index e609420ce3e4..7792626eb29e 100644
---- a/arch/arm64/boot/dts/arm/juno-r2.dts
-+++ b/arch/arm64/boot/dts/arm/juno-r2.dts
-@@ -96,7 +96,7 @@ A72_0: cpu@0 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <256>;
- 			next-level-cache = <&A72_L2>;
--			clocks = <&scpi_dvfs 0>;
-+			clocks = <&scmi_dvfs 0>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <1024>;
- 			dynamic-power-coefficient = <450>;
-@@ -114,7 +114,7 @@ A72_1: cpu@1 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <256>;
- 			next-level-cache = <&A72_L2>;
--			clocks = <&scpi_dvfs 0>;
-+			clocks = <&scmi_dvfs 0>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <1024>;
- 			dynamic-power-coefficient = <450>;
-@@ -132,7 +132,7 @@ A53_0: cpu@100 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <485>;
- 			dynamic-power-coefficient = <140>;
-@@ -150,7 +150,7 @@ A53_1: cpu@101 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <485>;
- 			dynamic-power-coefficient = <140>;
-@@ -168,7 +168,7 @@ A53_2: cpu@102 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <485>;
- 			dynamic-power-coefficient = <140>;
-@@ -186,7 +186,7 @@ A53_3: cpu@103 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <485>;
- 			dynamic-power-coefficient = <140>;
-diff --git a/arch/arm64/boot/dts/arm/juno.dts b/arch/arm64/boot/dts/arm/juno.dts
-index f00cffbd032c..a28316c65c1b 100644
---- a/arch/arm64/boot/dts/arm/juno.dts
-+++ b/arch/arm64/boot/dts/arm/juno.dts
-@@ -95,7 +95,7 @@ A57_0: cpu@0 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <256>;
- 			next-level-cache = <&A57_L2>;
--			clocks = <&scpi_dvfs 0>;
-+			clocks = <&scmi_dvfs 0>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <1024>;
- 			dynamic-power-coefficient = <530>;
-@@ -113,7 +113,7 @@ A57_1: cpu@1 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <256>;
- 			next-level-cache = <&A57_L2>;
--			clocks = <&scpi_dvfs 0>;
-+			clocks = <&scmi_dvfs 0>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <1024>;
- 			dynamic-power-coefficient = <530>;
-@@ -131,7 +131,7 @@ A53_0: cpu@100 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <578>;
- 			dynamic-power-coefficient = <140>;
-@@ -149,7 +149,7 @@ A53_1: cpu@101 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <578>;
- 			dynamic-power-coefficient = <140>;
-@@ -167,7 +167,7 @@ A53_2: cpu@102 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <578>;
- 			dynamic-power-coefficient = <140>;
-@@ -185,7 +185,7 @@ A53_3: cpu@103 {
- 			d-cache-line-size = <64>;
- 			d-cache-sets = <128>;
- 			next-level-cache = <&A53_L2>;
--			clocks = <&scpi_dvfs 1>;
-+			clocks = <&scmi_dvfs 1>;
- 			cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
- 			capacity-dmips-mhz = <578>;
- 			dynamic-power-coefficient = <140>;
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
index f05c5ff..7bb4a92 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
@@ -91,7 +91,6 @@
 KBUILD_DEFCONFIG:juno = "defconfig"
 KCONFIG_MODE:juno = "--alldefconfig"
 FILESEXTRAPATHS:prepend:juno := "${ARMBSPFILESPATHS}"
-SRC_URI:append:juno = " file://juno-dts-mhu-doorbell.patch"
 
 #
 # Musca B1/S2 can't run Linux
@@ -180,6 +179,7 @@
     file://0042-ANDROID-trusty-ffa-Add-support-for-FFA-memory-operat.patch \
     file://0043-ANDROID-trusty-ffa-Enable-FFA-transport-for-both-mem.patch \
     file://0044-ANDROID-trusty-Make-trusty-transports-configurable.patch \
+    file://init_disassemble_info-signature-changes-causes-compile-failures.patch \
     "
 KERNEL_FEATURES:append:tc = " bsp/arm-platforms/tc.scc"
 KERNEL_FEATURES:append:tc1 = " bsp/arm-platforms/tc-autofdo.scc"
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm64-ack-5.10/tc/init_disassemble_info-signature-changes-causes-compile-failures.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm64-ack-5.10/tc/init_disassemble_info-signature-changes-causes-compile-failures.patch
new file mode 100644
index 0000000..aa33bb7
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm64-ack-5.10/tc/init_disassemble_info-signature-changes-causes-compile-failures.patch
@@ -0,0 +1,99 @@
+From 1b2013986271de39360cf79e62ed9b7d2cc59f9b Mon Sep 17 00:00:00 2001
+From: Andres Freund <andres@anarazel.de>
+Date: Wed, 22 Jun 2022 11:19:18 -0700
+Subject: [PATCH] init_disassemble_info() signature changes causes compile
+ failures
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Hi,
+
+binutils changed the signature of init_disassemble_info(), which now causes
+perf and bpftool to fail to compile (e.g. on debian unstable).
+
+Relevant binutils commit: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=60a3da00bd5407f07d64dff82a4dae98230dfaac
+
+util/annotate.c: In function ‘symbol__disassemble_bpf’:
+util/annotate.c:1765:9: error: too few arguments to function ‘init_disassemble_info’
+ 1765 |         init_disassemble_info(&info, s,
+      |         ^~~~~~~~~~~~~~~~~~~~~
+In file included from util/annotate.c:1718:
+/usr/include/dis-asm.h:472:13: note: declared here
+  472 | extern void init_disassemble_info (struct disassemble_info *dinfo, void *stream,
+      |             ^~~~~~~~~~~~~~~~~~~~~
+
+with equivalent failures in
+
+tools/bpf/bpf_jit_disasm.c
+tools/bpf/bpftool/jit_disasm.c
+
+The fix is easy enough, add a wrapper around fprintf() that conforms to the
+new signature.
+
+However I assume the necessary feature test and wrapper should only be added
+once? I don't know the kernel stuff well enough to choose the right structure
+here.
+
+Attached is my local fix for perf. Obviously would need work to be a real
+solution.
+
+Greetings,
+
+Andres Freund
+---
+
+binutils 2.39 changed the signature of init_disassemble_info(),
+which now causes perf and bpftool to fail to compile.
+
+Relevant binutils commit: [1]
+
+There is a proper fix in development upstream[2].
+This is a work-around for older kernels.
+
+[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=60a3da00bd5407f07d64dff82a4dae98230dfaac
+[2] https://patchwork.kernel.org/project/netdevbpf/cover/20220801013834.156015-1-andres@anarazel.de/
+
+Upstream-Status: Pending
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+
+ tools/perf/util/annotate.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
+index 6c8575e182ed..466a3a68f5cd 100644
+--- a/tools/perf/util/annotate.c
++++ b/tools/perf/util/annotate.c
+@@ -1677,6 +1677,18 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
+ #include <bfd.h>
+ #include <dis-asm.h>
+ 
++static int fprintf_styled(void *, enum disassembler_style, const char* fmt, ...)
++{
++  va_list args;
++  int r;
++
++  va_start(args, fmt);
++  r = vprintf(fmt, args);
++  va_end(args);
++
++  return r;
++}
++
+ static int symbol__disassemble_bpf(struct symbol *sym,
+ 				   struct annotate_args *args)
+ {
+@@ -1719,7 +1731,8 @@ static int symbol__disassemble_bpf(struct symbol *sym,
+ 		goto out;
+ 	}
+ 	init_disassemble_info(&info, s,
+-			      (fprintf_ftype) fprintf);
++			      (fprintf_ftype) fprintf,
++			      fprintf_styled);
+ 
+ 	info.arch = bfd_get_arch(bfdf);
+ 	info.mach = bfd_get_mach(bfdf);
+-- 
+2.30.2
+
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0001-core-arm-add-MPIDR-affinity-shift-and-mask-for-32-bi.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0001-core-arm-add-MPIDR-affinity-shift-and-mask-for-32-bi.patch
new file mode 100644
index 0000000..f249e52
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0001-core-arm-add-MPIDR-affinity-shift-and-mask-for-32-bi.patch
@@ -0,0 +1,29 @@
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+
+From cf84c933bb7b8a95742d1e723950cb2cde2d5320 Mon Sep 17 00:00:00 2001
+From: Vishnu Banavath <vishnu.banavath@arm.com>
+Date: Wed, 20 Jul 2022 16:37:10 +0100
+Subject: [PATCH] core: arm: add MPIDR affinity shift and mask for 32-bit
+
+This change is to add MPIDR affinity shift and mask for
+32-bit
+
+Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+
+diff --git a/core/arch/arm/include/arm.h b/core/arch/arm/include/arm.h
+index f59478af..2f6f82e7 100644
+--- a/core/arch/arm/include/arm.h
++++ b/core/arch/arm/include/arm.h
+@@ -63,6 +63,8 @@
+ #define MPIDR_AFF1_MASK		(MPIDR_AFFLVL_MASK << MPIDR_AFF1_SHIFT)
+ #define MPIDR_AFF2_SHIFT	U(16)
+ #define MPIDR_AFF2_MASK		(MPIDR_AFFLVL_MASK << MPIDR_AFF2_SHIFT)
++#define MPIDR_AFF3_SHIFT	U(32)
++#define MPIDR_AFF3_MASK		(MPIDR_AFFLVL_MASK << MPIDR_AFF3_SHIFT)
+ 
+ #define MPIDR_MT_SHIFT		U(24)
+ #define MPIDR_MT_MASK		BIT(MPIDR_MT_SHIFT)
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0002-plat-n1sdp-add-N1SDP-platform-support.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0002-plat-n1sdp-add-N1SDP-platform-support.patch
new file mode 100644
index 0000000..db195ab
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0002-plat-n1sdp-add-N1SDP-platform-support.patch
@@ -0,0 +1,233 @@
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+
+From 22ba7c7789082dbc179921962cdcadece4499c89 Mon Sep 17 00:00:00 2001
+From: Vishnu Banavath <vishnu.banavath@arm.com>
+Date: Thu, 30 Jun 2022 18:36:26 +0100
+Subject: [PATCH] plat-n1sdp: add N1SDP platform support
+
+These changes are to add N1SDP platform to optee-os
+
+Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+
+diff --git a/core/arch/arm/plat-n1sdp/conf.mk b/core/arch/arm/plat-n1sdp/conf.mk
+new file mode 100644
+index 00000000..06b4975a
+--- /dev/null
++++ b/core/arch/arm/plat-n1sdp/conf.mk
+@@ -0,0 +1,41 @@
++include core/arch/arm/cpu/cortex-armv8-0.mk
++
++CFG_DEBUG_INFO = y
++CFG_TEE_CORE_LOG_LEVEL = 4
++
++# Workaround 808870: Unconditional VLDM instructions might cause an
++# alignment fault even though the address is aligned
++# Either hard float must be disabled for AArch32 or strict alignment checks
++# must be disabled
++ifeq ($(CFG_SCTLR_ALIGNMENT_CHECK),y)
++$(call force,CFG_TA_ARM32_NO_HARD_FLOAT_SUPPORT,y)
++else
++$(call force,CFG_SCTLR_ALIGNMENT_CHECK,n)
++endif
++
++CFG_ARM64_core ?= y
++
++CFG_ARM_GICV3 = y
++
++# ARM debugger needs this
++platform-cflags-debug-info = -gdwarf-4
++platform-aflags-debug-info = -gdwarf-4
++
++CFG_CORE_SEL1_SPMC	= y
++CFG_WITH_ARM_TRUSTED_FW	= y
++
++$(call force,CFG_GIC,y)
++$(call force,CFG_PL011,y)
++$(call force,CFG_SECURE_TIME_SOURCE_CNTPCT,y)
++
++CFG_CORE_HEAP_SIZE = 0x32000 # 200kb
++
++CFG_TEE_CORE_NB_CORE = 4
++CFG_TZDRAM_START ?= 0x08000000
++CFG_TZDRAM_SIZE  ?= 0x02008000
++
++CFG_SHMEM_START  ?= 0x83000000
++CFG_SHMEM_SIZE   ?= 0x00210000
++# DRAM1 is defined above 4G
++$(call force,CFG_CORE_LARGE_PHYS_ADDR,y)
++$(call force,CFG_CORE_ARM64_PA_BITS,36)
+diff --git a/core/arch/arm/plat-n1sdp/main.c b/core/arch/arm/plat-n1sdp/main.c
+new file mode 100644
+index 00000000..cfb7f19b
+--- /dev/null
++++ b/core/arch/arm/plat-n1sdp/main.c
+@@ -0,0 +1,63 @@
++// SPDX-License-Identifier: BSD-2-Clause
++/*
++ * Copyright (c) 2022, Arm Limited.
++ */
++
++#include <arm.h>
++#include <console.h>
++#include <drivers/gic.h>
++#include <drivers/pl011.h>
++#include <drivers/tpm2_mmio.h>
++#include <drivers/tpm2_ptp_fifo.h>
++#include <drivers/tzc400.h>
++#include <initcall.h>
++#include <keep.h>
++#include <kernel/boot.h>
++#include <kernel/interrupt.h>
++#include <kernel/misc.h>
++#include <kernel/notif.h>
++#include <kernel/panic.h>
++#include <kernel/spinlock.h>
++#include <kernel/tee_time.h>
++#include <mm/core_memprot.h>
++#include <mm/core_mmu.h>
++#include <platform_config.h>
++#include <sm/psci.h>
++#include <stdint.h>
++#include <string.h>
++#include <trace.h>
++
++static struct gic_data gic_data __nex_bss;
++static struct pl011_data console_data __nex_bss;
++
++register_phys_mem_pgdir(MEM_AREA_IO_SEC, CONSOLE_UART_BASE, PL011_REG_SIZE);
++
++register_ddr(DRAM0_BASE, DRAM0_SIZE);
++
++register_phys_mem_pgdir(MEM_AREA_IO_SEC, GICD_BASE, GIC_DIST_REG_SIZE);
++register_phys_mem_pgdir(MEM_AREA_IO_SEC, GICC_BASE, GIC_DIST_REG_SIZE);
++register_phys_mem_pgdir(MEM_AREA_IO_SEC, GICR_BASE, GIC_DIST_REG_SIZE);
++
++void main_init_gic(void)
++{
++	gic_init_base_addr(&gic_data, GICC_BASE,
++			   GICD_BASE);
++	itr_init(&gic_data.chip);
++}
++
++void main_secondary_init_gic(void)
++{
++	gic_cpu_init(&gic_data);
++}
++
++void itr_core_handler(void)
++{
++	gic_it_handle(&gic_data);
++}
++
++void console_init(void)
++{
++	pl011_init(&console_data, CONSOLE_UART_BASE, CONSOLE_UART_CLK_IN_HZ,
++		   CONSOLE_BAUDRATE);
++	register_serial_console(&console_data.chip);
++}
+diff --git a/core/arch/arm/plat-n1sdp/n1sdp_core_pos.S b/core/arch/arm/plat-n1sdp/n1sdp_core_pos.S
+new file mode 100644
+index 00000000..439d4e67
+--- /dev/null
++++ b/core/arch/arm/plat-n1sdp/n1sdp_core_pos.S
+@@ -0,0 +1,32 @@
++/* SPDX-License-Identifier: BSD-2-Clause */
++/*
++ * Copyright (c) 2022, Arm Limited
++ */
++
++#include <asm.S>
++#include <arm.h>
++#include "platform_config.h"
++
++FUNC get_core_pos_mpidr , :
++        mov     x4, x0
++
++        /*
++         * The MT bit in MPIDR is always set for n1sdp and the
++         * affinity level 0 corresponds to thread affinity level.
++         */
++
++        /* Extract individual affinity fields from MPIDR */
++        ubfx    x0, x4, #MPIDR_AFF0_SHIFT, #MPIDR_AFFINITY_BITS
++        ubfx    x1, x4, #MPIDR_AFF1_SHIFT, #MPIDR_AFFINITY_BITS
++        ubfx    x2, x4, #MPIDR_AFF2_SHIFT, #MPIDR_AFFINITY_BITS
++        ubfx    x3, x4, #MPIDR_AFF3_SHIFT, #MPIDR_AFFINITY_BITS
++
++        /* Compute linear position */
++        mov     x4, #N1SDP_MAX_CLUSTERS_PER_CHIP
++        madd    x2, x3, x4, x2
++        mov     x4, #N1SDP_MAX_CPUS_PER_CLUSTER
++        madd    x1, x2, x4, x1
++        mov     x4, #N1SDP_MAX_PE_PER_CPU
++        madd    x0, x1, x4, x0
++        ret
++END_FUNC get_core_pos_mpidr
+diff --git a/core/arch/arm/plat-n1sdp/platform_config.h b/core/arch/arm/plat-n1sdp/platform_config.h
+new file mode 100644
+index 00000000..81b99409
+--- /dev/null
++++ b/core/arch/arm/plat-n1sdp/platform_config.h
+@@ -0,0 +1,49 @@
++/* SPDX-License-Identifier: BSD-2-Clause */
++/*
++ * Copyright (c) 2022, Arm Limited
++ */
++
++#ifndef PLATFORM_CONFIG_H
++#define PLATFORM_CONFIG_H
++
++#include <mm/generic_ram_layout.h>
++#include <stdint.h>
++
++/* Make stacks aligned to data cache line length */
++#define STACK_ALIGNMENT		64
++
++ /* N1SDP topology related constants */
++#define N1SDP_MAX_CPUS_PER_CLUSTER              U(2)
++#define PLAT_ARM_CLUSTER_COUNT                  U(2)
++#define PLAT_N1SDP_CHIP_COUNT                   U(2)
++#define N1SDP_MAX_CLUSTERS_PER_CHIP             U(2)
++#define N1SDP_MAX_PE_PER_CPU                    U(1)
++
++#define PLATFORM_CORE_COUNT                     (PLAT_N1SDP_CHIP_COUNT *        \
++		                                PLAT_ARM_CLUSTER_COUNT *        \
++						N1SDP_MAX_CPUS_PER_CLUSTER *    \
++						N1SDP_MAX_PE_PER_CPU)
++
++#define GIC_BASE		0x2c010000
++
++#define UART1_BASE		0x1C0A0000
++#define UART1_CLK_IN_HZ		24000000  /*24MHz*/
++
++#define CONSOLE_UART_BASE	UART1_BASE
++#define CONSOLE_UART_CLK_IN_HZ	UART1_CLK_IN_HZ
++
++#define DRAM0_BASE		0x80000000
++#define DRAM0_SIZE		0x80000000
++
++#define GICD_BASE		0x30000000
++#define GICC_BASE		0x2C000000
++#define GICR_BASE		0x300C0000
++
++#ifndef UART_BAUDRATE
++#define UART_BAUDRATE		115200
++#endif
++#ifndef CONSOLE_BAUDRATE
++#define CONSOLE_BAUDRATE	UART_BAUDRATE
++#endif
++
++#endif /*PLATFORM_CONFIG_H*/
+diff --git a/core/arch/arm/plat-n1sdp/sub.mk b/core/arch/arm/plat-n1sdp/sub.mk
+new file mode 100644
+index 00000000..a0b49da1
+--- /dev/null
++++ b/core/arch/arm/plat-n1sdp/sub.mk
+@@ -0,0 +1,3 @@
++global-incdirs-y += .
++srcs-y += main.c
++srcs-y	+= n1sdp_core_pos.S
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0003-HACK-disable-instruction-cache-and-data-cache.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0003-HACK-disable-instruction-cache-and-data-cache.patch
new file mode 100644
index 0000000..e8f4cc4
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0003-HACK-disable-instruction-cache-and-data-cache.patch
@@ -0,0 +1,46 @@
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+
+From 0c3ce4c09cd7d2ff4cd2e62acab899dd88dc9514 Mon Sep 17 00:00:00 2001
+From: Vishnu Banavath <vishnu.banavath@arm.com>
+Date: Wed, 20 Jul 2022 16:45:59 +0100
+Subject: [PATCH] HACK: disable instruction cache and data cache.
+
+For some reason, n1sdp fails to boot with instruction cache and
+data cache enabled. This is a temporary change to disable I cache
+and D cache until a proper fix is found.
+
+Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+
+%% original patch: 0003-HACK-disable-instruction-cache-and-data-cache.patch
+
+diff --git a/core/arch/arm/kernel/entry_a64.S b/core/arch/arm/kernel/entry_a64.S
+index 875b6e69..594d6928 100644
+--- a/core/arch/arm/kernel/entry_a64.S
++++ b/core/arch/arm/kernel/entry_a64.S
+@@ -52,7 +52,7 @@
+ 
+ 	.macro set_sctlr_el1
+ 		mrs	x0, sctlr_el1
+-		orr	x0, x0, #SCTLR_I
++		bic	x0, x0, #SCTLR_I
+ 		orr	x0, x0, #SCTLR_SA
+ 		orr	x0, x0, #SCTLR_SPAN
+ #if defined(CFG_CORE_RWDATA_NOEXEC)
+@@ -490,11 +490,11 @@ LOCAL_FUNC enable_mmu , : , .identity_map
+ 	isb
+ 
+ 	/* Enable I and D cache */
+-	mrs	x1, sctlr_el1
++	/* mrs	x1, sctlr_el1
+ 	orr	x1, x1, #SCTLR_I
+ 	orr	x1, x1, #SCTLR_C
+ 	msr	sctlr_el1, x1
+-	isb
++	isb */
+ 
+ 	/* Adjust stack pointers and return address */
+ 	msr	spsel, #1
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
new file mode 100644
index 0000000..356be9e
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
@@ -0,0 +1,33 @@
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
+
+From b3fde6c2e1a950214f760ab9f194f3a6572292a8 Mon Sep 17 00:00:00 2001
+From: Balint Dobszay <balint.dobszay@arm.com>
+Date: Fri, 15 Jul 2022 13:45:54 +0200
+Subject: [PATCH] Handle logging syscall
+
+Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>
+Change-Id: Ib8151cc9c66aea8bcc8fe8b1ecdc3f9f9c5f14e4
+
+%% original patch: 0004-Handle-logging-syscall.patch
+
+diff --git a/core/arch/arm/kernel/spmc_sp_handler.c b/core/arch/arm/kernel/spmc_sp_handler.c
+index e0fa0aa6..c7a45387 100644
+--- a/core/arch/arm/kernel/spmc_sp_handler.c
++++ b/core/arch/arm/kernel/spmc_sp_handler.c
+@@ -1004,6 +1004,12 @@ void spmc_sp_msg_handler(struct thread_smc_args *args,
+ 			ffa_mem_reclaim(args, caller_sp);
+ 			sp_enter(args, caller_sp);
+ 			break;
++		case 0xdeadbeef:
++			ts_push_current_session(&caller_sp->ts_sess);
++			IMSG("%s", (char *)args->a1);
++			ts_pop_current_session();
++			sp_enter(args, caller_sp);
++			break;
+ 		default:
+ 			EMSG("Unhandled FFA function ID %#"PRIx32,
+ 			     (uint32_t)args->a0);
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-n1sdp.inc b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-n1sdp.inc
new file mode 100644
index 0000000..219f08b
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-n1sdp.inc
@@ -0,0 +1,22 @@
+# N1 SDP specific configuration for optee-os
+
+COMPATIBLE_MACHINE:n1sdp = "n1sdp"
+OPTEEMACHINE:n1sdp = "n1sdp"
+
+TS_INSTALL_PREFIX_PATH = "${RECIPE_SYSROOT}/firmware/sp/opteesp"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/files/optee-os/n1sdp:"
+SRC_URI:append = " \
+    file://0001-core-arm-add-MPIDR-affinity-shift-and-mask-for-32-bi.patch \
+    file://0002-plat-n1sdp-add-N1SDP-platform-support.patch \
+    file://0003-HACK-disable-instruction-cache-and-data-cache.patch \
+    file://0004-Handle-logging-syscall.patch \
+    "
+
+EXTRA_OEMAKE += " CFG_TEE_CORE_LOG_LEVEL=4"
+
+EXTRA_OEMAKE += " CFG_TEE_BENCHMARK=n"
+
+EXTRA_OEMAKE += " CFG_CORE_SEL1_SPMC=y CFG_CORE_FFA=y"
+
+EXTRA_OEMAKE += " CFG_WITH_SP=y"
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend
new file mode 100644
index 0000000..f80e09f
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend
@@ -0,0 +1,6 @@
+# Machine specific configurations
+
+MACHINE_OPTEE_OS_REQUIRE ?= ""
+MACHINE_OPTEE_OS_REQUIRE:n1sdp = "optee-os-n1sdp.inc"
+
+require ${MACHINE_OPTEE_OS_REQUIRE}
diff --git a/meta-arm/meta-arm-bsp/recipes-security/trusted-services/secure-partitions/corstone1000/0048-Fix-UEFI-get_variable-with-small-buffer.patch b/meta-arm/meta-arm-bsp/recipes-security/trusted-services/secure-partitions/corstone1000/0048-Fix-UEFI-get_variable-with-small-buffer.patch
new file mode 100644
index 0000000..e4573a5
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-security/trusted-services/secure-partitions/corstone1000/0048-Fix-UEFI-get_variable-with-small-buffer.patch
@@ -0,0 +1,407 @@
+Upstream-Status: Pending 
+Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
+
+From 2d975e5ec5df6f81d6c35fe927f72d49181142f8 Mon Sep 17 00:00:00 2001
+From: Julian Hall <julian.hall@arm.com>
+Date: Tue, 19 Jul 2022 12:43:30 +0100
+Subject: [PATCH] Fix UEFI get_variable with small buffer
+
+The handling of the UEFI get_variable operation was incorrect when
+a small or zero data length was specified by a requester. A zero
+length data length is a legitimate way to discover the size of a
+variable without actually retrieving its data. This change adds
+test cases that reproduce the problem and a fix.
+
+Signed-off-by: Julian Hall <julian.hall@arm.com>
+Change-Id: Iec087fbf9305746d1438888e871602ec0ce15824
+---
+ .../backend/test/variable_store_tests.cpp     | 60 ++++++++++++++++--
+ .../backend/uefi_variable_store.c             | 46 +++++++++++---
+ .../client/cpp/smm_variable_client.cpp        | 33 +++++-----
+ .../client/cpp/smm_variable_client.h          |  8 ++-
+ .../provider/smm_variable_provider.c          |  2 +-
+ .../service/smm_variable_service_tests.cpp    | 62 +++++++++++++++++++
+ 6 files changed, 179 insertions(+), 32 deletions(-)
+
+diff --git a/components/service/smm_variable/backend/test/variable_store_tests.cpp b/components/service/smm_variable/backend/test/variable_store_tests.cpp
+index 235642e6..98faf761 100644
+--- a/components/service/smm_variable/backend/test/variable_store_tests.cpp
++++ b/components/service/smm_variable/backend/test/variable_store_tests.cpp
+@@ -128,7 +128,8 @@ TEST_GROUP(UefiVariableStoreTests)
+ 
+ 	efi_status_t get_variable(
+ 		const std::wstring &name,
+-		std::string &data)
++		std::string &data,
++		size_t data_len_clamp = VARIABLE_BUFFER_SIZE)
+ 	{
+ 		std::vector<int16_t> var_name = to_variable_name(name);
+ 		size_t name_size = var_name.size() * sizeof(int16_t);
+@@ -144,21 +145,40 @@ TEST_GROUP(UefiVariableStoreTests)
+ 		access_variable->NameSize = name_size;
+ 		memcpy(access_variable->Name, var_name.data(), name_size);
+ 
+-		access_variable->DataSize = 0;
++		size_t max_data_len = (data_len_clamp == VARIABLE_BUFFER_SIZE) ?
++			VARIABLE_BUFFER_SIZE -
++				SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_DATA_OFFSET(access_variable) :
++			data_len_clamp;
++
++		access_variable->DataSize = max_data_len;
+ 
+ 		efi_status_t status = uefi_variable_store_get_variable(
+ 			&m_uefi_variable_store,
+ 			access_variable,
+-			VARIABLE_BUFFER_SIZE -
+-				SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_DATA_OFFSET(access_variable),
++			max_data_len,
+ 			&total_size);
+ 
++		data.clear();
++
+ 		if (status == EFI_SUCCESS) {
+ 
+ 			const char *data_start = (const char*)(msg_buffer +
+ 				SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_DATA_OFFSET(access_variable));
+ 
+ 			data = std::string(data_start, access_variable->DataSize);
++
++			UNSIGNED_LONGLONGS_EQUAL(
++				SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_TOTAL_SIZE(access_variable),
++				total_size);
++		}
++		else if (status == EFI_BUFFER_TOO_SMALL) {
++
++			/* String length set to reported variable length */
++			data.insert(0, access_variable->DataSize, '!');
++
++			UNSIGNED_LONGLONGS_EQUAL(
++				SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_DATA_OFFSET(access_variable),
++				total_size);
+ 		}
+ 
+ 		return status;
+@@ -336,6 +356,38 @@ TEST(UefiVariableStoreTests, persistentSetGet)
+ 	LONGS_EQUAL(0, input_data.compare(output_data));
+ }
+ 
++TEST(UefiVariableStoreTests, getWithSmallBuffer)
++{
++	efi_status_t status = EFI_SUCCESS;
++	std::wstring var_name = L"test_variable";
++	std::string input_data = "quick brown fox";
++	std::string output_data;
++
++	/* A get with a zero length buffer is a legitimate way to
++	 * discover the variable size. This test performs GetVariable
++	 * operations with various buffer small buffer sizes. */
++	status = set_variable(var_name, input_data, 0);
++	UNSIGNED_LONGLONGS_EQUAL(EFI_SUCCESS, status);
++
++	/* First get the variable without a constrained buffer */
++	status = get_variable(var_name, output_data);
++	UNSIGNED_LONGLONGS_EQUAL(EFI_SUCCESS, status);
++
++	/* Expect got variable data to be the same as the set value */
++	UNSIGNED_LONGLONGS_EQUAL(input_data.size(), output_data.size());
++	LONGS_EQUAL(0, input_data.compare(output_data));
++
++	/* Now try with a zero length buffer */
++	status = get_variable(var_name, output_data, 0);
++	UNSIGNED_LONGLONGS_EQUAL(EFI_BUFFER_TOO_SMALL, status);
++	UNSIGNED_LONGLONGS_EQUAL(input_data.size(), output_data.size());
++
++	/* Try with a non-zero length but too small buffer */
++	status = get_variable(var_name, output_data, input_data.size() -1);
++	UNSIGNED_LONGLONGS_EQUAL(EFI_BUFFER_TOO_SMALL, status);
++	UNSIGNED_LONGLONGS_EQUAL(input_data.size(), output_data.size());
++}
++
+ TEST(UefiVariableStoreTests, removeVolatile)
+ {
+ 	efi_status_t status = EFI_SUCCESS;
+diff --git a/components/service/smm_variable/backend/uefi_variable_store.c b/components/service/smm_variable/backend/uefi_variable_store.c
+index e8771c21..90d648de 100644
+--- a/components/service/smm_variable/backend/uefi_variable_store.c
++++ b/components/service/smm_variable/backend/uefi_variable_store.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2021, Arm Limited. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
+  *
+  * SPDX-License-Identifier: BSD-3-Clause
+  *
+@@ -294,7 +294,10 @@ efi_status_t uefi_variable_store_get_variable(
+ 
+ 			status = load_variable_data(context, info, var, max_data_len);
+ 			var->Attributes = info->metadata.attributes;
+-			*total_length = SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_TOTAL_SIZE(var);
++
++			*total_length = (status == EFI_SUCCESS) ?
++				SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_TOTAL_SIZE(var) :
++				SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_DATA_OFFSET(var);
+ 		}
+ 	}
+ 
+@@ -682,7 +685,6 @@ static efi_status_t load_variable_data(
+ {
+ 	EMSG("In func %s\n", __func__);
+ 	psa_status_t psa_status = PSA_SUCCESS;
+-	size_t data_len = 0;
+ 	uint8_t *data = (uint8_t*)var +
+ 		SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_DATA_OFFSET(var);
+ 
+@@ -692,17 +694,41 @@ static efi_status_t load_variable_data(
+ 
+ 	if (delegate_store->storage_backend) {
+ 
+-		psa_status = delegate_store->storage_backend->interface->get(
++		struct psa_storage_info_t storage_info;
++
++		psa_status = delegate_store->storage_backend->interface->get_info(
+ 			delegate_store->storage_backend->context,
+ 			context->owner_id,
+ 			info->metadata.uid,
+-			0,
+-			max_data_len,
+-			data,
+-			&data_len);
+-		EMSG("In func %s get status is %d\n", __func__, psa_status);
++			&storage_info);
++
++		if (psa_status == PSA_SUCCESS) {
+ 
+-		var->DataSize = data_len;
++			size_t get_limit = (var->DataSize < max_data_len) ?
++				var->DataSize :
++				max_data_len;
++
++			if (get_limit >= storage_info.size) {
++
++				size_t got_len = 0;
++
++				psa_status = delegate_store->storage_backend->interface->get(
++					delegate_store->storage_backend->context,
++					context->owner_id,
++					info->metadata.uid,
++					0,
++					max_data_len,
++					data,
++					&got_len);
++
++				var->DataSize = got_len;
++			}
++			else {
++
++				var->DataSize = storage_info.size;
++				psa_status = PSA_ERROR_BUFFER_TOO_SMALL;
++			}
++		}
+ 	}
+ 
+ 	return psa_to_efi_storage_status(psa_status);
+diff --git a/components/service/smm_variable/client/cpp/smm_variable_client.cpp b/components/service/smm_variable/client/cpp/smm_variable_client.cpp
+index 8438285b..b6b4ed90 100644
+--- a/components/service/smm_variable/client/cpp/smm_variable_client.cpp
++++ b/components/service/smm_variable/client/cpp/smm_variable_client.cpp
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  *
+  * SPDX-License-Identifier: BSD-3-Clause
+  */
+@@ -122,21 +122,22 @@ efi_status_t smm_variable_client::get_variable(
+ 		guid,
+ 		name,
+ 		data,
+-		0);
++		0,
++		MAX_VAR_DATA_SIZE);
+ }
+ 
+ efi_status_t smm_variable_client::get_variable(
+ 	const EFI_GUID &guid,
+ 	const std::wstring &name,
+ 	std::string &data,
+-	size_t override_name_size)
++	size_t override_name_size,
++	size_t max_data_size)
+ {
+ 	efi_status_t efi_status = EFI_NOT_READY;
+ 
+ 	std::vector<int16_t> var_name = to_variable_name(name);
+ 	size_t name_size = var_name.size() * sizeof(int16_t);
+-	size_t data_size = 0;
+-	size_t req_len = SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_SIZE(name_size, data_size);
++	size_t req_len = SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_SIZE(name_size, 0);
+ 
+ 	rpc_call_handle call_handle;
+ 	uint8_t *req_buf;
+@@ -154,7 +155,7 @@ efi_status_t smm_variable_client::get_variable(
+ 
+ 		access_var->Guid = guid;
+ 		access_var->NameSize = name_size;
+-		access_var->DataSize = data_size;
++		access_var->DataSize = max_data_size;
+ 
+ 		memcpy(access_var->Name, var_name.data(), name_size);
+ 
+@@ -168,26 +169,28 @@ efi_status_t smm_variable_client::get_variable(
+ 
+ 			efi_status = opstatus;
+ 
+-			if (efi_status == EFI_SUCCESS) {
+-
+-				efi_status = EFI_PROTOCOL_ERROR;
++			if (resp_len >= SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_NAME_OFFSET) {
+ 
+-				if (resp_len >= SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_NAME_OFFSET) {
++				access_var = (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE*)resp_buf;
++				size_t data_size = access_var->DataSize;
+ 
+-					access_var = (SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE*)resp_buf;
++				if (resp_len >=
++					SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_TOTAL_SIZE(access_var)) {
+ 
+-					if (resp_len >=
+-						SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_TOTAL_SIZE(access_var)) {
++					if (efi_status == EFI_SUCCESS) {
+ 
+-						data_size = access_var->DataSize;
+ 						const char *data_start = (const char*)
+ 						&resp_buf[
+ 							SMM_VARIABLE_COMMUNICATE_ACCESS_VARIABLE_DATA_OFFSET(access_var)];
+ 
+ 						data.assign(data_start, data_size);
+-						efi_status = EFI_SUCCESS;
+ 					}
+ 				}
++				else if (efi_status == EFI_BUFFER_TOO_SMALL) {
++
++					data.clear();
++					data.insert(0, data_size, '!');
++				}
+ 			}
+ 		}
+ 		else {
+diff --git a/components/service/smm_variable/client/cpp/smm_variable_client.h b/components/service/smm_variable/client/cpp/smm_variable_client.h
+index c7973916..3d2371a8 100644
+--- a/components/service/smm_variable/client/cpp/smm_variable_client.h
++++ b/components/service/smm_variable/client/cpp/smm_variable_client.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  *
+  * SPDX-License-Identifier: BSD-3-Clause
+  */
+@@ -56,7 +56,8 @@ public:
+ 		const EFI_GUID &guid,
+ 		const std::wstring &name,
+ 		std::string &data,
+-		size_t override_name_size);
++		size_t override_name_size,
++		size_t max_data_size = MAX_VAR_DATA_SIZE);
+ 
+ 	/* Remove a variable */
+ 	efi_status_t remove_variable(
+@@ -113,6 +114,9 @@ public:
+ 
+ 
+ private:
++
++	static const size_t MAX_VAR_DATA_SIZE = 65536;
++
+ 	efi_status_t rpc_to_efi_status() const;
+ 
+ 	static std::vector<int16_t> to_variable_name(const std::wstring &string);
+diff --git a/components/service/smm_variable/provider/smm_variable_provider.c b/components/service/smm_variable/provider/smm_variable_provider.c
+index 1f362c17..95c4fdc9 100644
+--- a/components/service/smm_variable/provider/smm_variable_provider.c
++++ b/components/service/smm_variable/provider/smm_variable_provider.c
+@@ -165,7 +165,7 @@ static rpc_status_t get_variable_handler(void *context, struct call_req *req)
+ 		}
+ 		else {
+ 
+-			/* Reponse buffer not big enough */
++			/* Response buffer not big enough */
+ 			efi_status = EFI_BAD_BUFFER_SIZE;
+ 		}
+ 	}
+diff --git a/components/service/smm_variable/test/service/smm_variable_service_tests.cpp b/components/service/smm_variable/test/service/smm_variable_service_tests.cpp
+index 38c08ebe..989a3e63 100644
+--- a/components/service/smm_variable/test/service/smm_variable_service_tests.cpp
++++ b/components/service/smm_variable/test/service/smm_variable_service_tests.cpp
+@@ -284,6 +284,68 @@ TEST(SmmVariableServiceTests, setAndGetNv)
+ 	UNSIGNED_LONGLONGS_EQUAL(EFI_SUCCESS, efi_status);
+ }
+ 
++TEST(SmmVariableServiceTests, getVarSize)
++{
++	efi_status_t efi_status = EFI_SUCCESS;
++	std::wstring var_name = L"test_variable";
++	std::string set_data = "UEFI variable data string";
++	std::string get_data;
++
++	efi_status = m_client->set_variable(
++		m_common_guid,
++		var_name,
++		set_data,
++		0);
++
++	UNSIGNED_LONGLONGS_EQUAL(EFI_SUCCESS, efi_status);
++
++	/* Get with the data size set to zero. This is the standard way
++	 * to discover the variable size. */
++	efi_status = m_client->get_variable(
++		m_common_guid,
++		var_name,
++		get_data,
++		0, 0);
++
++	UNSIGNED_LONGLONGS_EQUAL(EFI_BUFFER_TOO_SMALL, efi_status);
++	UNSIGNED_LONGS_EQUAL(set_data.size(), get_data.size());
++
++	/* Expect remove to be permitted */
++	efi_status = m_client->remove_variable(m_common_guid, var_name);
++	UNSIGNED_LONGLONGS_EQUAL(EFI_SUCCESS, efi_status);
++}
++
++TEST(SmmVariableServiceTests, getVarSizeNv)
++{
++	efi_status_t efi_status = EFI_SUCCESS;
++	std::wstring var_name = L"test_variable";
++	std::string set_data = "UEFI variable data string";
++	std::string get_data;
++
++	efi_status = m_client->set_variable(
++		m_common_guid,
++		var_name,
++		set_data,
++		EFI_VARIABLE_NON_VOLATILE);
++
++	UNSIGNED_LONGLONGS_EQUAL(EFI_SUCCESS, efi_status);
++
++	/* Get with the data size set to zero. This is the standard way
++	 * to discover the variable size. */
++	efi_status = m_client->get_variable(
++		m_common_guid,
++		var_name,
++		get_data,
++		0, 0);
++
++	UNSIGNED_LONGLONGS_EQUAL(EFI_BUFFER_TOO_SMALL, efi_status);
++	UNSIGNED_LONGS_EQUAL(set_data.size(), get_data.size());
++
++	/* Expect remove to be permitted */
++	efi_status = m_client->remove_variable(m_common_guid, var_name);
++	UNSIGNED_LONGLONGS_EQUAL(EFI_SUCCESS, efi_status);
++}
++
+ TEST(SmmVariableServiceTests, enumerateStoreContents)
+ {
+ 	efi_status_t efi_status = EFI_SUCCESS;
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-corstone1000.inc b/meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-corstone1000.inc
index 88c46a7..b04863f 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-corstone1000.inc
+++ b/meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-corstone1000.inc
@@ -59,6 +59,7 @@
 		  file://0046-Fix-update-psa_set_key_usage_flags-definition-to-the.patch \
 		  file://0047-Fixes-in-AEAD-for-psa-arch-test-54-and-58.patch \
 		  file://0003-corstone1000-port-crypto-config.patch;patchdir=../psa-arch-tests \
+                  file://0048-Fix-UEFI-get_variable-with-small-buffer.patch \
                   "
 
 SRC_URI_MBEDTLS = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=development;name=mbedtls;destsuffix=git/mbedtls"
diff --git a/meta-arm/meta-arm-bsp/wic/corstone1000-image.corstone1000.wks b/meta-arm/meta-arm-bsp/wic/corstone1000-image.corstone1000.wks
index c58d7d6..7625679 100644
--- a/meta-arm/meta-arm-bsp/wic/corstone1000-image.corstone1000.wks
+++ b/meta-arm/meta-arm-bsp/wic/corstone1000-image.corstone1000.wks
@@ -12,4 +12,4 @@
 part --source rawcopy --sourceparams="file=signed_fip-corstone1000.bin" --align 1 --no-table --fixed-size 2
 
 # Rawcopy of kernel with initramfs
-part --source rawcopy --sourceparams="file=Image-initramfs-${MACHINE}.bin" --no-table --fixed-size 12
+part --source rawcopy --sourceparams="file=Image.gz-initramfs-${MACHINE}.bin" --no-table --fixed-size 12
diff --git a/meta-arm/meta-arm/classes/fvpboot.bbclass b/meta-arm/meta-arm/classes/fvpboot.bbclass
index ec9d4f5..fbdfa96 100644
--- a/meta-arm/meta-arm/classes/fvpboot.bbclass
+++ b/meta-arm/meta-arm/classes/fvpboot.bbclass
@@ -26,7 +26,7 @@
 
 EXTRA_IMAGEDEPENDS += "${FVP_PROVIDER}"
 
-inherit image-artifact-names
+IMAGE_CLASSES += "image-artifact-names"
 
 IMAGE_POSTPROCESS_COMMAND += "do_write_fvpboot_conf;"
 python do_write_fvpboot_conf() {
diff --git a/meta-arm/meta-arm/conf/machine/qemuarm-secureboot.conf b/meta-arm/meta-arm/conf/machine/qemuarm-secureboot.conf
index a459f3f..e48d964 100644
--- a/meta-arm/meta-arm/conf/machine/qemuarm-secureboot.conf
+++ b/meta-arm/meta-arm/conf/machine/qemuarm-secureboot.conf
@@ -12,6 +12,7 @@
 QB_FSINFO = "wic:no-kernel-in-fs"
 QB_ROOTFS_OPT = ""
 QB_KERNEL_ROOT = "/dev/vda2"
+QB_KERNEL_CMDLINE_APPEND = ""
 
 IMAGE_FSTYPES += "wic wic.qcow2"
 
diff --git a/meta-arm/meta-arm/lib/oeqa/runtime/cases/linuxboot.py b/meta-arm/meta-arm/lib/oeqa/runtime/cases/linuxboot.py
index 8994405..99a8e78 100644
--- a/meta-arm/meta-arm/lib/oeqa/runtime/cases/linuxboot.py
+++ b/meta-arm/meta-arm/lib/oeqa/runtime/cases/linuxboot.py
@@ -12,7 +12,8 @@
 
     def setUp(self):
         self.console = self.target.DEFAULT_CONSOLE
+        self.timeout = int(self.td.get('TEST_FVP_LINUX_BOOT_TIMEOUT') or 10*60)
 
     def test_linux_boot(self):
         self.logger.info(f"{self.console}: Waiting for login prompt")
-        self.target.expect(self.console, r"login\:", timeout=10*60)
+        self.target.expect(self.console, r"login\:", self.timeout)
diff --git a/meta-arm/meta-arm/lib/oeqa/runtime/cases/trusted_services.py b/meta-arm/meta-arm/lib/oeqa/runtime/cases/trusted_services.py
new file mode 100644
index 0000000..a5f9376
--- /dev/null
+++ b/meta-arm/meta-arm/lib/oeqa/runtime/cases/trusted_services.py
@@ -0,0 +1,50 @@
+#
+
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.decorator.package import OEHasPackage
+
+class TrustedServicesTest(OERuntimeTestCase):
+
+    def run_test_tool(self, cmd, expected_status=0 ):
+        """ Run a test utility """
+
+        status, output = self.target.run(cmd)
+        self.assertEqual(status, expected_status, msg='\n'.join([cmd, output]))
+
+    @OEHasPackage(['ts-demo'])
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_00_ts_demo(self):
+        self.run_test_tool('ts-demo')
+
+    @OEHasPackage(['ts-service-test'])
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_01_ts_service_test(self):
+        self.run_test_tool('ts-service-test')
+
+    @OEHasPackage(['ts-uefi-test'])
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_02_ts_uefi_test(self):
+        self.run_test_tool('uefi-test')
+
+    @OEHasPackage(['ts-psa-crypto-api-test'])
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_03_psa_crypto_api_test(self):
+        # There are a few expected PSA Crypto tests failing
+        self.run_test_tool('psa-crypto-api-test', expected_status=46)
+
+    @OEHasPackage(['ts-psa-its-api-test'])
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_04_psa_its_api_test(self):
+        self.run_test_tool('psa-its-api-test')
+
+    @OEHasPackage(['ts-psa-ps-api-test'])
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_05_psa_ps_api_test(self):
+        # There are a few expected PSA Storage tests failing
+        self.run_test_tool('psa-ps-api-test', expected_status=46)
+
+    @OEHasPackage(['ts-psa-iat-api-test'])
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_06_psa_iat_api_test(self):
+        self.run_test_tool('psa-iat-api-test')
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/build-deps-upgrade-to-mbed-TLS-2.28.0.patch b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/build-deps-upgrade-to-mbed-TLS-2.28.0.patch
deleted file mode 100644
index 058423c..0000000
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/build-deps-upgrade-to-mbed-TLS-2.28.0.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
-
-From a93084be95634b66b917f1c8baf403067dc75c5d Mon Sep 17 00:00:00 2001
-From: Sandrine Bailleux <sandrine.bailleux@arm.com>
-Date: Thu, 21 Apr 2022 10:21:29 +0200
-Subject: [PATCH] build(deps): upgrade to mbed TLS 2.28.0
-
-Upgrade to the latest and greatest 2.x release of Mbed TLS library
-(i.e. v2.28.0) to take advantage of their bug fixes.
-
-Note that the Mbed TLS project published version 3.x some time
-ago. However, as this is a major release with API breakages, upgrading
-to 3.x might require some more involved changes in TF-A, which we are
-not ready to do. We shall upgrade to mbed TLS 3.x after the v2.7
-release of TF-A.
-
-Actually, the upgrade this time simply boils down to including the new
-source code module 'constant_time.c' into the firmware.
-
-To quote mbed TLS v2.28.0 release notes [1]:
-
-  The mbedcrypto library includes a new source code module
-  constant_time.c, containing various functions meant to resist timing
-  side channel attacks. This module does not have a separate
-  configuration option, and functions from this module will be
-  included in the build as required.
-
-As a matter of fact, if one is attempting to link TF-A against mbed
-TLS v2.28.0 without the present patch, one gets some linker errors
-due to missing symbols from this new module.
-
-Apart from this, none of the items listed in mbed TLS release
-notes [1] directly affect TF-A. Special note on the following one:
-
-  Fix a bug in mbedtls_gcm_starts() when the bit length of the iv
-  exceeds 2^32.
-
-In TF-A, we do use mbedtls_gcm_starts() when the firmware decryption
-feature is enabled with AES-GCM as the authenticated decryption
-algorithm (DECRYPTION_SUPPORT=aes_gcm). However, the iv_len variable
-which gets passed to mbedtls_gcm_starts() is an unsigned int, i.e. a
-32-bit value which by definition is always less than 2**32. Therefore,
-we are immune to this bug.
-
-With this upgrade, the size of BL1 and BL2 binaries does not appear to
-change on a standard sample test build (with trusted boot and measured
-boot enabled).
-
-[1] https://github.com/Mbed-TLS/mbedtls/releases/tag/v2.28.0
-
-Change-Id: Icd5dbf527395e9e22c8fd6b77427188bd7237fd6
-Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
----
- drivers/auth/mbedtls/mbedtls_common.mk | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/auth/mbedtls/mbedtls_common.mk b/drivers/auth/mbedtls/mbedtls_common.mk
-index 0a4775d00..3eb41617f 100644
---- a/drivers/auth/mbedtls/mbedtls_common.mk
-+++ b/drivers/auth/mbedtls/mbedtls_common.mk
-@@ -48,6 +48,7 @@ LIBMBEDTLS_SRCS		:= $(addprefix ${MBEDTLS_DIR}/library/,	\
- 					rsa_internal.c				\
- 					x509.c 					\
- 					x509_crt.c 				\
-+					constant_time.c 			\
- 					)
- 
- # The platform may define the variable 'TF_MBEDTLS_KEY_ALG' to select the key
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/rwx-segments.patch b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/rwx-segments.patch
new file mode 100644
index 0000000..a4518ec
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/rwx-segments.patch
@@ -0,0 +1,38 @@
+Binutils 2.39 now warns when a segment has RXW permissions[1]:
+
+aarch64-none-elf-ld.bfd: warning: bl31.elf has a LOAD segment with RWX
+permissions
+
+However, TF-A passes --fatal-warnings to LD, so this is a build failure.
+
+There is a ticket filed upstream[2], so until that is resolved just
+remove --fatal-warnings.
+
+[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
+[2] https://developer.trustedfirmware.org/T996
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/Makefile b/Makefile
+index 3941f8698..13bbac348 100644
+--- a/Makefile
++++ b/Makefile
+@@ -418,7 +418,7 @@ TF_LDFLAGS		+=	$(TF_LDFLAGS_$(ARCH))
+ # LD = gcc (used when GCC LTO is enabled)
+ else ifneq ($(findstring gcc,$(notdir $(LD))),)
+ # Pass ld options with Wl or Xlinker switches
+-TF_LDFLAGS		+=	-Wl,--fatal-warnings -O1
++TF_LDFLAGS		+=	-O1
+ TF_LDFLAGS		+=	-Wl,--gc-sections
+ ifeq ($(ENABLE_LTO),1)
+ 	ifeq (${ARCH},aarch64)
+@@ -435,7 +435,7 @@ TF_LDFLAGS		+=	$(subst --,-Xlinker --,$(TF_LDFLAGS_$(ARCH)))
+ 
+ # LD = gcc-ld (ld) or llvm-ld (ld.lld) or other
+ else
+-TF_LDFLAGS		+=	--fatal-warnings -O1
++TF_LDFLAGS		+=	-O1
+ TF_LDFLAGS		+=	--gc-sections
+ # ld.lld doesn't recognize the errata flags,
+ # therefore don't add those in that case
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/ssl.patch b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/ssl.patch
deleted file mode 100644
index cdabd1b..0000000
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/ssl.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-fiptool: respect OPENSSL_DIR
-
-fiptool links to libcrypto, so as with the other tools it should respect
-OPENSSL_DIR for include/library paths.
-
-Upstream-Status: Submitted
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-diff --git a/Makefile b/Makefile
-index ec6f88585..2d3b9fc26 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1388,7 +1388,7 @@ fwu_fip: ${BUILD_PLAT}/${FWU_FIP_NAME}
- 
- ${FIPTOOL}: FORCE
- ifdef UNIX_MK
--	${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" FIPTOOL=${FIPTOOL} --no-print-directory -C ${FIPTOOLPATH}
-+	${Q}${MAKE} CPPFLAGS="-DVERSION='\"${VERSION_STRING}\"'" FIPTOOL=${FIPTOOL} OPENSSL_DIR=${OPENSSL_DIR} --no-print-directory -C ${FIPTOOLPATH}
- else
- # Clear the MAKEFLAGS as we do not want
- # to pass the gnumake flags to nmake.
-diff --git a/tools/fiptool/Makefile b/tools/fiptool/Makefile
-index 11d2e7b0b..7c2a08379 100644
---- a/tools/fiptool/Makefile
-+++ b/tools/fiptool/Makefile
-@@ -12,6 +12,8 @@ FIPTOOL ?= fiptool${BIN_EXT}
- PROJECT := $(notdir ${FIPTOOL})
- OBJECTS := fiptool.o tbbr_config.o
- V ?= 0
-+OPENSSL_DIR := /usr
-+
- 
- override CPPFLAGS += -D_GNU_SOURCE -D_XOPEN_SOURCE=700
- HOSTCCFLAGS := -Wall -Werror -pedantic -std=c99
-@@ -20,7 +22,7 @@ ifeq (${DEBUG},1)
- else
-   HOSTCCFLAGS += -O2
- endif
--LDLIBS := -lcrypto
-+LDLIBS := -L${OPENSSL_DIR}/lib -lcrypto
- 
- ifeq (${V},0)
-   Q := @
-@@ -28,7 +30,7 @@ else
-   Q :=
- endif
- 
--INCLUDE_PATHS := -I../../include/tools_share
-+INCLUDE_PATHS := -I../../include/tools_share  -I${OPENSSL_DIR}/include
- 
- HOSTCC ?= gcc
- 
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/tf-a-tests-no-warn-rwx-segments.patch b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/tf-a-tests-no-warn-rwx-segments.patch
new file mode 100644
index 0000000..5d02e35
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/files/tf-a-tests-no-warn-rwx-segments.patch
@@ -0,0 +1,26 @@
+Binutils 2.39 now warns when a segment has RXW permissions[1]:
+
+aarch64-poky-linux-musl-ld: tftf.elf has a LOAD segment with RWX permissions
+
+There is a ticket filed upstream[2], so until that is resolved just
+disable the warning
+
+[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
+[2] https://developer.trustedfirmware.org/T996
+
+Upstream-Status: Inappropriate
+Signed-off-by: Anton Antonov <anrton.antonov@arm.com>
+
+diff --git a/Makefile b/Makefile
+index 6d0774e1..be3f84ce 100644
+--- a/Makefile
++++ b/Makefile
+@@ -238,7 +238,7 @@ TFTF_SOURCES		:= ${FRAMEWORK_SOURCES}	${TESTS_SOURCES} ${PLAT_SOURCES} ${LIBC_SR
+ TFTF_INCLUDES		+= ${PLAT_INCLUDES}
+ TFTF_CFLAGS		+= ${COMMON_CFLAGS}
+ TFTF_ASFLAGS		+= ${COMMON_ASFLAGS}
+-TFTF_LDFLAGS		+= ${COMMON_LDFLAGS}
++TFTF_LDFLAGS		+= ${COMMON_LDFLAGS} --no-warn-rwx-segments
+ TFTF_EXTRA_OBJS 	:=
+ 
+ ifneq (${BP_OPTION},none)
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/tf-a-tests_2.7.0.bb b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/tf-a-tests_2.7.0.bb
index 0c06440..645b245 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/tf-a-tests_2.7.0.bb
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/tf-a-tests_2.7.0.bb
@@ -7,7 +7,8 @@
 
 COMPATIBLE_MACHINE ?= "invalid"
 
-SRC_URI = "git://git.trustedfirmware.org/TF-A/tf-a-tests.git;protocol=https;branch=master"
+SRC_URI = "git://git.trustedfirmware.org/TF-A/tf-a-tests.git;protocol=https;branch=master \
+          file://tf-a-tests-no-warn-rwx-segments.patch"
 SRCREV ?= "5f591f67738a1bbe6b262c53d9dad46ed8bbcd67"
 
 DEPENDS += "optee-os"
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
index 8815510..6cf55d6 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
@@ -10,7 +10,14 @@
 TFA_PLATFORM:qemu-generic-arm64 = "qemu_sbsa"
 TFA_PLATFORM:qemuarm-secureboot = "qemu"
 
-TFA_SPD:qemuarm64-secureboot = "opteed"
+# Trusted Services secure partitions require arm-ffa machine feature.
+# Enabling Secure-EL1 Payload Dispatcher (SPD) in this case
+TFA_SPD:qemuarm64-secureboot = "${@bb.utils.contains('MACHINE_FEATURES', 'arm-ffa', 'spmd', 'opteed', d)}"
+# Configure tf-a accordingly to TS requirements if included
+EXTRA_OEMAKE:append:qemuarm64-secureboot = "${@bb.utils.contains('MACHINE_FEATURES', 'arm-ffa', ' CTX_INCLUDE_EL2_REGS=0 SPMC_OPTEE=1 ', '' , d)}"
+# Cortex-A57 supports Armv8.0 (no S-EL2 execution state).
+# The SPD SPMC component should run at the S-EL1 execution state.
+TFA_SPMD_SPM_AT_SEL2:qemuarm64-secureboot = "0"
 
 TFA_UBOOT:qemuarm64-secureboot = "1"
 TFA_UBOOT:qemuarm-secureboot = "1"
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.0.bb b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.0.bb
index 537ec32..35817c0 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.0.bb
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_2.7.0.bb
@@ -3,6 +3,8 @@
 # TF-A v2.7
 SRCREV_tfa = "35f4c7295bafeb32c8bcbdfb6a3f2e74a57e732b"
 
+SRC_URI += "file://rwx-segments.patch"
+
 LIC_FILES_CHKSUM += "file://docs/license.rst;md5=b2c740efedc159745b9b31f88ff03dde"
 
 # mbed TLS v2.28.0
diff --git a/meta-arm/meta-arm/recipes-devtools/gator-daemon/gator-daemon/0001-daemon-mxml-Define-_GNU_SOURCE.patch b/meta-arm/meta-arm/recipes-devtools/gator-daemon/gator-daemon/0001-daemon-mxml-Define-_GNU_SOURCE.patch
new file mode 100644
index 0000000..d246043
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-devtools/gator-daemon/gator-daemon/0001-daemon-mxml-Define-_GNU_SOURCE.patch
@@ -0,0 +1,31 @@
+From 04e2e924c3ab8da41343277746804dbcd7bf520d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 13 Aug 2022 16:49:52 -0700
+Subject: [PATCH] daemon/mxml: Define _GNU_SOURCE
+
+This file uses vasprintf() which is defined only with _GNU_SOURCE
+feature macro is on.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ daemon/mxml/mxml-string.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/daemon/mxml/mxml-string.c b/daemon/mxml/mxml-string.c
+index 678aeb9..c9cd153 100644
+--- a/daemon/mxml/mxml-string.c
++++ b/daemon/mxml/mxml-string.c
+@@ -13,6 +13,8 @@
+  * Include necessary headers...
+  */
+ 
++#define _GNU_SOURCE
++
+ #include "config.h"
+ 
+ 
+-- 
+2.37.2
+
diff --git a/meta-arm/meta-arm/recipes-devtools/gator-daemon/gator-daemon_7.7.0.bb b/meta-arm/meta-arm/recipes-devtools/gator-daemon/gator-daemon_7.7.0.bb
index 492d321..07b8abb 100644
--- a/meta-arm/meta-arm/recipes-devtools/gator-daemon/gator-daemon_7.7.0.bb
+++ b/meta-arm/meta-arm/recipes-devtools/gator-daemon/gator-daemon_7.7.0.bb
@@ -18,6 +18,7 @@
 SRCREV = "9d8d75fa08352470c51abc23fe3b314879bd8b78"
 SRC_URI = "git://github.com/ARM-software/gator.git;protocol=http;branch=main;protocol=https \
            file://0001-Sources.mk-Remove-xml-PmuXMLParser.h-header-from-GAT.patch;striplevel=2 \
+           file://0001-daemon-mxml-Define-_GNU_SOURCE.patch;striplevel=2 \
           "
 
 S = "${WORKDIR}/git/daemon"
diff --git a/meta-arm/meta-arm/recipes-kernel/arm-ffa-tee/arm-ffa-tee_1.1.1.bb b/meta-arm/meta-arm/recipes-kernel/arm-ffa-tee/arm-ffa-tee_1.1.1.bb
new file mode 100644
index 0000000..9e997de
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/arm-ffa-tee/arm-ffa-tee_1.1.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A Linux kernel module providing user space access to Trusted Services"
+DESCRIPTION = "${SUMMARY}"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=05e355bbd617507216a836c56cf24983"
+
+inherit module
+
+SRC_URI = "git://gitlab.arm.com/linux-arm/linux-trusted-services;protocol=https;branch=main \
+           file://Makefile;subdir=git \
+          "
+S = "${WORKDIR}/git"
+
+# Tag tee-v1.1
+SRCREV = "3b543b7591505b715f332c972248a3ea41604d83"
+
+COMPATIBLE_HOST = "(arm|aarch64).*-linux"
+KERNEL_MODULE_AUTOLOAD += "arm-ffa-tee"
+
+do_install:append() {
+    install -d ${D}${includedir}
+    install -m 0644 ${S}/uapi/arm_ffa_tee.h ${D}${includedir}/
+}
diff --git a/meta-arm/meta-arm/recipes-kernel/arm-ffa-tee/files/Makefile b/meta-arm/meta-arm/recipes-kernel/arm-ffa-tee/files/Makefile
new file mode 100644
index 0000000..40a6e47
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/arm-ffa-tee/files/Makefile
@@ -0,0 +1,14 @@
+obj-m := arm-ffa-tee.o
+
+SRC := $(shell pwd)
+
+all:
+	$(MAKE) -C $(KERNEL_SRC) M=$(SRC)
+
+modules_install:
+	$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
+
+clean:
+	rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
+	rm -f Module.markers Module.symvers modules.order
+	rm -rf .tmp_versions Modules.symvers
diff --git a/meta-arm/meta-arm/recipes-kernel/arm-ffa-user/arm-ffa-user_5.0.0.bb b/meta-arm/meta-arm/recipes-kernel/arm-ffa-user/arm-ffa-user_5.0.0.bb
new file mode 100644
index 0000000..8d86197
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/arm-ffa-user/arm-ffa-user_5.0.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "FF-A Debugfs Linux kernel module"
+DESCRIPTION = "This out-of-tree kernel module exposes FF-A operations to user space \
+used for development purposes"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=05e355bbd617507216a836c56cf24983"
+
+inherit module
+
+SRC_URI = "git://gitlab.arm.com/linux-arm/linux-trusted-services;protocol=https;branch=debugfs \
+           file://Makefile;subdir=git \
+          "
+S = "${WORKDIR}/git"
+
+# Tag 5.0.0.
+SRCREV = "6ec4196a59db8204ed670ef3b78f24a8234b85a6"
+
+COMPATIBLE_HOST = "(arm|aarch64).*-linux"
+KERNEL_MODULE_AUTOLOAD += "arm-ffa-user"
+KERNEL_MODULE_PROBECONF += "arm-ffa-user"
+
+# This debugfs driver is used only by uefi-test for testing SmmGW SP
+# UUIDs = SMM Gateway SP
+FFA-USER-UUID-LIST ?= "ed32d533-99e6-4209-9cc0-2d72cdd998a7"
+module_conf_arm-ffa-user = "options arm-ffa-user uuid_str_list=${FFA-USER-UUID-LIST}"
+
+do_install:append() {
+    install -d ${D}${includedir}
+    install -m 0644 ${S}/arm_ffa_user.h ${D}${includedir}/
+}
diff --git a/meta-arm/meta-arm/recipes-kernel/arm-ffa-user/files/Makefile b/meta-arm/meta-arm/recipes-kernel/arm-ffa-user/files/Makefile
new file mode 100644
index 0000000..c54d1fc
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/arm-ffa-user/files/Makefile
@@ -0,0 +1,14 @@
+obj-m := arm-ffa-user.o
+
+SRC := $(shell pwd)
+
+all:
+	$(MAKE) -C $(KERNEL_SRC) M=$(SRC)
+
+modules_install:
+	$(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install
+
+clean:
+	rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
+	rm -f Module.markers Module.symvers modules.order
+	rm -rf .tmp_versions Modules.symvers
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-5.15.inc b/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-5.15.inc
new file mode 100644
index 0000000..bc66efb
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-5.15.inc
@@ -0,0 +1,5 @@
+# Include a backport kernel patch for TEE driver
+
+SRC_URI:append = " \
+    file://Add-sec_world_id-to-struct-tee_shm.patch \
+    "
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-transport.inc b/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-transport.inc
new file mode 100644
index 0000000..dec31dd
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/linux/arm-ffa-transport.inc
@@ -0,0 +1,6 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+# Enable ARM-FFA transport
+SRC_URI:append = " \
+    file://arm-ffa-transport.cfg \
+    "
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto-5.15/Add-sec_world_id-to-struct-tee_shm.patch b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto-5.15/Add-sec_world_id-to-struct-tee_shm.patch
new file mode 100644
index 0000000..8f54b30
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto-5.15/Add-sec_world_id-to-struct-tee_shm.patch
@@ -0,0 +1,44 @@
+From 9028b2463c1ea96f51c3ba53e2479346019ff6ad Mon Sep 17 00:00:00 2001
+From: Jens Wiklander <jens.wiklander@linaro.org>
+Date: Thu, 25 Mar 2021 15:08:44 +0100
+Subject: [PATCH] tee: add sec_world_id to struct tee_shm
+
+Adds sec_world_id to struct tee_shm which describes a shared memory
+object. sec_world_id can be used by a driver to store an id assigned by
+secure world.
+
+Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
+Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
+
+Upstream-Status: Submitted [https://github.com/torvalds/linux/commit/9028b2463c1ea96f51c3ba53e2479346019ff6ad]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ include/linux/tee_drv.h | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/tee_drv.h b/include/linux/tee_drv.h
+index 3ebfea0781f100..a1f03461369bd9 100644
+--- a/include/linux/tee_drv.h
++++ b/include/linux/tee_drv.h
+@@ -197,7 +197,11 @@ int tee_session_calc_client_uuid(uuid_t *uuid, u32 connection_method,
+  * @num_pages:	number of locked pages
+  * @dmabuf:	dmabuf used to for exporting to user space
+  * @flags:	defined by TEE_SHM_* in tee_drv.h
+- * @id:		unique id of a shared memory object on this device
++ * @id:		unique id of a shared memory object on this device, shared
++ *		with user space
++ * @sec_world_id:
++ *		secure world assigned id of this shared memory object, not
++ *		used by all drivers
+  *
+  * This pool is only supposed to be accessed directly from the TEE
+  * subsystem and from drivers that implements their own shm pool manager.
+@@ -213,6 +217,7 @@ struct tee_shm {
+ 	struct dma_buf *dmabuf;
+ 	u32 flags;
+ 	int id;
++	u64 sec_world_id;
+ };
+ 
+ /**
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/skip-unavailable-memory.patch b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto-5.15/skip-unavailable-memory.patch
similarity index 99%
rename from meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/skip-unavailable-memory.patch
rename to meta-arm/meta-arm/recipes-kernel/linux/linux-yocto-5.15/skip-unavailable-memory.patch
index c5dac6a..d157ef7 100644
--- a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/skip-unavailable-memory.patch
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto-5.15/skip-unavailable-memory.patch
@@ -1,8 +1,3 @@
-Backported to 5.15.
-
-Upstream-Status: Submitted [https://lore.kernel.org/linux-arm-kernel/20220517101410.3493781-1-andre.przywara@arm.com/T/#u]
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
 From 7bfeda1c9224270af97adf799ce0b5a4292bceb6 Mon Sep 17 00:00:00 2001
 From: Andre Przywara <andre.przywara@arm.com>
 Date: Tue, 17 May 2022 11:14:10 +0100
@@ -64,6 +59,10 @@
 
 Reported-by: Ross Burton <ross.burton@arm.com>
 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-arm-kernel/20220517101410.3493781-1-andre.przywara@arm.com/T/#u]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
 ---
  drivers/of/fdt.c | 3 +++
  1 file changed, 3 insertions(+)
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/arm-ffa-transport.cfg b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/arm-ffa-transport.cfg
new file mode 100644
index 0000000..34de78e
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/arm-ffa-transport.cfg
@@ -0,0 +1 @@
+CONFIG_ARM_FFA_TRANSPORT=y
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/generic-arm64-kmeta/generic-arm64-standard.scc b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/generic-arm64-kmeta/generic-arm64-standard.scc
index 21bff02..7036476 100644
--- a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/generic-arm64-kmeta/generic-arm64-standard.scc
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/generic-arm64-kmeta/generic-arm64-standard.scc
@@ -3,3 +3,4 @@
 define KARCH arm64
 
 include ktypes/standard/standard.scc
+include features/bluetooth/bluetooth.scc
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/no-strict-devmem.cfg b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/no-strict-devmem.cfg
new file mode 100644
index 0000000..d372aca
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/no-strict-devmem.cfg
@@ -0,0 +1 @@
+CONFIG_STRICT_DEVMEM=n
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/tee.cfg b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/tee.cfg
index 9a25cd5..53c452d 100644
--- a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/tee.cfg
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto/tee.cfg
@@ -5,7 +5,6 @@
 # TEE drivers
 #
 CONFIG_OPTEE=y
-CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
 # end of TEE drivers
 
 CONFIG_TCG_TPM=y
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend
index 1d01daa..896add8 100644
--- a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -8,10 +8,14 @@
 
 FILESEXTRAPATHS:prepend:qemuarm64-secureboot = "${ARMFILESPATHS}"
 SRC_URI:append:qemuarm64-secureboot = " \
-    file://skip-unavailable-memory.patch \
     file://tee.cfg \
     "
 
+# for Trusted Services uefi-test tool if SMM-Gateway is included
+SRC_URI:append:qemuarm64-secureboot = "\
+    ${@bb.utils.contains('MACHINE_FEATURES', 'ts-smm-gateway', 'file://no-strict-devmem.cfg', '' , d)} \
+    "
+
 FILESEXTRAPATHS:prepend:qemuarm-secureboot = "${ARMFILESPATHS}"
 SRC_URI:append:qemuarm-secureboot = " \
     file://tee.cfg \
@@ -22,3 +26,6 @@
 
 FILESEXTRAPATHS:prepend:qemuarm = "${ARMFILESPATHS}"
 SRC_URI:append:qemuarm = " file://efi.cfg"
+
+FFA_TRANSPORT_INCLUDE = "${@bb.utils.contains('MACHINE_FEATURES', 'arm-ffa', 'arm-ffa-transport.inc', '' , d)}"
+require ${FFA_TRANSPORT_INCLUDE}
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_5.15%.bbappend b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_5.15%.bbappend
new file mode 100644
index 0000000..9a18dd8
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/linux/linux-yocto_5.15%.bbappend
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-5.15:"
+
+SRC_URI:append:qemuarm64-secureboot = " \
+    file://skip-unavailable-memory.patch \
+    "
+
+FFA_TEE_INCLUDE = "${@bb.utils.contains('MACHINE_FEATURES', 'arm-ffa', 'arm-ffa-5.15.inc', '' , d)}"
+require ${FFA_TEE_INCLUDE}
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-client_3.17.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-client_3.17.0.bb
deleted file mode 100644
index 5de16e7..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-client_3.17.0.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require optee-client.inc
-
-SRCREV = "9a337049c52495e5e16b4a94decaa3e58fce793e"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-client_3.18.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-client_3.18.0.bb
new file mode 100644
index 0000000..0c831db
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-client_3.18.0.bb
@@ -0,0 +1,3 @@
+require optee-client.inc
+
+SRCREV = "e7cba71cc6e2ecd02f412c7e9ee104f0a5dffc6f"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-examples.inc b/meta-arm/meta-arm/recipes-security/optee/optee-examples.inc
index e6feb99..5011f48 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-examples.inc
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-examples.inc
@@ -12,7 +12,7 @@
 require optee.inc
 
 SRC_URI = "git://github.com/linaro-swg/optee_examples.git;branch=master;protocol=https \
-           file://0001-Makefile-Fix-non-portable-sh-check-for-plugins.patch"
+           "
 
 EXTRA_OEMAKE += "TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \
                  HOST_CROSS_COMPILE=${HOST_PREFIX} \
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-examples/0001-Makefile-Fix-non-portable-sh-check-for-plugins.patch b/meta-arm/meta-arm/recipes-security/optee/optee-examples/0001-Makefile-Fix-non-portable-sh-check-for-plugins.patch
deleted file mode 100644
index 70add62..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-examples/0001-Makefile-Fix-non-portable-sh-check-for-plugins.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 11610debf750f15c7a104db7315dcd7d69e282a8 Mon Sep 17 00:00:00 2001
-From: Alejandro Enedino Hernandez Samaniego <alhe@linux.microsoft.com>
-Date: Sat, 26 Feb 2022 01:52:26 +0000
-Subject: [PATCH] Makefile: Fix non-portable sh check for plugins
-
-Upstream-Status: Pending
-
-We previously held a patch that used "=" for comparison, but when
-that patch got upstreamed it was changed to "==" which is non-portable,
-resulting in an error:
-
-/bin/sh: 6: [: acipher: unexpected operator
-/bin/sh: 6: [: plugins: unexpected operator
-/bin/sh: 6: [: hello_world: unexpected operator
-/bin/sh: 6: [: hotp: unexpected operator
-/bin/sh: 6: [: aes: unexpected operator
-/bin/sh: 6: [: random: unexpected operator
-/bin/sh: 6: [: secure_storage: unexpected operator
-
-if /bin/sh doesnt point to bash.
-
-Which in turn causes our do_install task to fail since plugins arent
-where we expect them to be.
-
-
-Signed-off-by: Alejandro Enedino Hernandez Samaniego <alhe@linux.microsoft.com>
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index b3f16aa..9359d95 100644
---- a/Makefile
-+++ b/Makefile
-@@ -31,7 +31,7 @@ prepare-for-rootfs: examples
- 			cp -p $$example/host/optee_example_$$example $(OUTPUT_DIR)/ca/; \
- 		fi; \
- 		cp -pr $$example/ta/*.ta $(OUTPUT_DIR)/ta/; \
--		if [ $$example == plugins ]; then \
-+		if [ $$example = plugins ]; then \
- 			cp -p plugins/syslog/*.plugin $(OUTPUT_DIR)/plugins/; \
- 		fi; \
- 	done
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-examples_3.17.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-examples_3.17.0.bb
deleted file mode 100644
index b5f6269..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-examples_3.17.0.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require optee-examples.inc
-
-SRCREV = "65fc74309e12189ad5b6ce3ffec37c8011088a5a"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-examples_3.18.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-examples_3.18.0.bb
new file mode 100644
index 0000000..8118fee
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-examples_3.18.0.bb
@@ -0,0 +1,3 @@
+require optee-examples.inc
+
+SRCREV = "f301ee9df2129c0db683e726c91dc2cefe4cdb65"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit_3.17.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit_3.18.0.bb
similarity index 95%
rename from meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit_3.17.0.bb
rename to meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit_3.18.0.bb
index 5ff373a..0982df3 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit_3.17.0.bb
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os-tadevkit_3.18.0.bb
@@ -1,5 +1,5 @@
 FILESEXTRAPATHS:prepend := "${THISDIR}/optee-os:"
-require optee-os_3.17.0.bb
+require optee-os_3.18.0.bb
 
 SUMMARY = "OP-TEE Trusted OS TA devkit"
 DESCRIPTION = "OP-TEE TA devkit for build TAs"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os-ts.inc b/meta-arm/meta-arm/recipes-security/optee/optee-os-ts.inc
new file mode 100644
index 0000000..10a4175
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os-ts.inc
@@ -0,0 +1,54 @@
+# Include Trusted Services SPs accordingly to defined machine features
+
+# Please notice that OPTEE will load SPs in the order listed in this file.
+# If an SP requires another SP to be already loaded it must be listed lower.
+
+# TS SPs UUIDs definitions
+require recipes-security/trusted-services/ts-uuid.inc
+
+TS_ENV = "opteesp"
+TS_BIN = "${RECIPE_SYSROOT}/usr/${TS_ENV}/bin"
+
+# ITS SP
+DEPENDS:append  = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-its', \
+                                        ' ts-sp-its', '' , d)}"
+SP_PATHS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-its', \
+                                        ' ${TS_BIN}/${ITS_UUID}.stripped.elf', '', d)}"
+
+# Storage SP
+DEPENDS:append  = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-storage', \
+                                        ' ts-sp-storage', '' , d)}"
+SP_PATHS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-storage', \
+                                        ' ${TS_BIN}/${STORAGE_UUID}.stripped.elf', '', d)}"
+
+# Crypto SP.
+DEPENDS:append  = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-crypto', \
+                                        ' ts-sp-crypto', '' , d)}"
+SP_PATHS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-crypto', \
+                                        ' ${TS_BIN}/${CRYPTO_UUID}.stripped.elf', '', d)}"
+
+# Attestation SP
+DEPENDS:append  = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-attestation', \
+                                        ' ts-sp-attestation', '' , d)}"
+SP_PATHS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-attestation', \
+                                        ' ${TS_BIN}/${ATTESTATION_UUID}.stripped.elf', '', d)}"
+
+# Env-test SP
+DEPENDS:append  = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-env-test', \
+                                        ' ts-sp-env-test', '' , d)}"
+SP_PATHS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-env-test', \
+                                        ' ${TS_BIN}/${ENV_TEST_UUID}.stripped.elf', '', d)}"
+
+# SE-Proxy SP
+DEPENDS:append  = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-se-proxy', \
+                                        ' ts-sp-se-proxy', '' , d)}"
+SP_PATHS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-se-proxy', \
+                                        ' ${TS_BIN}/${SE_PROXY_UUID}.stripped.elf', '', d)}"
+
+# SMM Gateway
+DEPENDS:append  = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-smm-gateway', \
+                                        ' ts-sp-smm-gateway', '' , d)}"
+SP_PATHS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'ts-smm-gateway', \
+                                        ' ${TS_BIN}/${SMM_GATEWAY_UUID}.stripped.elf', '', d)}"
+
+EXTRA_OEMAKE:append = "${@oe.utils.conditional('SP_PATHS', '', '', ' CFG_SECURE_PARTITION=y SP_PATHS=\'${SP_PATHS}\' ', d)}"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os.inc b/meta-arm/meta-arm/recipes-security/optee/optee-os.inc
index 11193dc..a03ea6a 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os.inc
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os.inc
@@ -19,6 +19,7 @@
 SRC_URI:append = " \
     file://0006-allow-setting-sysroot-for-libgcc-lookup.patch \
     file://0007-allow-setting-sysroot-for-clang.patch \
+    file://0008-no-warn-rwx-segments.patch \
    "
 
 S = "${WORKDIR}/git"
@@ -33,6 +34,8 @@
     ta-targets=ta_${OPTEE_ARCH} \
     O=${B} \
 "
+EXTRA_OEMAKE += " HOST_PREFIX=${HOST_PREFIX}"
+EXTRA_OEMAKE += " CROSS_COMPILE64=${HOST_PREFIX}"
 
 CFLAGS[unexport] = "1"
 LDFLAGS[unexport] = "1"
@@ -40,7 +43,9 @@
 AS[unexport] = "1"
 LD[unexport] = "1"
 
-do_configure[noexec] = "1"
+do_compile:prepend() {
+	PLAT_LIBGCC_PATH=$(${CC} -print-libgcc-file-name)
+}
 
 do_compile() {
     oe_runmake -C ${S} all
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os/0001-core-Define-section-attributes-for-clang.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os/0001-core-Define-section-attributes-for-clang.patch
new file mode 100644
index 0000000..db88e7f
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os/0001-core-Define-section-attributes-for-clang.patch
@@ -0,0 +1,188 @@
+From f189457b79989543f65b8a4e8729eff2cdf9a758 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 13 Aug 2022 19:24:55 -0700
+Subject: [PATCH] core: Define section attributes for clang
+
+Clang's attribute section is not same as gcc, here we need to add flags
+to sections so they can be eventually collected by linker into final
+output segments. Only way to do so with clang is to use
+
+pragma clang section ...
+
+The behavious is described here [1], this allows us to define names bss
+sections. This was not an issue until clang-15 where LLD linker starts
+to detect the section flags before merging them and throws the following
+errors
+
+| ld.lld: error: section type mismatch for .nozi.kdata_page
+| >>> /mnt/b/yoe/master/build/tmp/work/qemuarm64-yoe-linux/optee-os-tadevkit/3.17.0-r0/build/core/arch/arm/kernel/thread.o:(.nozi.kdata_page): SHT_PROGBITS
+| >>> output section .nozi: SHT_NOBITS
+|
+| ld.lld: error: section type mismatch for .nozi.mmu.l2
+| >>> /mnt/b/yoe/master/build/tmp/work/qemuarm64-yoe-linux/optee-os-tadevkit/3.17.0-r0/build/core/arch/arm/mm/core_mmu_lpae.o:(.nozi.mmu.l2): SHT_PROGBITS
+| >>> output section .nozi: SHT_NOBITS
+
+These sections should be carrying SHT_NOBITS but so far it was not
+possible to do so, this patch tries to use clangs pragma to get this
+going and match the functionality with gcc.
+
+[1] https://intel.github.io/llvm-docs/clang/LanguageExtensions.html#specifying-section-names-for-global-objects-pragma-clang-section
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ core/arch/arm/kernel/thread.c    | 19 +++++++++++++++--
+ core/arch/arm/mm/core_mmu_lpae.c | 35 ++++++++++++++++++++++++++++----
+ core/arch/arm/mm/pgt_cache.c     | 12 ++++++++++-
+ core/kernel/thread.c             | 13 +++++++++++-
+ 4 files changed, 71 insertions(+), 8 deletions(-)
+
+diff --git a/core/arch/arm/kernel/thread.c b/core/arch/arm/kernel/thread.c
+index f083b159e..432983c86 100644
+--- a/core/arch/arm/kernel/thread.c
++++ b/core/arch/arm/kernel/thread.c
+@@ -44,15 +44,30 @@ static size_t thread_user_kcode_size __nex_bss;
+ #if defined(CFG_CORE_UNMAP_CORE_AT_EL0) && \
+ 	defined(CFG_CORE_WORKAROUND_SPECTRE_BP_SEC) && defined(ARM64)
+ long thread_user_kdata_sp_offset __nex_bss;
++#ifdef __clang__
++#ifndef CFG_VIRTUALIZATION
++#pragma clang section bss=".nozi.kdata_page"
++#else
++#pragma clang section bss=".nex_nozi.kdata_page"
++#endif
++#endif
+ static uint8_t thread_user_kdata_page[
+ 	ROUNDUP(sizeof(struct thread_core_local) * CFG_TEE_CORE_NB_CORE,
+ 		SMALL_PAGE_SIZE)]
+ 	__aligned(SMALL_PAGE_SIZE)
++#ifndef __clang__
+ #ifndef CFG_VIRTUALIZATION
+-	__section(".nozi.kdata_page");
++	__section(".nozi.kdata_page")
+ #else
+-	__section(".nex_nozi.kdata_page");
++	__section(".nex_nozi.kdata_page")
+ #endif
++#endif
++    ;
++#endif
++
++/* reset BSS section to default ( .bss ) */
++#ifdef __clang__
++#pragma clang section bss=""
+ #endif
+ 
+ #ifdef ARM32
+diff --git a/core/arch/arm/mm/core_mmu_lpae.c b/core/arch/arm/mm/core_mmu_lpae.c
+index 19cd7b61b..78f5910c5 100644
+--- a/core/arch/arm/mm/core_mmu_lpae.c
++++ b/core/arch/arm/mm/core_mmu_lpae.c
+@@ -230,19 +230,46 @@ typedef uint16_t l1_idx_t;
+ typedef uint64_t base_xlat_tbls_t[CFG_TEE_CORE_NB_CORE][NUM_BASE_LEVEL_ENTRIES];
+ typedef uint64_t xlat_tbl_t[XLAT_TABLE_ENTRIES];
+ 
++#ifdef __clang__
++#pragma clang section bss=".nozi.mmu.base_table"
++#endif
+ static base_xlat_tbls_t base_xlation_table[NUM_BASE_TABLES]
+ 	__aligned(NUM_BASE_LEVEL_ENTRIES * XLAT_ENTRY_SIZE)
+-	__section(".nozi.mmu.base_table");
++#ifndef __clang__
++	__section(".nozi.mmu.base_table")
++#endif
++;
++#ifdef __clang__
++#pragma clang section bss=""
++#endif
+ 
++#ifdef __clang__
++#pragma clang section bss=".nozi.mmu.l2"
++#endif
+ static xlat_tbl_t xlat_tables[MAX_XLAT_TABLES]
+-	__aligned(XLAT_TABLE_SIZE) __section(".nozi.mmu.l2");
++	__aligned(XLAT_TABLE_SIZE)
++#ifndef __clang__
++	__section(".nozi.mmu.l2")
++#endif
++;
++#ifdef __clang__
++#pragma clang section bss=""
++#endif
+ 
+ #define XLAT_TABLES_SIZE	(sizeof(xlat_tbl_t) * MAX_XLAT_TABLES)
+ 
++#ifdef __clang__
++#pragma clang section bss=".nozi.mmu.l2"
++#endif
+ /* MMU L2 table for TAs, one for each thread */
+ static xlat_tbl_t xlat_tables_ul1[CFG_NUM_THREADS]
+-	__aligned(XLAT_TABLE_SIZE) __section(".nozi.mmu.l2");
+-
++#ifndef __clang__
++	__aligned(XLAT_TABLE_SIZE) __section(".nozi.mmu.l2")
++#endif
++;
++#ifdef __clang__
++#pragma clang section bss=""
++#endif
+ /*
+  * TAs page table entry inside a level 1 page table.
+  *
+diff --git a/core/arch/arm/mm/pgt_cache.c b/core/arch/arm/mm/pgt_cache.c
+index d658b3e68..6c36706c0 100644
+--- a/core/arch/arm/mm/pgt_cache.c
++++ b/core/arch/arm/mm/pgt_cache.c
+@@ -104,8 +104,18 @@ void pgt_init(void)
+ 	 * has a large alignment, while .bss has a small alignment. The current
+ 	 * link script is optimized for small alignment in .bss
+ 	 */
++#ifdef __clang__
++#pragma clang section bss=".nozi.mmu.l2"
++#endif
+ 	static uint8_t pgt_tables[PGT_CACHE_SIZE][PGT_SIZE]
+-			__aligned(PGT_SIZE) __section(".nozi.pgt_cache");
++			__aligned(PGT_SIZE)
++#ifndef __clang__
++			__section(".nozi.pgt_cache")
++#endif
++			;
++#ifdef __clang__
++#pragma clang section bss=""
++#endif
+ 	size_t n;
+ 
+ 	for (n = 0; n < ARRAY_SIZE(pgt_tables); n++) {
+diff --git a/core/kernel/thread.c b/core/kernel/thread.c
+index 18d34e6ad..086129e28 100644
+--- a/core/kernel/thread.c
++++ b/core/kernel/thread.c
+@@ -37,13 +37,24 @@ struct thread_core_local thread_core_local[CFG_TEE_CORE_NB_CORE] __nex_bss;
+ 	name[stack_num][sizeof(name[stack_num]) / sizeof(uint32_t) - 1]
+ #endif
+ 
++#define DO_PRAGMA(x) _Pragma (#x)
++
++#ifdef __clang__
++#define DECLARE_STACK(name, num_stacks, stack_size, linkage) \
++DO_PRAGMA (clang section bss=".nozi_stack." #name) \
++linkage uint32_t name[num_stacks] \
++		[ROUNDUP(stack_size + STACK_CANARY_SIZE + STACK_CHECK_EXTRA, \
++			 STACK_ALIGNMENT) / sizeof(uint32_t)] \
++		__attribute__((aligned(STACK_ALIGNMENT))); \
++DO_PRAGMA(clang section bss="")
++#else
+ #define DECLARE_STACK(name, num_stacks, stack_size, linkage) \
+ linkage uint32_t name[num_stacks] \
+ 		[ROUNDUP(stack_size + STACK_CANARY_SIZE + STACK_CHECK_EXTRA, \
+ 			 STACK_ALIGNMENT) / sizeof(uint32_t)] \
+ 		__attribute__((section(".nozi_stack." # name), \
+ 			       aligned(STACK_ALIGNMENT)))
+-
++#endif
+ #define GET_STACK(stack) ((vaddr_t)(stack) + STACK_SIZE(stack))
+ 
+ DECLARE_STACK(stack_tmp, CFG_TEE_CORE_NB_CORE,
+-- 
+2.37.2
+
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os/0008-no-warn-rwx-segments.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os/0008-no-warn-rwx-segments.patch
new file mode 100644
index 0000000..1dd70b3
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os/0008-no-warn-rwx-segments.patch
@@ -0,0 +1,64 @@
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5474]
+
+From 0b8a917fa51a366806edc0f04b88cd23b24098c4 Mon Sep 17 00:00:00 2001
+From: Jerome Forissier <jerome.forissier@linaro.org>
+Date: Fri, 5 Aug 2022 09:48:03 +0200
+Subject: [PATCH] core: link: add --no-warn-rwx-segments
+
+binutils ld.bfd generates one RWX LOAD segment by merging several sections
+with mixed R/W/X attributes (.text, .rodata, .data). After version 2.38 it
+also warns by default when that happens [1], which breaks the build due to
+--fatal-warnings. The RWX segment is not a problem for the TEE core, since
+that information is not used to set memory permissions. Therefore, silence
+the warning.
+
+Link: [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=ba951afb99912da01a6e8434126b8fac7aa75107
+Link: https://sourceware.org/bugzilla/show_bug.cgi?id=29448
+Reported-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
+Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
+Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
+---
+ core/arch/arm/kernel/link.mk | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk
+index 7eed333a32..c39d43cbfc 100644
+--- a/core/arch/arm/kernel/link.mk
++++ b/core/arch/arm/kernel/link.mk
+@@ -31,6 +31,7 @@ link-ldflags += -T $(link-script-pp) -Map=$(link-out-dir)/tee.map
+ link-ldflags += --sort-section=alignment
+ link-ldflags += --fatal-warnings
+ link-ldflags += --gc-sections
++link-ldflags += $(call ld-option,--no-warn-rwx-segments)
+ 
+ link-ldadd  = $(LDADD)
+ link-ldadd += $(ldflags-external)
+@@ -55,6 +56,7 @@ link-script-cppflags := \
+ 		$(cppflagscore))
+ 
+ ldargs-all_objs := -T $(link-script-dummy) --no-check-sections \
++		   $(call ld-option,--no-warn-rwx-segments) \
+ 		   $(link-objs) $(link-ldadd) $(libgcccore)
+ cleanfiles += $(link-out-dir)/all_objs.o
+ $(link-out-dir)/all_objs.o: $(objs) $(libdeps) $(MAKEFILE_LIST)
+@@ -67,7 +69,8 @@ $(link-out-dir)/unpaged_entries.txt: $(link-out-dir)/all_objs.o
+ 	$(q)$(NMcore) $< | \
+ 		$(AWK) '/ ____keep_pager/ { printf "-u%s ", $$3 }' > $@
+ 
+-unpaged-ldargs = -T $(link-script-dummy) --no-check-sections --gc-sections
++unpaged-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
++		 $(call ld-option,--no-warn-rwx-segments)
+ unpaged-ldadd := $(objs) $(link-ldadd) $(libgcccore)
+ cleanfiles += $(link-out-dir)/unpaged.o
+ $(link-out-dir)/unpaged.o: $(link-out-dir)/unpaged_entries.txt
+@@ -95,7 +98,8 @@ $(link-out-dir)/init_entries.txt: $(link-out-dir)/all_objs.o
+ 	$(q)$(NMcore) $< | \
+ 		$(AWK) '/ ____keep_init/ { printf "-u%s ", $$3 }' > $@
+ 
+-init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections
++init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
++	       $(call ld-option,--no-warn-rwx-segments)
+ init-ldadd := $(link-objs-init) $(link-out-dir)/version.o  $(link-ldadd) \
+ 	      $(libgcccore)
+ cleanfiles += $(link-out-dir)/init.o
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os/3.14/0009-add-z-execstack.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os/3.14/0009-add-z-execstack.patch
new file mode 100644
index 0000000..616a0ff
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os/3.14/0009-add-z-execstack.patch
@@ -0,0 +1,95 @@
+From cb4349edce6ce360436f10da8b6aa32e68fb778d Mon Sep 17 00:00:00 2001
+From: Jerome Forissier <jerome.forissier@linaro.org>
+Date: Tue, 23 Aug 2022 11:41:00 +0000
+Subject: [PATCH] core, ldelf: link: add -z execstack
+
+When building for arm32 with GNU binutils 2.39, the linker outputs
+warnings when generating some TEE core binaries (all_obj.o, init.o,
+unpaged.o and tee.elf) as well as ldelf.elf:
+
+ arm-poky-linux-gnueabi-ld.bfd: warning: atomic_a32.o: missing .note.GNU-stack section implies executable stack
+ arm-poky-linux-gnueabi-ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
+
+The permissions used when mapping the TEE core stacks do not depend on
+any metadata found in the ELF file. Similarly when the TEE core loads
+ldelf it already creates a non-executable stack regardless of ELF
+information. Therefore we can safely ignore the warnings. This is done
+by adding the '-z execstack' option.
+
+Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
+
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5499]
+
+---
+ core/arch/arm/kernel/link.mk | 13 +++++++++----
+ ldelf/link.mk                |  4 ++++
+ 2 files changed, 13 insertions(+), 4 deletions(-)
+
+diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk
+index 3dc459d6..85cde58e 100644
+--- a/core/arch/arm/kernel/link.mk
++++ b/core/arch/arm/kernel/link.mk
+@@ -9,6 +9,11 @@ link-script-dep = $(link-out-dir)/.kern.ld.d
+ 
+ AWK	 = awk
+ 
++link-ldflags-common += $(call ld-option,--no-warn-rwx-segments)
++ifeq ($(CFG_ARM32_core),y)
++link-ldflags-common += $(call ld-option,--no-warn-execstack)
++endif
++
+ link-ldflags  = $(LDFLAGS)
+ ifeq ($(CFG_CORE_ASLR),y)
+ link-ldflags += -pie -Bsymbolic -z notext -z norelro $(ldflag-apply-dynamic-relocs)
+@@ -17,7 +22,7 @@ link-ldflags += -T $(link-script-pp) -Map=$(link-out-dir)/tee.map
+ link-ldflags += --sort-section=alignment
+ link-ldflags += --fatal-warnings
+ link-ldflags += --gc-sections
+-link-ldflags += $(call ld-option,--no-warn-rwx-segments)
++link-ldflags += $(link-ldflags-common)
+ 
+ link-ldadd  = $(LDADD)
+ link-ldadd += $(ldflags-external)
+@@ -39,7 +44,7 @@ link-script-cppflags := \
+ 		$(cppflagscore))
+ 
+ ldargs-all_objs := -T $(link-script-dummy) --no-check-sections \
+-		   $(call ld-option,--no-warn-rwx-segments) \
++		   $(link-ldflags-common) \
+ 		   $(link-objs) $(link-ldadd) $(libgcccore)
+ cleanfiles += $(link-out-dir)/all_objs.o
+ $(link-out-dir)/all_objs.o: $(objs) $(libdeps) $(MAKEFILE_LIST)
+@@ -53,7 +58,7 @@ $(link-out-dir)/unpaged_entries.txt: $(link-out-dir)/all_objs.o
+ 		$(AWK) '/ ____keep_pager/ { printf "-u%s ", $$3 }' > $@
+ 
+ unpaged-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
+-		 $(call ld-option,--no-warn-rwx-segments)
++		 $(link-ldflags-common)
+ unpaged-ldadd := $(objs) $(link-ldadd) $(libgcccore)
+ cleanfiles += $(link-out-dir)/unpaged.o
+ $(link-out-dir)/unpaged.o: $(link-out-dir)/unpaged_entries.txt
+@@ -82,7 +87,7 @@ $(link-out-dir)/init_entries.txt: $(link-out-dir)/all_objs.o
+ 		$(AWK) '/ ____keep_init/ { printf "-u%s ", $$3 }' > $@
+ 
+ init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
+-	       $(call ld-option,--no-warn-rwx-segments)
++	       $(link-ldflags-common)
+ init-ldadd := $(link-objs-init) $(link-out-dir)/version.o  $(link-ldadd) \
+ 	      $(libgcccore)
+ cleanfiles += $(link-out-dir)/init.o
+diff --git a/ldelf/link.mk b/ldelf/link.mk
+index 8fafc879..d8a05ea6 100644
+--- a/ldelf/link.mk
++++ b/ldelf/link.mk
+@@ -19,6 +19,10 @@ link-ldflags += --sort-section=alignment
+ link-ldflags += -z max-page-size=4096 # OP-TEE always uses 4K alignment
+ link-ldflags += $(link-ldflags$(sm))
+ 
++ifeq ($(CFG_ARM32_$(sm)), y)
++link-ldflags += $(call ld-option,--no-warn-execstack)
++endif
++
+ link-ldadd  = $(addprefix -L,$(libdirs))
+ link-ldadd += --start-group $(addprefix -l,$(libnames)) --end-group
+ ldargs-ldelf.elf := $(link-ldflags) $(objs) $(link-ldadd) $(libgcc$(sm))
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os/3.14/0010-add-note-GNU-stack-section.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os/3.14/0010-add-note-GNU-stack-section.patch
new file mode 100644
index 0000000..c0330b9
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os/3.14/0010-add-note-GNU-stack-section.patch
@@ -0,0 +1,128 @@
+From f99a0278ad5e26772b3dcf8c74b5bf986ecfbe1e Mon Sep 17 00:00:00 2001
+From: Jerome Forissier <jerome.forissier@linaro.org>
+Date: Tue, 23 Aug 2022 12:31:46 +0000
+Subject: [PATCH] arm32: libutils, libutee, ta: add .note.GNU-stack section to
+
+ .S files
+
+When building for arm32 with GNU binutils 2.39, the linker outputs
+warnings when linking Trusted Applications:
+
+ arm-unknown-linux-uclibcgnueabihf-ld.bfd: warning: utee_syscalls_a32.o: missing .note.GNU-stack section implies executable stack
+ arm-unknown-linux-uclibcgnueabihf-ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
+
+We could silence the warning by adding the '-z execstack' option to the
+TA link flags, like we did in the parent commit for the TEE core and
+ldelf. Indeed, ldelf always allocates a non-executable piece of memory
+for the TA to use as a stack.
+
+However it seems preferable to comply with the common ELF practices in
+this case. A better fix is therefore to add the missing .note.GNU-stack
+sections in the assembler files.
+
+Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
+
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5499]
+
+---
+ lib/libutee/arch/arm/utee_syscalls_a32.S             | 2 ++
+ lib/libutils/ext/arch/arm/atomic_a32.S               | 2 ++
+ lib/libutils/ext/arch/arm/mcount_a32.S               | 2 ++
+ lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S  | 2 ++
+ lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S | 2 ++
+ lib/libutils/isoc/arch/arm/setjmp_a32.S              | 2 ++
+ ta/arch/arm/ta_entry_a32.S                           | 2 ++
+ 7 files changed, 14 insertions(+)
+
+diff --git a/lib/libutee/arch/arm/utee_syscalls_a32.S b/lib/libutee/arch/arm/utee_syscalls_a32.S
+index 6e621ca6..af405f62 100644
+--- a/lib/libutee/arch/arm/utee_syscalls_a32.S
++++ b/lib/libutee/arch/arm/utee_syscalls_a32.S
+@@ -7,6 +7,8 @@
+ #include <tee_syscall_numbers.h>
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+         .section .text
+         .balign 4
+         .code 32
+diff --git a/lib/libutils/ext/arch/arm/atomic_a32.S b/lib/libutils/ext/arch/arm/atomic_a32.S
+index eaef6914..2be73ffa 100644
+--- a/lib/libutils/ext/arch/arm/atomic_a32.S
++++ b/lib/libutils/ext/arch/arm/atomic_a32.S
+@@ -5,6 +5,8 @@
+ 
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /* uint32_t atomic_inc32(uint32_t *v); */
+ FUNC atomic_inc32 , :
+ 	ldrex	r1, [r0]
+diff --git a/lib/libutils/ext/arch/arm/mcount_a32.S b/lib/libutils/ext/arch/arm/mcount_a32.S
+index 51439a23..54dc3c02 100644
+--- a/lib/libutils/ext/arch/arm/mcount_a32.S
++++ b/lib/libutils/ext/arch/arm/mcount_a32.S
+@@ -7,6 +7,8 @@
+ 
+ #if defined(CFG_TA_GPROF_SUPPORT) || defined(CFG_FTRACE_SUPPORT)
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /*
+  * Convert return address to call site address by subtracting the size of the
+  * mcount call instruction (blx __gnu_mcount_nc).
+diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
+index a600c879..37ae9ec6 100644
+--- a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
++++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
+@@ -5,6 +5,8 @@
+ 
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /*
+  * signed ret_idivmod_values(signed quot, signed rem);
+  * return quotient and remaining the EABI way (regs r0,r1)
+diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
+index 2dc50bc9..5c3353e2 100644
+--- a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
++++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
+@@ -5,6 +5,8 @@
+ 
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /*
+  * __value_in_regs lldiv_t __aeabi_ldivmod( long long n, long long d)
+  */
+diff --git a/lib/libutils/isoc/arch/arm/setjmp_a32.S b/lib/libutils/isoc/arch/arm/setjmp_a32.S
+index 43ea5937..f8a0b70d 100644
+--- a/lib/libutils/isoc/arch/arm/setjmp_a32.S
++++ b/lib/libutils/isoc/arch/arm/setjmp_a32.S
+@@ -51,6 +51,8 @@
+ #define SIZE(x)
+ #endif
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /* Arm/Thumb interworking support:
+ 
+    The interworking scheme expects functions to use a BX instruction
+diff --git a/ta/arch/arm/ta_entry_a32.S b/ta/arch/arm/ta_entry_a32.S
+index d2f8a69d..cd9a12f9 100644
+--- a/ta/arch/arm/ta_entry_a32.S
++++ b/ta/arch/arm/ta_entry_a32.S
+@@ -5,6 +5,8 @@
+ 
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /*
+  * This function is the bottom of the user call stack. Mark it as such so that
+  * the unwinding code won't try to go further down.
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os/3.18/0009-add-z-execstack.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os/3.18/0009-add-z-execstack.patch
new file mode 100644
index 0000000..5463a34
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os/3.18/0009-add-z-execstack.patch
@@ -0,0 +1,90 @@
+From a9d099d17ef0af6deac4c3b4d15ad0555d258ec8 Mon Sep 17 00:00:00 2001
+From: Jerome Forissier <jerome.forissier@linaro.org>
+Date: Tue, 23 Aug 2022 11:41:00 +0000
+Subject: [PATCH] core, ldelf: link: add -z execstack
+
+When building for arm32 with GNU binutils 2.39, the linker outputs
+warnings when generating some TEE core binaries (all_obj.o, init.o,
+unpaged.o and tee.elf) as well as ldelf.elf:
+
+ arm-poky-linux-gnueabi-ld.bfd: warning: atomic_a32.o: missing .note.GNU-stack section implies executable stack
+ arm-poky-linux-gnueabi-ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
+
+The permissions used when mapping the TEE core stacks do not depend on
+any metadata found in the ELF file. Similarly when the TEE core loads
+ldelf it already creates a non-executable stack regardless of ELF
+information. Therefore we can safely ignore the warnings. This is done
+by adding the '-z execstack' option.
+
+Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
+
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5499]
+
+---
+diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk
+index c39d43cb..0e96e606 100644
+--- a/core/arch/arm/kernel/link.mk
++++ b/core/arch/arm/kernel/link.mk
+@@ -9,6 +9,11 @@ link-script-dep = $(link-out-dir)/.kern.ld.d
+ 
+ AWK	 = awk
+ 
++link-ldflags-common += $(call ld-option,--no-warn-rwx-segments)
++ifeq ($(CFG_ARM32_core),y)
++link-ldflags-common += $(call ld-option,--no-warn-execstack)
++endif
++
+ link-ldflags  = $(LDFLAGS)
+ ifeq ($(CFG_CORE_ASLR),y)
+ link-ldflags += -pie -Bsymbolic -z norelro $(ldflag-apply-dynamic-relocs)
+@@ -31,7 +36,7 @@ link-ldflags += -T $(link-script-pp) -Map=$(link-out-dir)/tee.map
+ link-ldflags += --sort-section=alignment
+ link-ldflags += --fatal-warnings
+ link-ldflags += --gc-sections
+-link-ldflags += $(call ld-option,--no-warn-rwx-segments)
++link-ldflags += $(link-ldflags-common)
+ 
+ link-ldadd  = $(LDADD)
+ link-ldadd += $(ldflags-external)
+@@ -56,7 +61,7 @@ link-script-cppflags := \
+ 		$(cppflagscore))
+ 
+ ldargs-all_objs := -T $(link-script-dummy) --no-check-sections \
+-		   $(call ld-option,--no-warn-rwx-segments) \
++		   $(link-ldflags-common) \
+ 		   $(link-objs) $(link-ldadd) $(libgcccore)
+ cleanfiles += $(link-out-dir)/all_objs.o
+ $(link-out-dir)/all_objs.o: $(objs) $(libdeps) $(MAKEFILE_LIST)
+@@ -70,7 +75,7 @@ $(link-out-dir)/unpaged_entries.txt: $(link-out-dir)/all_objs.o
+ 		$(AWK) '/ ____keep_pager/ { printf "-u%s ", $$3 }' > $@
+ 
+ unpaged-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
+-		 $(call ld-option,--no-warn-rwx-segments)
++		 $(link-ldflags-common)
+ unpaged-ldadd := $(objs) $(link-ldadd) $(libgcccore)
+ cleanfiles += $(link-out-dir)/unpaged.o
+ $(link-out-dir)/unpaged.o: $(link-out-dir)/unpaged_entries.txt
+@@ -99,7 +104,7 @@ $(link-out-dir)/init_entries.txt: $(link-out-dir)/all_objs.o
+ 		$(AWK) '/ ____keep_init/ { printf "-u%s ", $$3 }' > $@
+ 
+ init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections \
+-	       $(call ld-option,--no-warn-rwx-segments)
++	       $(link-ldflags-common)
+ init-ldadd := $(link-objs-init) $(link-out-dir)/version.o  $(link-ldadd) \
+ 	      $(libgcccore)
+ cleanfiles += $(link-out-dir)/init.o
+diff --git a/ldelf/link.mk b/ldelf/link.mk
+index 64c8212a..bd49551e 100644
+--- a/ldelf/link.mk
++++ b/ldelf/link.mk
+@@ -20,6 +20,9 @@ link-ldflags += -z max-page-size=4096 # OP-TEE always uses 4K alignment
+ ifeq ($(CFG_CORE_BTI),y)
+ link-ldflags += $(call ld-option,-z force-bti) --fatal-warnings
+ endif
++ifeq ($(CFG_ARM32_$(sm)), y)
++link-ldflags += $(call ld-option,--no-warn-execstack)
++endif
+ link-ldflags += $(link-ldflags$(sm))
+ 
+ link-ldadd  = $(addprefix -L,$(libdirs))
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os/3.18/0010-add-note-GNU-stack-section.patch b/meta-arm/meta-arm/recipes-security/optee/optee-os/3.18/0010-add-note-GNU-stack-section.patch
new file mode 100644
index 0000000..95d5e67
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os/3.18/0010-add-note-GNU-stack-section.patch
@@ -0,0 +1,128 @@
+From 38bf606653ee08b10db6bb298e369cb3a9cdcda9 Mon Sep 17 00:00:00 2001
+From: Jerome Forissier <jerome.forissier@linaro.org>
+Date: Tue, 23 Aug 2022 12:31:46 +0000
+Subject: [PATCH] arm32: libutils, libutee, ta: add .note.GNU-stack section to
+
+ .S files
+
+When building for arm32 with GNU binutils 2.39, the linker outputs
+warnings when linking Trusted Applications:
+
+ arm-unknown-linux-uclibcgnueabihf-ld.bfd: warning: utee_syscalls_a32.o: missing .note.GNU-stack section implies executable stack
+ arm-unknown-linux-uclibcgnueabihf-ld.bfd: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
+
+We could silence the warning by adding the '-z execstack' option to the
+TA link flags, like we did in the parent commit for the TEE core and
+ldelf. Indeed, ldelf always allocates a non-executable piece of memory
+for the TA to use as a stack.
+
+However it seems preferable to comply with the common ELF practices in
+this case. A better fix is therefore to add the missing .note.GNU-stack
+sections in the assembler files.
+
+Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
+
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/pull/5499]
+
+---
+ lib/libutee/arch/arm/utee_syscalls_a32.S             | 2 ++
+ lib/libutils/ext/arch/arm/atomic_a32.S               | 2 ++
+ lib/libutils/ext/arch/arm/mcount_a32.S               | 2 ++
+ lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S  | 2 ++
+ lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S | 2 ++
+ lib/libutils/isoc/arch/arm/setjmp_a32.S              | 2 ++
+ ta/arch/arm/ta_entry_a32.S                           | 2 ++
+ 7 files changed, 14 insertions(+)
+
+diff --git a/lib/libutee/arch/arm/utee_syscalls_a32.S b/lib/libutee/arch/arm/utee_syscalls_a32.S
+index 6e621ca6..af405f62 100644
+--- a/lib/libutee/arch/arm/utee_syscalls_a32.S
++++ b/lib/libutee/arch/arm/utee_syscalls_a32.S
+@@ -7,6 +7,8 @@
+ #include <tee_syscall_numbers.h>
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+         .section .text
+         .balign 4
+         .code 32
+diff --git a/lib/libutils/ext/arch/arm/atomic_a32.S b/lib/libutils/ext/arch/arm/atomic_a32.S
+index eaef6914..2be73ffa 100644
+--- a/lib/libutils/ext/arch/arm/atomic_a32.S
++++ b/lib/libutils/ext/arch/arm/atomic_a32.S
+@@ -5,6 +5,8 @@
+ 
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /* uint32_t atomic_inc32(uint32_t *v); */
+ FUNC atomic_inc32 , :
+ 	ldrex	r1, [r0]
+diff --git a/lib/libutils/ext/arch/arm/mcount_a32.S b/lib/libutils/ext/arch/arm/mcount_a32.S
+index 51439a23..54dc3c02 100644
+--- a/lib/libutils/ext/arch/arm/mcount_a32.S
++++ b/lib/libutils/ext/arch/arm/mcount_a32.S
+@@ -7,6 +7,8 @@
+ 
+ #if defined(CFG_TA_GPROF_SUPPORT) || defined(CFG_FTRACE_SUPPORT)
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /*
+  * Convert return address to call site address by subtracting the size of the
+  * mcount call instruction (blx __gnu_mcount_nc).
+diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
+index a600c879..37ae9ec6 100644
+--- a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
++++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
+@@ -5,6 +5,8 @@
+ 
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /*
+  * signed ret_idivmod_values(signed quot, signed rem);
+  * return quotient and remaining the EABI way (regs r0,r1)
+diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
+index 2dc50bc9..5c3353e2 100644
+--- a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
++++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
+@@ -5,6 +5,8 @@
+ 
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /*
+  * __value_in_regs lldiv_t __aeabi_ldivmod( long long n, long long d)
+  */
+diff --git a/lib/libutils/isoc/arch/arm/setjmp_a32.S b/lib/libutils/isoc/arch/arm/setjmp_a32.S
+index 43ea5937..f8a0b70d 100644
+--- a/lib/libutils/isoc/arch/arm/setjmp_a32.S
++++ b/lib/libutils/isoc/arch/arm/setjmp_a32.S
+@@ -51,6 +51,8 @@
+ #define SIZE(x)
+ #endif
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /* Arm/Thumb interworking support:
+ 
+    The interworking scheme expects functions to use a BX instruction
+diff --git a/ta/arch/arm/ta_entry_a32.S b/ta/arch/arm/ta_entry_a32.S
+index d2f8a69d..cd9a12f9 100644
+--- a/ta/arch/arm/ta_entry_a32.S
++++ b/ta/arch/arm/ta_entry_a32.S
+@@ -5,6 +5,8 @@
+ 
+ #include <asm.S>
+ 
++	.section .note.GNU-stack,"",%progbits
++
+ /*
+  * This function is the bottom of the user call stack. Mark it as such so that
+  * the unwinding code won't try to go further down.
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os_%.bbappend b/meta-arm/meta-arm/recipes-security/optee/optee-os_%.bbappend
new file mode 100644
index 0000000..09650b9
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os_%.bbappend
@@ -0,0 +1,5 @@
+# Include Trusted Services Secure Partitions
+require optee-os-ts.inc
+
+# Conditionally include platform specific Trusted Services related OPTEE build parameters
+EXTRA_OEMAKE:append:qemuarm64-secureboot = "${@oe.utils.conditional('SP_PATHS', '', '', ' CFG_CORE_HEAP_SIZE=131072 CFG_TEE_BENCHMARK=n CFG_TEE_CORE_LOG_LEVEL=4 CFG_CORE_SEL1_SPMC=y ', d)}"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os_3.14.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-os_3.14.0.bb
index 83b89c4..6400ac2 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os_3.14.0.bb
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os_3.14.0.bb
@@ -3,3 +3,8 @@
 SRCREV = "d21befa5e53eae9db469eba1685f5aa5c6f92c2f"
 
 DEPENDS = "python3-pycryptodome-native python3-pyelftools-native"
+
+SRC_URI:append = " \
+    file://3.14/0009-add-z-execstack.patch \
+    file://3.14/0010-add-note-GNU-stack-section.patch \
+   "
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os_3.17.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-os_3.17.0.bb
deleted file mode 100644
index 3e5e0a6..0000000
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os_3.17.0.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require optee-os.inc
-
-SRCREV = "f9e550142dd4b33ee1112f5dd64ffa94ba79cefa"
-
-DEPENDS += "dtc-native"
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-os_3.18.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-os_3.18.0.bb
index 65d661f..f459efc 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-os_3.18.0.bb
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-os_3.18.0.bb
@@ -3,3 +3,8 @@
 DEPENDS += "dtc-native"
 
 SRCREV = "1ee647035939e073a2e8dddb727c0f019cc035f1"
+SRC_URI:append = " \
+    file://0001-core-Define-section-attributes-for-clang.patch \
+    file://3.18/0009-add-z-execstack.patch \
+    file://3.18/0010-add-note-GNU-stack-section.patch \
+   "
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-test_3.17.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-test_3.18.0.bb
similarity index 83%
rename from meta-arm/meta-arm/recipes-security/optee/optee-test_3.17.0.bb
rename to meta-arm/meta-arm/recipes-security/optee/optee-test_3.18.0.bb
index 18870da..0570687 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-test_3.17.0.bb
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-test_3.18.0.bb
@@ -3,7 +3,7 @@
 SRC_URI:append = " \
     file://musl-workaround.patch \
    "
-SRCREV = "44a31d02379bd8e50762caa5e1592ad81e3339af"
+SRCREV = "da5282a011b40621a2cf7a296c11a35c833ed91b"
 
 EXTRA_OEMAKE:append:libc-musl = " OPTEE_OPENSSL_EXPORT=${STAGING_INCDIR}"
 DEPENDS:append:libc-musl = " openssl"
diff --git a/meta-arm/meta-arm/recipes-security/packagegroups/packagegroup-ts-tests.bb b/meta-arm/meta-arm/recipes-security/packagegroups/packagegroup-ts-tests.bb
new file mode 100644
index 0000000..72ba33f
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/packagegroups/packagegroup-ts-tests.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Trusted Services test/demo linux tools"
+
+inherit packagegroup
+
+COMPATIBLE_HOST = "aarch64.*-linux"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+PACKAGES = "${PN} ${PN}-psa"
+
+RDEPENDS:${PN} = "\
+    ts-demo \
+    ts-service-test \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'ts-env-test', 'ts-remote-test', '' , d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'ts-smm-gateway', 'ts-uefi-test', '' , d)} \
+"
+
+SUMMARY:${PN}-psa = "PSA certification tests (psa-arch-test) for TS SPs"
+RDEPENDS:${PN}-psa = "\
+    ${@bb.utils.contains('MACHINE_FEATURES', 'ts-crypto', 'ts-psa-crypto-api-test', '' , d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'ts-its', 'ts-psa-its-api-test', '' , d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'ts-storage', 'ts-psa-ps-api-test', '' , d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'ts-attestation', 'ts-psa-iat-api-test', '' , d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'ts-se-proxy', \
+          'ts-psa-crypto-api-test ts-psa-its-api-test ts-psa-ps-api-test ts-psa-iat-api-test', '' , d)} \
+"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0004-correctly-find-headers-dir.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0004-correctly-find-headers-dir.patch
new file mode 100644
index 0000000..b73b5dc
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0004-correctly-find-headers-dir.patch
@@ -0,0 +1,30 @@
+From 1b9c8d4a7c9519c6085827da8be6546ce80ee711 Mon Sep 17 00:00:00 2001
+From: Anton Antonov <Anton.Antonov@arm.com>
+Date: Wed, 31 Aug 2022 17:05:14 +0100
+Subject: [PATCH 1/4] Allow to find libgcc headers
+
+Upstream-Status: Pending
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+---
+ external/newlib/newlib.cmake | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/external/newlib/newlib.cmake b/external/newlib/newlib.cmake
+index fff5e2a..13eb78c 100644
+--- a/external/newlib/newlib.cmake
++++ b/external/newlib/newlib.cmake
+@@ -82,7 +82,10 @@ message(STATUS "libgcc.a is used from ${LIBGCC_PATH}")
+ # Moreover the GCC specific header file include directory is also required.
+ # Specify LIBGCC_INCLUDE_DIRS in the command line to manually override the libgcc relative location below.
+ if(NOT DEFINED LIBGCC_INCLUDE_DIRS)
+-	get_filename_component(_TMP_VAR "${LIBGCC_PATH}" DIRECTORY)
++
++	# "libgcc.a" lib location in ${LIBGCC_PATH} might not contain a correct path to headers
++	# We can get the correct path if we ask for a location without a library name
++	gcc_get_lib_location(LIBRARY_NAME "" RES _TMP_VAR)
+ 	set(LIBGCC_INCLUDE_DIRS
+ 		"${_TMP_VAR}/include"
+ 		"${_TMP_VAR}/include-fixed" CACHE STRING "GCC specific include PATHs")
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0005-setting-sysroot-for-libgcc-lookup.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0005-setting-sysroot-for-libgcc-lookup.patch
new file mode 100644
index 0000000..b226bc4
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0005-setting-sysroot-for-libgcc-lookup.patch
@@ -0,0 +1,30 @@
+From 0fbf81d10e0f2aabb80105fabe4ffdf87e28e664 Mon Sep 17 00:00:00 2001
+From: Anton Antonov <Anton.Antonov@arm.com>
+Date: Wed, 31 Aug 2022 17:06:07 +0100
+Subject: [PATCH 2/4] Allow setting sysroot for libgcc lookup
+
+Explicitly pass the new variable LIBGCC_LOCATE_CFLAGS variable when searching
+for the compiler libraries.
+
+Upstream-Status: Pending
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+---
+ tools/cmake/compiler/GCC.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/cmake/compiler/GCC.cmake b/tools/cmake/compiler/GCC.cmake
+index 5a8fa59..d591c44 100644
+--- a/tools/cmake/compiler/GCC.cmake
++++ b/tools/cmake/compiler/GCC.cmake
+@@ -268,7 +268,7 @@ function(gcc_get_lib_location)
+ 	cmake_parse_arguments(MY "${options}" "${oneValueArgs}"
+ 						"${multiValueArgs}" ${ARGN} )
+ 	execute_process(
+-		COMMAND ${CMAKE_C_COMPILER} "--print-file-name=${MY_LIBRARY_NAME}"
++		COMMAND ${CMAKE_C_COMPILER} ${LIBGCC_LOCATE_CFLAGS} --print-file-name=${MY_LIBRARY_NAME}
+ 		OUTPUT_VARIABLE _RES
+ 		RESULT_VARIABLE _GCC_ERROR_CODE
+ 		OUTPUT_STRIP_TRAILING_WHITESPACE
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0006-applying-lowercase-project-convention.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0006-applying-lowercase-project-convention.patch
new file mode 100644
index 0000000..09f38c0
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0006-applying-lowercase-project-convention.patch
@@ -0,0 +1,32 @@
+From 37559c70443fe85e246f1f652045f0cd3c78012b Mon Sep 17 00:00:00 2001
+From: Vishnu Banavath <vishnu.banavath@arm.com>
+Date: Sat, 13 Nov 2021 07:47:44 +0000
+Subject: [PATCH] tools/cmake/common: applying lowercase project convention
+
+Lowercase convention should only apply on the paths inside TS
+source-code.
+Host build paths should not be lowercased. Otherwise, builds
+with uppercase paths will break.
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+diff --git a/tools/cmake/common/AddPlatform.cmake b/tools/cmake/common/AddPlatform.cmake
+index ae34c6e..31bcd8c 100644
+--- a/tools/cmake/common/AddPlatform.cmake
++++ b/tools/cmake/common/AddPlatform.cmake
+@@ -37,8 +37,8 @@ function(add_platform)
+ 	set(TGT ${MY_PARAMS_TARGET} CACHE STRING "")
+ 
+ 	# Ensure file path conforms to lowercase project convention
+-	string(TOLOWER "${TS_PLATFORM_ROOT}/${TS_PLATFORM}/platform.cmake" _platdef)
+-	include(${_platdef})
++	string(TOLOWER "${TS_PLATFORM}/platform.cmake" _platdef)
++	include(${TS_PLATFORM_ROOT}/${_platdef})
+ 	set(CMAKE_CONFIGURE_DEPENDS ${_platdef})
+ 
+ 	unset(TGT CACHE)
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0009-PSA-CRYPTO-API-INCLUDE.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0009-PSA-CRYPTO-API-INCLUDE.patch
new file mode 100644
index 0000000..9054f1c
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0009-PSA-CRYPTO-API-INCLUDE.patch
@@ -0,0 +1,39 @@
+From 7f254bf14a97d14d19e61e2b8f8359bc238f3f1b Mon Sep 17 00:00:00 2001
+From: Anton Antonov <Anton.Antonov@arm.com>
+Date: Wed, 31 Aug 2022 17:07:51 +0100
+Subject: [PATCH 3/4] Always define PSA_CRYPTO_API_INCLUDE
+
+PSA_CRYPTO_API_INCLUDE is not defined when pre-built mbedtls was used.
+
+Upstream-Status: Pending
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+---
+ external/MbedTLS/MbedTLS.cmake | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/external/MbedTLS/MbedTLS.cmake b/external/MbedTLS/MbedTLS.cmake
+index 3193a07..f15e25d 100644
+--- a/external/MbedTLS/MbedTLS.cmake
++++ b/external/MbedTLS/MbedTLS.cmake
+@@ -96,8 +96,6 @@ if (NOT MBEDCRYPTO_LIB_FILE)
+ 	#Configure Mbed TLS to build only mbedcrypto lib
+ 	execute_process(COMMAND ${Python3_EXECUTABLE} scripts/config.py crypto WORKING_DIRECTORY ${MBEDTLS_SOURCE_DIR})
+ 
+-	# Advertise Mbed TLS as the provider of the psa crypto API
+-	set(PSA_CRYPTO_API_INCLUDE "${MBEDTLS_INSTALL_DIR}/include" CACHE STRING "PSA Crypto API include path")
+ 
+ 	include(${TS_ROOT}/tools/cmake/common/PropertyCopy.cmake)
+ 
+@@ -157,6 +155,9 @@ if (NOT MBEDCRYPTO_LIB_FILE)
+ 	set(MBEDCRYPTO_LIB_FILE "${MBEDTLS_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}mbedcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ endif()
+ 
++# Advertise Mbed TLS as the provider of the psa crypto API
++set(PSA_CRYPTO_API_INCLUDE "${MBEDTLS_INSTALL_DIR}/include" CACHE STRING "PSA Crypto API include path")
++
+ #Create an imported target to have clean abstraction in the build-system.
+ add_library(mbedcrypto STATIC IMPORTED)
+ set_property(DIRECTORY ${CMAKE_SOURCE_DIR} APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${MBEDCRYPTO_LIB_FILE})
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0010-change-libts-to-export-CMake-package.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0010-change-libts-to-export-CMake-package.patch
new file mode 100644
index 0000000..169ef59
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0010-change-libts-to-export-CMake-package.patch
@@ -0,0 +1,346 @@
+From 0ff5a6163bd2760bb6a61fd5a185a2b92da5e86b Mon Sep 17 00:00:00 2001
+From: Gyorgy Szing <Gyorgy.Szing@arm.com>
+Date: Wed, 20 Jul 2022 12:36:52 +0000
+Subject: [PATCH] Fix: change libts to export a CMake package
+
+libts install content was not compatible to find_module() which made
+using a pre-built libts binary from CMake less than ideal.
+
+This change adds the missing files and updates export and install
+commands to make libts generate a proper CMake package.
+
+From now on an external project will be able to use find_module() to
+integrate libts into its build.
+
+Signed-off-by: Gyorgy Szing <Gyorgy.Szing@arm.com>
+Change-Id: I9e86e02030f6fb3c86af45252110f939cb82670c
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+
+diff --git a/components/messaging/ffa/libsp/component.cmake b/components/messaging/ffa/libsp/component.cmake
+index a21c630..ec4cf6c 100644
+--- a/components/messaging/ffa/libsp/component.cmake
++++ b/components/messaging/ffa/libsp/component.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -21,7 +21,7 @@
+ 	"${CMAKE_CURRENT_LIST_DIR}/sp_rxtx.c"
+ 	)
+ 
+-set_property(TARGET ${TGT} PROPERTY PUBLIC_HEADER
++set_property(TARGET ${TGT} APPEND PROPERTY PUBLIC_HEADER
+ 	${CMAKE_CURRENT_LIST_DIR}/include/ffa_api.h
+ 	${CMAKE_CURRENT_LIST_DIR}/include/ffa_api_defines.h
+ 	${CMAKE_CURRENT_LIST_DIR}/include/ffa_api_types.h
+@@ -49,5 +49,5 @@
+ target_include_directories(${TGT}
+ 	 PUBLIC
+ 		"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
+-		"$<INSTALL_INTERFACE:include>"
++		"$<INSTALL_INTERFACE:${TS_ENV}/include">
+ 	)
+diff --git a/components/rpc/common/interface/component.cmake b/components/rpc/common/interface/component.cmake
+index d567602..e4b2477 100644
+--- a/components/rpc/common/interface/component.cmake
++++ b/components/rpc/common/interface/component.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -8,11 +8,12 @@
+ 	message(FATAL_ERROR "mandatory parameter TGT is not defined.")
+ endif()
+ 
+-set_property(TARGET ${TGT} PROPERTY RPC_CALLER_PUBLIC_HEADER_FILES
++set_property(TARGET ${TGT} APPEND PROPERTY PUBLIC_HEADER
+ 	"${CMAKE_CURRENT_LIST_DIR}/rpc_caller.h"
+ 	"${CMAKE_CURRENT_LIST_DIR}/rpc_status.h"
+ 	)
+ 
+ target_include_directories(${TGT} PUBLIC
+-	"${CMAKE_CURRENT_LIST_DIR}"
++	"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>"
++	"$<INSTALL_INTERFACE:${TS_ENV}/include>"
+ 	)
+diff --git a/components/service/locator/interface/component.cmake b/components/service/locator/interface/component.cmake
+index b5aefa3..84a4d75 100644
+--- a/components/service/locator/interface/component.cmake
++++ b/components/service/locator/interface/component.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -8,10 +8,11 @@
+ 	message(FATAL_ERROR "mandatory parameter TGT is not defined.")
+ endif()
+ 
+-set_property(TARGET ${TGT} PROPERTY SERVICE_LOCATOR_PUBLIC_HEADER_FILES
++set_property(TARGET ${TGT} APPEND PROPERTY PUBLIC_HEADER
+ 	"${CMAKE_CURRENT_LIST_DIR}/service_locator.h"
+ 	)
+ 
+ target_include_directories(${TGT} PUBLIC
+-	"${CMAKE_CURRENT_LIST_DIR}"
++	"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>"
++	"$<INSTALL_INTERFACE:${TS_ENV}/include>"
+ 	)
+diff --git a/deployments/libts/libts-import.cmake b/deployments/libts/libts-import.cmake
+index dcabc45..fcfc2ac 100644
+--- a/deployments/libts/libts-import.cmake
++++ b/deployments/libts/libts-import.cmake
+@@ -11,48 +11,18 @@
+ # CMake build file allows libts to be built and installed into the binary
+ # directory of the dependent.
+ #-------------------------------------------------------------------------------
+-
+-# Determine the number of processes to run while running parallel builds.
+-# Pass -DPROCESSOR_COUNT=<n> to cmake to override.
+-if(NOT DEFINED PROCESSOR_COUNT)
+-	include(ProcessorCount)
+-	ProcessorCount(PROCESSOR_COUNT)
+-	set(PROCESSOR_COUNT ${PROCESSOR_COUNT} CACHE STRING "Number of cores to use for parallel builds.")
++option(CFG_FORCE_PREBUILT_LIBTS Off)
++# Try to find a pre-build package.
++find_package(libts "1.0.0" QUIET)
++if(NOT libts_FOUND)
++	if (CFG_FORCE_PREBUILT_LIBTS)
++		string(CONCAT _msg "find_package() failed to find the \"libts\" package. Please set libts_DIR or"
++		                   " CMAKE_FIND_ROOT_PATH properly.\n"
++						   "If you wish to debug the search process pass -DCMAKE_FIND_DEBUG_MODE=ON to cmake.")
++		message(FATAL_ERROR ${_msg})
++	endif()
++	# If not successful, build libts as a sub-project.
++	add_subdirectory(${TS_ROOT}/deployments/libts/${TS_ENV} ${CMAKE_BINARY_DIR}/libts)
++else()
++	message(STATUS "Using prebuilt libts from ${libts_DIR}")
+ endif()
+-
+-set(LIBTS_INSTALL_PATH "${CMAKE_CURRENT_BINARY_DIR}/libts_install" CACHE PATH "libts installation directory")
+-set(LIBTS_PACKAGE_PATH "${LIBTS_INSTALL_PATH}/lib/cmake" CACHE PATH "libts CMake package directory")
+-set(LIBTS_SOURCE_DIR "${TS_ROOT}/deployments/libts/${TS_ENV}" CACHE PATH "libts source directory")
+-set(LIBTS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/libts-build" CACHE PATH "libts binary directory")
+-
+-file(MAKE_DIRECTORY ${LIBTS_BINARY_DIR})
+-
+-#Configure the library
+-execute_process(COMMAND
+-	${CMAKE_COMMAND}
+-		-DCMAKE_INSTALL_PREFIX=${LIBTS_INSTALL_PATH}
+-		-GUnix\ Makefiles
+-		-S ${LIBTS_SOURCE_DIR}
+-		-B ${LIBTS_BINARY_DIR}
+-	RESULT_VARIABLE _exec_error
+-)
+-
+-if (_exec_error)
+-	message(FATAL_ERROR "Configuration step of libts failed with ${_exec_error}.")
+-endif()
+-
+-#Build the library
+-execute_process(COMMAND
+-	${CMAKE_COMMAND} --build ${LIBTS_BINARY_DIR} --parallel ${PROCESSOR_COUNT} --target install
+-	RESULT_VARIABLE _exec_error
+-)
+-
+-if (_exec_error)
+-	message(FATAL_ERROR "Build step of libts failed with ${_exec_error}.")
+-endif()
+-
+-# Import the built library
+-include(${LIBTS_INSTALL_PATH}/${TS_ENV}/lib/cmake/libts_targets.cmake)
+-add_library(libts SHARED IMPORTED)
+-set_property(TARGET libts PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${LIBTS_INSTALL_PATH}/${TS_ENV}/include")
+-set_property(TARGET libts PROPERTY IMPORTED_LOCATION "${LIBTS_INSTALL_PATH}/${TS_ENV}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}ts${CMAKE_SHARED_LIBRARY_SUFFIX}")
+diff --git a/deployments/libts/libts.cmake b/deployments/libts/libts.cmake
+index 6463ca1..7f278fd 100644
+--- a/deployments/libts/libts.cmake
++++ b/deployments/libts/libts.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -18,12 +18,11 @@
+ 					MAJOR _major MINOR _minor PATCH _patch)
+ set_target_properties(ts PROPERTIES VERSION "${_major}.${_minor}.${_patch}")
+ set_target_properties(ts PROPERTIES SOVERSION "${_major}")
+-unset(_major)
+-unset(_minor)
+-unset(_patch)
++
++add_library(libts::ts ALIAS ts)
+ 
+ #-------------------------------------------------------------------------------
+-#  Components that are common accross all deployments
++#  Components that are common across all deployments
+ #
+ #-------------------------------------------------------------------------------
+ add_components(
+@@ -53,19 +52,13 @@
+ #-------------------------------------------------------------------------------
+ include(${TS_ROOT}/tools/cmake/common/ExportLibrary.cmake REQUIRED)
+ 
+-# Select public header files to export
+-get_property(_rpc_caller_public_header_files TARGET ts
+-	PROPERTY RPC_CALLER_PUBLIC_HEADER_FILES
+-)
+-
+-get_property(_service_locator_public_header_files TARGET ts
+-	PROPERTY SERVICE_LOCATOR_PUBLIC_HEADER_FILES
+-)
++get_property(_tmp TARGET ts PROPERTY PUBLIC_HEADER)
+ 
+ # Exports library information in preparation for install
+ export_library(
+ 	TARGET "ts"
+ 	LIB_NAME "libts"
++	PKG_CONFIG_FILE "${CMAKE_CURRENT_LIST_DIR}/libtsConfig.cmake.in"
+ 	INTERFACE_FILES
+ 		${_rpc_caller_public_header_files}
+ 		${_service_locator_public_header_files}
+diff --git a/deployments/libts/libtsConfig.cmake.in b/deployments/libts/libtsConfig.cmake.in
+new file mode 100644
+index 0000000..4860135
+--- /dev/null
++++ b/deployments/libts/libtsConfig.cmake.in
+@@ -0,0 +1,10 @@
++#
++# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
++#
++# SPDX-License-Identifier: BSD-3-Clause
++#
++
++@PACKAGE_INIT@
++
++include("${CMAKE_CURRENT_LIST_DIR}/libtsTargets.cmake")
++
+diff --git a/tools/cmake/common/ExportLibrary.cmake b/tools/cmake/common/ExportLibrary.cmake
+index fed4e75..4fcf481 100644
+--- a/tools/cmake/common/ExportLibrary.cmake
++++ b/tools/cmake/common/ExportLibrary.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -26,17 +26,29 @@
+ #]===]
+ function(export_library)
+ 	set(options  )
+-	set(oneValueArgs TARGET LIB_NAME)
++	set(oneValueArgs TARGET LIB_NAME PKG_CONFIG_FILE)
+ 	set(multiValueArgs INTERFACE_FILES)
+ 	cmake_parse_arguments(MY_PARAMS "${options}" "${oneValueArgs}"
+ 						"${multiValueArgs}" ${ARGN} )
+ 
+-	if(NOT DEFINED MY_PARAMS_TARGET)
+-		message(FATAL_ERROR "export_library: mandatory parameter TARGET not defined!")
++	foreach(_param IN ITEMS MY_PARAMS_TARGET MY_PARAMS_LIB_NAME MY_PARAMS_PKG_CONFIG_FILE)
++		if(NOT DEFINED ${_param})
++			list(APPEND _miss_params "${_param}" )
++		endif()
++	endforeach()
++
++	if (_miss_params)
++		string(REPLACE ";" ", " _miss_params "${_miss_params}")
++		message(FATAL_ERROR "export_library: mandatory parameter(s) ${_miss_params} not defined!")
+ 	endif()
+-	if(NOT DEFINED MY_PARAMS_LIB_NAME)
+-		message(FATAL_ERROR "export_library: mandatory parameter LIB_NAME not defined!")
+-	endif()
++
++
++	string(TOUPPER "${MY_PARAMS_LIB_NAME}" UC_LIB_NAME)
++	string(TOLOWER "${MY_PARAMS_LIB_NAME}" LC_LIB_NAME)
++	string(SUBSTRING "${UC_LIB_NAME}" 0 1 CAP_LIB_NAME)
++	string(SUBSTRING "${LC_LIB_NAME}" 1 -1 _tmp)
++	string(APPEND CAP_LIB_NAME "${_tmp}")
++
+ 
+ 	# Set default install location if none specified
+ 	if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+@@ -55,6 +67,42 @@
+ 			DESTINATION ${TS_ENV}/include
+ 	)
+ 
++	# Create a config file package.
++	include(CMakePackageConfigHelpers)
++	get_target_property(_ver ${MY_PARAMS_TARGET} VERSION)
++	write_basic_package_version_file(
++		"${CMAKE_CURRENT_BINARY_DIR}/${LC_LIB_NAME}ConfigVersion.cmake"
++		VERSION "${_ver}"
++		COMPATIBILITY SameMajorVersion
++	)
++
++	# Create targets file.
++	export(
++		EXPORT
++			${MY_PARAMS_LIB_NAME}_targets
++		FILE
++			"${CMAKE_CURRENT_BINARY_DIR}/${MY_PARAMS_LIB_NAME}Targets.cmake"
++		NAMESPACE
++			${MY_PARAMS_LIB_NAME}::
++	)
++
++	# Finalize config file.
++	# Config package location relative to install root.
++	set(ConfigPackageLocation ${TS_ENV}/lib/cmake)
++	# Config package location ??
++	get_filename_component(ConfigPackageLocationRel ${ConfigPackageLocation} PATH)
++
++	get_filename_component(_configured_pkgcfg_name "${MY_PARAMS_PKG_CONFIG_FILE}" NAME_WLE)
++	set(_configured_pkgcfg_name "${CMAKE_CURRENT_BINARY_DIR}/${_configured_pkgcfg_name}")
++	configure_package_config_file(
++			"${MY_PARAMS_PKG_CONFIG_FILE}"
++			"${_configured_pkgcfg_name}"
++		PATH_VARS
++
++		INSTALL_DESTINATION
++			${ConfigPackageLocationRel}
++	)
++
+ 	# Install library header files files
+ 	install(
+ 		FILES ${MY_PARAMS_INTERFACE_FILES}
+@@ -64,9 +112,21 @@
+ 	# Install the export details
+ 	install(
+ 		EXPORT ${MY_PARAMS_LIB_NAME}_targets
+-		FILE ${MY_PARAMS_LIB_NAME}_targets.cmake
++		FILE ${MY_PARAMS_LIB_NAME}Targets.cmake
+ 		NAMESPACE ${MY_PARAMS_LIB_NAME}::
+-		DESTINATION ${TS_ENV}/lib/cmake
++		DESTINATION ${ConfigPackageLocation}
+ 		COMPONENT ${MY_PARAMS_LIB_NAME}
+ 	)
++
++
++	# install config and version files
++	install(
++		FILES
++			"${_configured_pkgcfg_name}"
++			"${CMAKE_CURRENT_BINARY_DIR}/${LC_LIB_NAME}ConfigVersion.cmake"
++		DESTINATION
++			${ConfigPackageLocation}
++		COMPONENT
++			${MY_PARAMS_LIB_NAME}
++	)
+ endfunction()
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0011-Adapt-deployments-to-libts-changes.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0011-Adapt-deployments-to-libts-changes.patch
new file mode 100644
index 0000000..34b1035
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0011-Adapt-deployments-to-libts-changes.patch
@@ -0,0 +1,197 @@
+From dfadca01ff028f9fc935937cdaf92b0effff2b90 Mon Sep 17 00:00:00 2001
+From: Gyorgy Szing <Gyorgy.Szing@arm.com>
+Date: Wed, 20 Jul 2022 16:49:39 +0000
+Subject: [PATCH] Adapt deployments to libts changes
+
+Update deployments and restore compatibility to libts build-system
+interface changes.
+
+Signed-off-by: Gyorgy Szing <Gyorgy.Szing@arm.com>
+Change-Id: Iffd38f92fe628a2a6aaff60224986f22ec3a8a2a
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+
+diff --git a/deployments/platform-inspect/platform-inspect.cmake b/deployments/platform-inspect/platform-inspect.cmake
+index ef4ba4b..b1b316d 100644
+--- a/deployments/platform-inspect/platform-inspect.cmake
++++ b/deployments/platform-inspect/platform-inspect.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -12,14 +12,14 @@
+ 
+ #-------------------------------------------------------------------------------
+ #  Use libts for locating and accessing trusted services. An appropriate version
+-#  of libts will be imported for the enviroment in which platform-inspect is
++#  of libts will be imported for the environment in which platform-inspect is
+ #  built.
+ #-------------------------------------------------------------------------------
+ include(${TS_ROOT}/deployments/libts/libts-import.cmake)
+-target_link_libraries(platform-inspect PRIVATE libts)
++target_link_libraries(platform-inspect PRIVATE libts::ts)
+ 
+ #-------------------------------------------------------------------------------
+-#  Components that are common accross all deployments
++#  Components that are common across all deployments
+ #
+ #-------------------------------------------------------------------------------
+ add_components(
+diff --git a/deployments/psa-api-test/psa-api-test.cmake b/deployments/psa-api-test/psa-api-test.cmake
+index d58620f..5c3469c 100644
+--- a/deployments/psa-api-test/psa-api-test.cmake
++++ b/deployments/psa-api-test/psa-api-test.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -12,14 +12,14 @@
+ 
+ #-------------------------------------------------------------------------------
+ #  Use libts for locating and accessing services. An appropriate version of
+-#  libts will be imported for the enviroment in which service tests are
++#  libts will be imported for the environment in which service tests are
+ #  deployed.
+ #-------------------------------------------------------------------------------
+ include(${TS_ROOT}/deployments/libts/libts-import.cmake)
+-target_link_libraries(${PROJECT_NAME} PRIVATE libts)
++target_link_libraries(${PROJECT_NAME} PRIVATE libts::ts)
+ 
+ #-------------------------------------------------------------------------------
+-#  Components that are common accross all deployments
++#  Components that are common across all deployments
+ #
+ #-------------------------------------------------------------------------------
+ add_components(
+diff --git a/deployments/ts-demo/ts-demo.cmake b/deployments/ts-demo/ts-demo.cmake
+index 3e7cca0..9fd8585 100644
+--- a/deployments/ts-demo/ts-demo.cmake
++++ b/deployments/ts-demo/ts-demo.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -13,11 +13,11 @@
+ 
+ #-------------------------------------------------------------------------------
+ #  Use libts for locating and accessing services. An appropriate version of
+-#  libts will be imported for the enviroment in which service tests are
++#  libts will be imported for the environment in which service tests are
+ #  deployed.
+ #-------------------------------------------------------------------------------
+ include(${TS_ROOT}/deployments/libts/libts-import.cmake)
+-target_link_libraries(ts-demo PRIVATE libts)
++target_link_libraries(ts-demo PRIVATE libts::ts)
+ 
+ #-------------------------------------------------------------------------------
+ #  Common main for all deployments
+@@ -28,7 +28,7 @@
+ )
+ 
+ #-------------------------------------------------------------------------------
+-#  Components that are common accross all deployments
++#  Components that are common across all deployments
+ #
+ #-------------------------------------------------------------------------------
+ add_components(
+diff --git a/deployments/ts-remote-test/ts-remote-test.cmake b/deployments/ts-remote-test/ts-remote-test.cmake
+index 0f35bb2..c310445 100644
+--- a/deployments/ts-remote-test/ts-remote-test.cmake
++++ b/deployments/ts-remote-test/ts-remote-test.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -13,11 +13,11 @@
+ 
+ #-------------------------------------------------------------------------------
+ #  Use libts for locating and accessing services. An appropriate version of
+-#  libts will be imported for the enviroment in which tests are
++#  libts will be imported for the environment in which tests are
+ #  deployed.
+ #-------------------------------------------------------------------------------
+ include(${TS_ROOT}/deployments/libts/libts-import.cmake)
+-target_link_libraries(ts-remote-test PRIVATE libts)
++target_link_libraries(ts-remote-test PRIVATE libts::ts)
+ 
+ #-------------------------------------------------------------------------------
+ #  Common main for all deployments
+@@ -28,7 +28,7 @@
+ )
+ 
+ #-------------------------------------------------------------------------------
+-#  Components that are common accross all deployments
++#  Components that are common across all deployments
+ #
+ #-------------------------------------------------------------------------------
+ add_components(
+diff --git a/deployments/ts-service-test/ts-service-test.cmake b/deployments/ts-service-test/ts-service-test.cmake
+index 4a8c59c..3e33757 100644
+--- a/deployments/ts-service-test/ts-service-test.cmake
++++ b/deployments/ts-service-test/ts-service-test.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -8,19 +8,19 @@
+ #-------------------------------------------------------------------------------
+ #  The base build file shared between deployments of 'ts-service-test' for
+ #  different environments.  Used for running end-to-end service-level tests
+-#  where test cases excerise trusted service client interfaces.
++#  where test cases exercise trusted service client interfaces.
+ #-------------------------------------------------------------------------------
+ 
+ #-------------------------------------------------------------------------------
+ #  Use libts for locating and accessing services. An appropriate version of
+-#  libts will be imported for the enviroment in which service tests are
++#  libts will be imported for the environment in which service tests are
+ #  deployed.
+ #-------------------------------------------------------------------------------
+ include(${TS_ROOT}/deployments/libts/libts-import.cmake)
+-target_link_libraries(ts-service-test PRIVATE libts)
++target_link_libraries(ts-service-test PRIVATE libts::ts)
+ 
+ #-------------------------------------------------------------------------------
+-#  Components that are common accross all deployments
++#  Components that are common across all deployments
+ #
+ #-------------------------------------------------------------------------------
+ add_components(
+diff --git a/deployments/uefi-test/uefi-test.cmake b/deployments/uefi-test/uefi-test.cmake
+index ea678d0..2f47891 100644
+--- a/deployments/uefi-test/uefi-test.cmake
++++ b/deployments/uefi-test/uefi-test.cmake
+@@ -1,5 +1,5 @@
+ #-------------------------------------------------------------------------------
+-# Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++# Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -18,7 +18,7 @@
+ #  deployed.
+ #-------------------------------------------------------------------------------
+ include(${TS_ROOT}/deployments/libts/libts-import.cmake)
+-target_link_libraries(uefi-test PRIVATE libts)
++target_link_libraries(uefi-test PRIVATE libts::ts)
+ 
+ #-------------------------------------------------------------------------------
+ #  Components that are common accross all deployments
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0012-psa-arch-test-toolchain.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0012-psa-arch-test-toolchain.patch
new file mode 100644
index 0000000..7d07fca
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0012-psa-arch-test-toolchain.patch
@@ -0,0 +1,40 @@
+From 1ce8fcde17a6d2c5cb2e00901d485c91eda776fd Mon Sep 17 00:00:00 2001
+From: Anton Antonov <Anton.Antonov@arm.com>
+Date: Wed, 31 Aug 2022 17:09:17 +0100
+Subject: [PATCH 4/4] Pass Yocto build settings to psa-arch-tests native build
+
+PSA-arch-tests need to build a native executable as a part of target build.
+The patch defines correct toolchain settings for native builds.
+
+Upstream-Status: Inappropriate [Yocto build specific change]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+---
+ .../psa_arch_tests/modify_attest_config.patch     | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/external/psa_arch_tests/modify_attest_config.patch b/external/psa_arch_tests/modify_attest_config.patch
+index ebe8c44..b5d5e88 100644
+--- a/external/psa_arch_tests/modify_attest_config.patch
++++ b/external/psa_arch_tests/modify_attest_config.patch
+@@ -11,3 +11,18 @@ index 6112ba7..1cdf581 100755
+  
+  /*
+   * Include of PSA defined Header files
++diff --git a/api-tests/tools/scripts/target_cfg/CMakeLists.txt b/api-tests/tools/scripts/target_cfg/CMakeLists.txt
++index 259eb9c..fec1fb8 100644
++--- a/api-tests/tools/scripts/target_cfg/CMakeLists.txt
+++++ b/api-tests/tools/scripts/target_cfg/CMakeLists.txt
++@@ -26,7 +26,9 @@ include("common/CMakeSettings")
++ include("common/Utils")
++ 
++ # Causes toolchain to be re-evaluated
++-unset(ENV{CC})
+++set(ENV{CC} $ENV{BUILD_CC})
+++set(ENV{CFLAGS} $ENV{BUILD_CFLAGS})
+++set(ENV{LDFLAGS} $ENV{BUILD_LDFLAGS})
++ 
++ # Let the CMake look for C compiler
++ project(TargetConfigGen LANGUAGES C)
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0017-Move-libsp-mocks-into-separate-component.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0017-Move-libsp-mocks-into-separate-component.patch
new file mode 100644
index 0000000..d6da370
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0017-Move-libsp-mocks-into-separate-component.patch
@@ -0,0 +1,349 @@
+From 2cd802030ab59787a34c0f6684c16848befabafa Mon Sep 17 00:00:00 2001
+From: Imre Kis <imre.kis@arm.com>
+Date: Wed, 15 Jun 2022 12:47:37 +0200
+Subject: [PATCH 17/24] Move libsp mocks into separate component
+
+Enable deployments to include libsp mocks in tests by simply adding
+the newly created libsp mock component.
+
+Signed-off-by: Imre Kis <imre.kis@arm.com>
+Change-Id: I40805fd49362c6cc71b5b34f9ba888d27ce01ed8
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ .../messaging/ffa/libsp/mock/component.cmake  | 27 ++++++++++
+ .../ffa/libsp/{test => mock}/mock_assert.cpp  |  0
+ .../ffa/libsp/{test => mock}/mock_assert.h    |  0
+ .../ffa/libsp/{test => mock}/mock_ffa_api.cpp |  0
+ .../ffa/libsp/{test => mock}/mock_ffa_api.h   |  0
+ .../{test => mock}/mock_ffa_internal_api.cpp  |  0
+ .../{test => mock}/mock_ffa_internal_api.h    |  0
+ .../ffa/libsp/{test => mock}/mock_sp_rxtx.cpp |  0
+ .../ffa/libsp/{test => mock}/mock_sp_rxtx.h   |  0
+ .../{ => mock}/test/test_mock_assert.cpp      |  0
+ .../{ => mock}/test/test_mock_ffa_api.cpp     |  0
+ .../test/test_mock_ffa_internal_api.cpp       |  0
+ .../{ => mock}/test/test_mock_sp_rxtx.cpp     |  0
+ components/messaging/ffa/libsp/tests.cmake    | 51 +++++++++++--------
+ .../mm_communicate/endpoint/sp/tests.cmake    |  6 +--
+ .../frontend/mm_communicate/tests.cmake       |  6 +--
+ 16 files changed, 64 insertions(+), 26 deletions(-)
+ create mode 100644 components/messaging/ffa/libsp/mock/component.cmake
+ rename components/messaging/ffa/libsp/{test => mock}/mock_assert.cpp (100%)
+ rename components/messaging/ffa/libsp/{test => mock}/mock_assert.h (100%)
+ rename components/messaging/ffa/libsp/{test => mock}/mock_ffa_api.cpp (100%)
+ rename components/messaging/ffa/libsp/{test => mock}/mock_ffa_api.h (100%)
+ rename components/messaging/ffa/libsp/{test => mock}/mock_ffa_internal_api.cpp (100%)
+ rename components/messaging/ffa/libsp/{test => mock}/mock_ffa_internal_api.h (100%)
+ rename components/messaging/ffa/libsp/{test => mock}/mock_sp_rxtx.cpp (100%)
+ rename components/messaging/ffa/libsp/{test => mock}/mock_sp_rxtx.h (100%)
+ rename components/messaging/ffa/libsp/{ => mock}/test/test_mock_assert.cpp (100%)
+ rename components/messaging/ffa/libsp/{ => mock}/test/test_mock_ffa_api.cpp (100%)
+ rename components/messaging/ffa/libsp/{ => mock}/test/test_mock_ffa_internal_api.cpp (100%)
+ rename components/messaging/ffa/libsp/{ => mock}/test/test_mock_sp_rxtx.cpp (100%)
+
+diff --git a/components/messaging/ffa/libsp/mock/component.cmake b/components/messaging/ffa/libsp/mock/component.cmake
+new file mode 100644
+index 0000000..03b8006
+--- /dev/null
++++ b/components/messaging/ffa/libsp/mock/component.cmake
+@@ -0,0 +1,27 @@
++#-------------------------------------------------------------------------------
++# Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
++#
++# SPDX-License-Identifier: BSD-3-Clause
++#
++#-------------------------------------------------------------------------------
++if (NOT DEFINED TGT)
++	message(FATAL_ERROR "mandatory parameter TGT is not defined.")
++endif()
++
++target_sources(${TGT} PRIVATE
++	"${CMAKE_CURRENT_LIST_DIR}/mock_assert.cpp"
++	"${CMAKE_CURRENT_LIST_DIR}/mock_ffa_api.cpp"
++	"${CMAKE_CURRENT_LIST_DIR}/mock_ffa_internal_api.cpp"
++	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_rxtx.cpp"
++	)
++
++target_include_directories(${TGT}
++	PUBLIC
++		${CMAKE_CURRENT_LIST_DIR}
++		${CMAKE_CURRENT_LIST_DIR}/../include
++)
++
++target_compile_definitions(${TGT}
++	PUBLIC
++		"ARM64=1"
++)
+\ No newline at end of file
+diff --git a/components/messaging/ffa/libsp/test/mock_assert.cpp b/components/messaging/ffa/libsp/mock/mock_assert.cpp
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/mock_assert.cpp
+rename to components/messaging/ffa/libsp/mock/mock_assert.cpp
+diff --git a/components/messaging/ffa/libsp/test/mock_assert.h b/components/messaging/ffa/libsp/mock/mock_assert.h
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/mock_assert.h
+rename to components/messaging/ffa/libsp/mock/mock_assert.h
+diff --git a/components/messaging/ffa/libsp/test/mock_ffa_api.cpp b/components/messaging/ffa/libsp/mock/mock_ffa_api.cpp
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/mock_ffa_api.cpp
+rename to components/messaging/ffa/libsp/mock/mock_ffa_api.cpp
+diff --git a/components/messaging/ffa/libsp/test/mock_ffa_api.h b/components/messaging/ffa/libsp/mock/mock_ffa_api.h
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/mock_ffa_api.h
+rename to components/messaging/ffa/libsp/mock/mock_ffa_api.h
+diff --git a/components/messaging/ffa/libsp/test/mock_ffa_internal_api.cpp b/components/messaging/ffa/libsp/mock/mock_ffa_internal_api.cpp
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/mock_ffa_internal_api.cpp
+rename to components/messaging/ffa/libsp/mock/mock_ffa_internal_api.cpp
+diff --git a/components/messaging/ffa/libsp/test/mock_ffa_internal_api.h b/components/messaging/ffa/libsp/mock/mock_ffa_internal_api.h
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/mock_ffa_internal_api.h
+rename to components/messaging/ffa/libsp/mock/mock_ffa_internal_api.h
+diff --git a/components/messaging/ffa/libsp/test/mock_sp_rxtx.cpp b/components/messaging/ffa/libsp/mock/mock_sp_rxtx.cpp
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/mock_sp_rxtx.cpp
+rename to components/messaging/ffa/libsp/mock/mock_sp_rxtx.cpp
+diff --git a/components/messaging/ffa/libsp/test/mock_sp_rxtx.h b/components/messaging/ffa/libsp/mock/mock_sp_rxtx.h
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/mock_sp_rxtx.h
+rename to components/messaging/ffa/libsp/mock/mock_sp_rxtx.h
+diff --git a/components/messaging/ffa/libsp/test/test_mock_assert.cpp b/components/messaging/ffa/libsp/mock/test/test_mock_assert.cpp
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/test_mock_assert.cpp
+rename to components/messaging/ffa/libsp/mock/test/test_mock_assert.cpp
+diff --git a/components/messaging/ffa/libsp/test/test_mock_ffa_api.cpp b/components/messaging/ffa/libsp/mock/test/test_mock_ffa_api.cpp
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/test_mock_ffa_api.cpp
+rename to components/messaging/ffa/libsp/mock/test/test_mock_ffa_api.cpp
+diff --git a/components/messaging/ffa/libsp/test/test_mock_ffa_internal_api.cpp b/components/messaging/ffa/libsp/mock/test/test_mock_ffa_internal_api.cpp
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/test_mock_ffa_internal_api.cpp
+rename to components/messaging/ffa/libsp/mock/test/test_mock_ffa_internal_api.cpp
+diff --git a/components/messaging/ffa/libsp/test/test_mock_sp_rxtx.cpp b/components/messaging/ffa/libsp/mock/test/test_mock_sp_rxtx.cpp
+similarity index 100%
+rename from components/messaging/ffa/libsp/test/test_mock_sp_rxtx.cpp
+rename to components/messaging/ffa/libsp/mock/test/test_mock_sp_rxtx.cpp
+diff --git a/components/messaging/ffa/libsp/tests.cmake b/components/messaging/ffa/libsp/tests.cmake
+index d851442..296ae46 100644
+--- a/components/messaging/ffa/libsp/tests.cmake
++++ b/components/messaging/ffa/libsp/tests.cmake
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2020-2021, Arm Limited. All rights reserved.
++# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -9,10 +9,11 @@ include(UnitTest)
+ unit_test_add_suite(
+ 	NAME libsp_mock_assert
+ 	SOURCES
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_assert.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/test_mock_assert.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_assert.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/test/test_mock_assert.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -21,10 +22,11 @@ unit_test_add_suite(
+ unit_test_add_suite(
+ 	NAME libsp_mock_ffa_internal_api
+ 	SOURCES
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_ffa_internal_api.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/test_mock_ffa_internal_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_ffa_internal_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/test/test_mock_ffa_internal_api.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -35,12 +37,13 @@ unit_test_add_suite(
+ 	SOURCES
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_ffa_api.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_ffa_memory_descriptors.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_ffa_internal_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_ffa_internal_api.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/ffa.c
+ 		${CMAKE_CURRENT_LIST_DIR}/ffa_memory_descriptors.c
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_assert.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_assert.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -49,10 +52,11 @@ unit_test_add_suite(
+ unit_test_add_suite(
+ 	NAME libsp_mock_ffa_api
+ 	SOURCES
+-		${CMAKE_CURRENT_LIST_DIR}/test/test_mock_ffa_api.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_ffa_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/test/test_mock_ffa_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_ffa_api.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -62,10 +66,11 @@ unit_test_add_suite(
+ 	NAME libsp_sp_rxtx
+ 	SOURCES
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_sp_rxtx.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_ffa_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_ffa_api.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/sp_rxtx.c
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -74,10 +79,11 @@ unit_test_add_suite(
+ unit_test_add_suite(
+ 	NAME libsp_mock_sp_rxtx
+ 	SOURCES
+-		${CMAKE_CURRENT_LIST_DIR}/test/test_mock_sp_rxtx.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_sp_rxtx.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/test/test_mock_sp_rxtx.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_sp_rxtx.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -88,10 +94,11 @@ unit_test_add_suite(
+ 	SOURCES
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_sp_discovery.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/sp_discovery.c
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_ffa_api.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_sp_rxtx.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_ffa_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_sp_rxtx.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -103,11 +110,12 @@ unit_test_add_suite(
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_sp_memory_management.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/sp_memory_management.c
+ 		${CMAKE_CURRENT_LIST_DIR}/ffa_memory_descriptors.c
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_assert.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_ffa_api.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_sp_rxtx.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_assert.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_ffa_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_sp_rxtx.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -119,9 +127,10 @@ unit_test_add_suite(
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_sp_memory_management_internals.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/test/sp_memory_management_internals.yml
+ 		${CMAKE_CURRENT_LIST_DIR}/ffa_memory_descriptors.c
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_assert.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_assert.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -131,10 +140,11 @@ unit_test_add_suite(
+ 	NAME libsp_sp_messaging
+ 	SOURCES
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_sp_messaging.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_ffa_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_ffa_api.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/sp_messaging.c
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+@@ -144,11 +154,12 @@ unit_test_add_suite(
+ 	NAME libsp_sp_messaging_with_routing_extension
+ 	SOURCES
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_sp_messaging.cpp
+-		${CMAKE_CURRENT_LIST_DIR}/test/mock_ffa_api.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_ffa_api.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/sp_messaging.c
+ 		${CMAKE_CURRENT_LIST_DIR}/ffa_direct_msg_routing_extension.c
+ 	INCLUDE_DIRECTORIES
+ 		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+diff --git a/components/rpc/mm_communicate/endpoint/sp/tests.cmake b/components/rpc/mm_communicate/endpoint/sp/tests.cmake
+index 318f14d..c68a0c7 100644
+--- a/components/rpc/mm_communicate/endpoint/sp/tests.cmake
++++ b/components/rpc/mm_communicate/endpoint/sp/tests.cmake
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2021, Arm Limited. All rights reserved.
++# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -13,12 +13,12 @@ unit_test_add_suite(
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_mm_communicate_call_ep.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/test/mock_mm_service.cpp
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_mock_mm_service.cpp
+-		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/test/mock_assert.cpp
++		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/mock/mock_assert.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${UNIT_TEST_PROJECT_PATH}
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/include
+-		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/test
++		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/rpc/common/interface
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+diff --git a/components/service/smm_variable/frontend/mm_communicate/tests.cmake b/components/service/smm_variable/frontend/mm_communicate/tests.cmake
+index d1f930c..50b0b9a 100644
+--- a/components/service/smm_variable/frontend/mm_communicate/tests.cmake
++++ b/components/service/smm_variable/frontend/mm_communicate/tests.cmake
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2021, Arm Limited. All rights reserved.
++# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
+ #
+ # SPDX-License-Identifier: BSD-3-Clause
+ #
+@@ -12,13 +12,13 @@ unit_test_add_suite(
+ 		${CMAKE_CURRENT_LIST_DIR}/smm_variable_mm_service.c
+ 		${CMAKE_CURRENT_LIST_DIR}/test/test_smm_variable_mm_service.cpp
+ 		${UNIT_TEST_PROJECT_PATH}/components/rpc/common/test/mock_rpc_interface.cpp
+-		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/test/mock_assert.cpp
++		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/mock/mock_assert.cpp
+ 	INCLUDE_DIRECTORIES
+ 		${UNIT_TEST_PROJECT_PATH}
+ 		${UNIT_TEST_PROJECT_PATH}/components/rpc/mm_communicate/endpoint/sp
+ 		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
+ 		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/include
+-		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/test
++		${UNIT_TEST_PROJECT_PATH}/components/messaging/ffa/libsp/mock
+ 		${UNIT_TEST_PROJECT_PATH}/components/rpc/common/interface
+ 	COMPILE_DEFINITIONS
+ 		-DARM64
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0018-Add-mock-for-libsp-sp_discovery.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0018-Add-mock-for-libsp-sp_discovery.patch
new file mode 100644
index 0000000..b385b7a
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0018-Add-mock-for-libsp-sp_discovery.patch
@@ -0,0 +1,339 @@
+From e9ff55c03e06c044eb9c13f2a3315bf7e35f3659 Mon Sep 17 00:00:00 2001
+From: Imre Kis <imre.kis@arm.com>
+Date: Fri, 17 Jun 2022 13:51:21 +0200
+Subject: [PATCH 18/24] Add mock for libsp/sp_discovery
+
+Add mock_sp_discovery for mocking sp_discovery part of libsp.
+
+Signed-off-by: Imre Kis <imre.kis@arm.com>
+Change-Id: I94460dc03dd6dcd27f6865f852cc9a0d85f4b583
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ .../messaging/ffa/libsp/mock/component.cmake  |   1 +
+ .../ffa/libsp/mock/mock_sp_discovery.cpp      | 109 +++++++++++++++++
+ .../ffa/libsp/mock/mock_sp_discovery.h        |  37 ++++++
+ .../mock/test/test_mock_sp_discovery.cpp      | 111 ++++++++++++++++++
+ components/messaging/ffa/libsp/tests.cmake    |  13 ++
+ 5 files changed, 271 insertions(+)
+ create mode 100644 components/messaging/ffa/libsp/mock/mock_sp_discovery.cpp
+ create mode 100644 components/messaging/ffa/libsp/mock/mock_sp_discovery.h
+ create mode 100644 components/messaging/ffa/libsp/mock/test/test_mock_sp_discovery.cpp
+
+diff --git a/components/messaging/ffa/libsp/mock/component.cmake b/components/messaging/ffa/libsp/mock/component.cmake
+index 03b8006..15db85a 100644
+--- a/components/messaging/ffa/libsp/mock/component.cmake
++++ b/components/messaging/ffa/libsp/mock/component.cmake
+@@ -12,6 +12,7 @@ target_sources(${TGT} PRIVATE
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_assert.cpp"
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_ffa_api.cpp"
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_ffa_internal_api.cpp"
++	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_discovery.cpp"
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_rxtx.cpp"
+ 	)
+ 
+diff --git a/components/messaging/ffa/libsp/mock/mock_sp_discovery.cpp b/components/messaging/ffa/libsp/mock/mock_sp_discovery.cpp
+new file mode 100644
+index 0000000..47f4ef7
+--- /dev/null
++++ b/components/messaging/ffa/libsp/mock/mock_sp_discovery.cpp
+@@ -0,0 +1,109 @@
++// SPDX-License-Identifier: BSD-3-Clause
++/*
++ * Copyright (c) 2022, Arm Limited. All rights reserved.
++ */
++
++#include <CppUTestExt/MockSupport.h>
++#include "mock_sp_discovery.h"
++
++void expect_sp_discovery_ffa_version_get(const uint16_t *major,
++					 const uint16_t *minor,
++					 sp_result result)
++{
++	mock()
++		.expectOneCall("sp_discovery_ffa_version_get")
++		.withOutputParameterReturning("major", major, sizeof(*major))
++		.withOutputParameterReturning("minor", minor, sizeof(*minor))
++		.andReturnValue(result);
++}
++
++sp_result sp_discovery_ffa_version_get(uint16_t *major, uint16_t *minor)
++{
++	return mock()
++		.actualCall("sp_discovery_ffa_version_get")
++		.withOutputParameter("major", major)
++		.withOutputParameter("minor", minor)
++		.returnIntValue();
++}
++
++void expect_sp_discovery_own_id_get(const uint16_t *id, sp_result result)
++{
++	mock()
++		.expectOneCall("sp_discovery_own_id_get")
++		.withOutputParameterReturning("id", id, sizeof(*id))
++		.andReturnValue(result);
++}
++
++sp_result sp_discovery_own_id_get(uint16_t *id)
++{
++	return mock()
++		.actualCall("sp_discovery_own_id_get")
++		.withOutputParameter("id", id)
++		.returnIntValue();
++}
++
++void expect_sp_discovery_partition_id_get(const struct sp_uuid *uuid,
++					  const uint16_t *id, sp_result result)
++{
++	mock()
++		.expectOneCall("sp_discovery_partition_id_get")
++		.withMemoryBufferParameter("uuid", (const unsigned char *)uuid,
++					   sizeof(*uuid))
++		.withOutputParameterReturning("id", id, sizeof(*id))
++		.andReturnValue(result);
++}
++
++sp_result sp_discovery_partition_id_get(const struct sp_uuid *uuid,
++					uint16_t *id)
++{
++	return mock()
++		.actualCall("sp_discovery_partition_id_get")
++		.withMemoryBufferParameter("uuid", (const unsigned char *)uuid,
++					   sizeof(*uuid))
++		.withOutputParameter("id", id)
++		.returnIntValue();
++}
++
++void expect_sp_discovery_partition_info_get(const struct sp_uuid *uuid,
++					  const struct sp_partition_info *info,
++					  sp_result result)
++{
++	mock()
++		.expectOneCall("sp_discovery_partition_info_get")
++		.withMemoryBufferParameter("uuid", (const unsigned char *)uuid,
++					   sizeof(*uuid))
++		.withOutputParameterReturning("info", info, sizeof(*info))
++		.andReturnValue(result);
++}
++
++sp_result sp_discovery_partition_info_get(const struct sp_uuid *uuid,
++					  struct sp_partition_info *info)
++{
++	return mock()
++		.actualCall("sp_discovery_partition_info_get")
++		.withMemoryBufferParameter("uuid", (const unsigned char *)uuid,
++					   sizeof(*uuid))
++		.withOutputParameter("info", info)
++		.returnIntValue();
++}
++
++void expect_sp_discovery_partition_info_get_all(const struct sp_partition_info info[],
++						const uint32_t *count,
++						sp_result result)
++{
++	mock()
++		.expectOneCall("sp_discovery_partition_info_get_all")
++		.withOutputParameterReturning("info", info, sizeof(*info) * *count)
++		.withOutputParameterReturning("count", count, sizeof(*count))
++		.andReturnValue(result);
++}
++
++sp_result sp_discovery_partition_info_get_all(struct sp_partition_info info[],
++					      uint32_t *count)
++{
++	return mock()
++		.actualCall("sp_discovery_partition_info_get_all")
++		.withOutputParameter("info", info)
++		.withOutputParameter("count", count)
++		.returnIntValue();
++}
+diff --git a/components/messaging/ffa/libsp/mock/mock_sp_discovery.h b/components/messaging/ffa/libsp/mock/mock_sp_discovery.h
+new file mode 100644
+index 0000000..a71ce18
+--- /dev/null
++++ b/components/messaging/ffa/libsp/mock/mock_sp_discovery.h
+@@ -0,0 +1,37 @@
++/* SPDX-License-Identifier: BSD-3-Clause */
++/*
++ * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
++ */
++
++#ifndef LIBSP_MOCK_MOCK_SP_DISCOVERY_H_
++#define LIBSP_MOCK_MOCK_SP_DISCOVERY_H_
++
++#include "../include/sp_discovery.h"
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void expect_sp_discovery_ffa_version_get(const uint16_t *major,
++					 const uint16_t *minor,
++					 sp_result result);
++
++void expect_sp_discovery_own_id_get(const uint16_t *id, sp_result result);
++
++void expect_sp_discovery_partition_id_get(const struct sp_uuid *uuid,
++					  const uint16_t *id, sp_result result);
++
++
++void expect_sp_discovery_partition_info_get(const struct sp_uuid *uuid,
++					    const struct sp_partition_info *info,
++					    sp_result result);
++
++void expect_sp_discovery_partition_info_get_all(const struct sp_partition_info info[],
++						const uint32_t *count,
++						sp_result result);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* LIBSP_MOCK_MOCK_SP_DISCOVERY_H_ */
+diff --git a/components/messaging/ffa/libsp/mock/test/test_mock_sp_discovery.cpp b/components/messaging/ffa/libsp/mock/test/test_mock_sp_discovery.cpp
+new file mode 100644
+index 0000000..bb4bf07
+--- /dev/null
++++ b/components/messaging/ffa/libsp/mock/test/test_mock_sp_discovery.cpp
+@@ -0,0 +1,111 @@
++// SPDX-License-Identifier: BSD-3-Clause
++/*
++ * Copyright (c) 2022, Arm Limited. All rights reserved.
++ */
++
++#include <CppUTestExt/MockSupport.h>
++#include <CppUTest/TestHarness.h>
++#include "mock_sp_discovery.h"
++#include <stdint.h>
++#include <stdlib.h>
++
++
++
++
++TEST_GROUP(mock_sp_discovery) {
++	TEST_TEARDOWN()
++	{
++		mock().checkExpectations();
++		mock().clear();
++	}
++
++	static const sp_result result = -1;
++};
++
++TEST(mock_sp_discovery, sp_discovery_ffa_version_get)
++{
++	const uint16_t expected_major = 0xabcd;
++	const uint16_t expected_minor = 0xef01;
++	uint16_t major = 0, minor = 0;
++
++	expect_sp_discovery_ffa_version_get(&expected_major, &expected_minor,
++					    result);
++	LONGS_EQUAL(result, sp_discovery_ffa_version_get(&major, &minor));
++	UNSIGNED_LONGS_EQUAL(expected_major, major);
++	UNSIGNED_LONGS_EQUAL(expected_minor, minor);
++}
++
++TEST(mock_sp_discovery, sp_discovery_own_id_get)
++{
++	const uint16_t expected_id = 0x8765;
++	uint16_t id = 0;
++
++	expect_sp_discovery_own_id_get(&expected_id, result);
++	LONGS_EQUAL(result, sp_discovery_own_id_get(&id));
++	UNSIGNED_LONGS_EQUAL(expected_id, id);
++}
++
++TEST(mock_sp_discovery, sp_discovery_partition_id_get)
++{
++	const struct sp_uuid expected_uuid = {
++		.uuid = {0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
++			 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}};
++	const uint16_t expected_id = 0xc1ca;
++
++	struct sp_uuid uuid = expected_uuid;
++	uint16_t id = 0;
++
++	expect_sp_discovery_partition_id_get(&expected_uuid, &expected_id,
++					       result);
++	LONGS_EQUAL(result, sp_discovery_partition_id_get(&uuid, &id));
++	UNSIGNED_LONGS_EQUAL(expected_id, id);
++}
++
++TEST(mock_sp_discovery, sp_discovery_partition_info_get)
++{
++	const struct sp_uuid expected_uuid = {
++		.uuid = {0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
++			 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef}};
++	const struct sp_partition_info expected_info = {
++		.partition_id = 0x1234,
++		.execution_context_count = 0xffff,
++		.supports_direct_requests = true,
++		.can_send_direct_requests = true,
++		.supports_indirect_requests = false
++	};
++
++	struct sp_uuid uuid = expected_uuid;
++	struct sp_partition_info info = {0};
++
++	expect_sp_discovery_partition_info_get(&expected_uuid, &expected_info,
++					       result);
++	LONGS_EQUAL(result, sp_discovery_partition_info_get(&uuid, &info));
++	MEMCMP_EQUAL(&expected_info, &info, sizeof(&expected_info));
++}
++
++TEST(mock_sp_discovery, sp_discovery_partition_info_get_all)
++{
++	const uint32_t expected_count = 2;
++	const struct sp_partition_info expected_info[expected_count] = {{
++		.partition_id = 0x5678,
++		.execution_context_count = 0x1111,
++		.supports_direct_requests = false,
++		.can_send_direct_requests = false,
++		.supports_indirect_requests = true
++	}, {
++		.partition_id = 0x1234,
++		.execution_context_count = 0xffff,
++		.supports_direct_requests = true,
++		.can_send_direct_requests = true,
++		.supports_indirect_requests = false
++	}};
++
++	struct sp_partition_info info[expected_count] = {0};
++	uint32_t count = 0;
++
++	expect_sp_discovery_partition_info_get_all(expected_info,
++						   &expected_count, result);
++	LONGS_EQUAL(result, sp_discovery_partition_info_get_all(info, &count));
++	MEMCMP_EQUAL(&expected_info, &info, sizeof(&expected_info));
++	UNSIGNED_LONGS_EQUAL(expected_count, count);
++}
+\ No newline at end of file
+diff --git a/components/messaging/ffa/libsp/tests.cmake b/components/messaging/ffa/libsp/tests.cmake
+index 296ae46..7b52248 100644
+--- a/components/messaging/ffa/libsp/tests.cmake
++++ b/components/messaging/ffa/libsp/tests.cmake
+@@ -104,6 +104,19 @@ unit_test_add_suite(
+ 		-DARM64
+ )
+ 
++unit_test_add_suite(
++	NAME libsp_mock_sp_discovery
++	SOURCES
++		${CMAKE_CURRENT_LIST_DIR}/mock/test/test_mock_sp_discovery.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_sp_discovery.cpp
++	INCLUDE_DIRECTORIES
++		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
++		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
++	COMPILE_DEFINITIONS
++		-DARM64
++)
++
+ unit_test_add_suite(
+ 	NAME libsp_sp_memory_management
+ 	SOURCES
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0019-Add-mock-for-libsp-sp_memory_management.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0019-Add-mock-for-libsp-sp_memory_management.patch
new file mode 100644
index 0000000..cf50389
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0019-Add-mock-for-libsp-sp_memory_management.patch
@@ -0,0 +1,977 @@
+From b592a22dbce521522931f8e3d79d6e16f2d334fa Mon Sep 17 00:00:00 2001
+From: Imre Kis <imre.kis@arm.com>
+Date: Fri, 17 Jun 2022 14:42:04 +0200
+Subject: [PATCH 19/24] Add mock for libsp/sp_memory_management
+
+Add mock_sp_memory_management for mocking sp_memory_management part of
+libsp.
+
+Signed-off-by: Imre Kis <imre.kis@arm.com>
+Change-Id: I9f74142bc3568dfc59f820ec2c2af81deba0d0da
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ .../ffa/libsp/include/sp_memory_management.h  |   2 +-
+ .../messaging/ffa/libsp/mock/component.cmake  |   1 +
+ .../libsp/mock/mock_sp_memory_management.cpp  | 523 ++++++++++++++++++
+ .../libsp/mock/mock_sp_memory_management.h    |  98 ++++
+ .../test/test_mock_sp_memory_management.cpp   | 260 +++++++++
+ components/messaging/ffa/libsp/tests.cmake    |  13 +
+ 6 files changed, 896 insertions(+), 1 deletion(-)
+ create mode 100644 components/messaging/ffa/libsp/mock/mock_sp_memory_management.cpp
+ create mode 100644 components/messaging/ffa/libsp/mock/mock_sp_memory_management.h
+ create mode 100644 components/messaging/ffa/libsp/test/test_mock_sp_memory_management.cpp
+
+diff --git a/components/messaging/ffa/libsp/include/sp_memory_management.h b/components/messaging/ffa/libsp/include/sp_memory_management.h
+index 58a6cc1..ec76a3d 100644
+--- a/components/messaging/ffa/libsp/include/sp_memory_management.h
++++ b/components/messaging/ffa/libsp/include/sp_memory_management.h
+@@ -381,7 +381,7 @@ sp_result sp_memory_share_dynamic_is_supported(bool *supported);
+  *
+  * @param[in]      descriptor        The memory descriptor
+  * @param[in,out]  acc_desc          Access descriptor
+- * @param[in,out   regions           Memory region array
++ * @param[in,out]  regions           Memory region array
+  * @param[in]      in_region_count   Count of the specified regions, can be 0
+  * @param[in,out]  out_region_count  Count of the reserved space of in the
+  *                                   regions buffer for retrieved regions. After
+diff --git a/components/messaging/ffa/libsp/mock/component.cmake b/components/messaging/ffa/libsp/mock/component.cmake
+index 15db85a..eb0d28c 100644
+--- a/components/messaging/ffa/libsp/mock/component.cmake
++++ b/components/messaging/ffa/libsp/mock/component.cmake
+@@ -13,6 +13,7 @@ target_sources(${TGT} PRIVATE
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_ffa_api.cpp"
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_ffa_internal_api.cpp"
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_discovery.cpp"
++	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_memory_management.cpp"
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_rxtx.cpp"
+ 	)
+ 
+diff --git a/components/messaging/ffa/libsp/mock/mock_sp_memory_management.cpp b/components/messaging/ffa/libsp/mock/mock_sp_memory_management.cpp
+new file mode 100644
+index 0000000..9eb0aaa
+--- /dev/null
++++ b/components/messaging/ffa/libsp/mock/mock_sp_memory_management.cpp
+@@ -0,0 +1,523 @@
++// SPDX-License-Identifier: BSD-3-Clause
++/*
++ * Copyright (c) 2022, Arm Limited. All rights reserved.
++ */
++
++#include <CppUTestExt/MockSupport.h>
++#include "mock_sp_memory_management.h"
++
++void expect_sp_memory_donate(const struct sp_memory_descriptor *descriptor,
++			     const struct sp_memory_access_descriptor *acc_desc,
++			     const struct sp_memory_region regions[],
++			     uint32_t region_count, const uint64_t *handle,
++			     sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_donate")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc))
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameterReturning("handle", handle, sizeof(*handle))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_donate(struct sp_memory_descriptor *descriptor,
++			   struct sp_memory_access_descriptor *acc_desc,
++			   struct sp_memory_region regions[],
++			   uint32_t region_count, uint64_t *handle)
++{
++	return mock()
++		.actualCall("sp_memory_donate")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc))
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameter("handle", handle)
++		.returnIntValue();
++}
++
++void expect_sp_memory_donate_dynamic(const struct sp_memory_descriptor *descriptor,
++				     const struct sp_memory_access_descriptor *acc_desc,
++				     const struct sp_memory_region regions[],
++				     uint32_t region_count, const uint64_t *handle,
++				     sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_donate_dynamic")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc))
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameterReturning("handle", handle, sizeof(*handle))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_donate_dynamic(struct sp_memory_descriptor *descriptor,
++				   struct sp_memory_access_descriptor *acc_desc,
++				   struct sp_memory_region regions[],
++				   uint32_t region_count, uint64_t *handle,
++				   struct ffa_mem_transaction_buffer *buffer)
++{
++	if (buffer == NULL) { // LCOV_EXCL_BR_LINE
++		FAIL("ffa_mem_transaction_buffer is NULL"); // LCOV_EXCL_LINE
++	}
++
++	return mock()
++		.actualCall("sp_memory_donate_dynamic")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc))
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameter("handle", handle)
++		.returnIntValue();
++}
++
++void expect_sp_memory_donate_dynamic_is_supported(const bool *supported, sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_lend_dynamic_is_supported")
++		.withOutputParameterReturning("supported", supported, sizeof(*supported))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_donate_dynamic_is_supported(bool *supported)
++{
++	return mock()
++		.actualCall("sp_memory_lend_dynamic_is_supported")
++		.withOutputParameter("supported", supported)
++		.returnIntValue();
++}
++
++void expect_sp_memory_lend(const struct sp_memory_descriptor *descriptor,
++			   const struct sp_memory_access_descriptor acc_desc[],
++			   uint32_t acc_desc_count,
++			   const struct sp_memory_region regions[],
++			   uint32_t region_count, const uint64_t *handle,
++			   sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_lend")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc) * acc_desc_count)
++		.withUnsignedIntParameter("acc_desc_count", acc_desc_count)
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameterReturning("handle", handle, sizeof(*handle))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_lend(struct sp_memory_descriptor *descriptor,
++			 struct sp_memory_access_descriptor acc_desc[],
++			 uint32_t acc_desc_count,
++			 struct sp_memory_region regions[],
++			 uint32_t region_count, uint64_t *handle)
++{
++	return mock()
++		.actualCall("sp_memory_lend")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc) * acc_desc_count)
++		.withUnsignedIntParameter("acc_desc_count", acc_desc_count)
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameter("handle", handle)
++		.returnIntValue();
++}
++
++void expect_sp_memory_lend_dynamic(const struct sp_memory_descriptor *descriptor,
++				   const struct sp_memory_access_descriptor acc_desc[],
++				   uint32_t acc_desc_count,
++				   const struct sp_memory_region regions[],
++				   const uint32_t region_count, const uint64_t *handle,
++				   sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_lend")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc) * acc_desc_count)
++		.withUnsignedIntParameter("acc_desc_count", acc_desc_count)
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameterReturning("handle", handle, sizeof(*handle))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_lend_dynamic(struct sp_memory_descriptor *descriptor,
++				 struct sp_memory_access_descriptor acc_desc[],
++				 uint32_t acc_desc_count,
++				 struct sp_memory_region regions[],
++				 uint32_t region_count, uint64_t *handle,
++				 struct ffa_mem_transaction_buffer *buffer)
++{
++	if (buffer == NULL) { // LCOV_EXCL_BR_LINE
++		FAIL("ffa_mem_transaction_buffer is NULL"); // LCOV_EXCL_LINE
++	}
++
++	return mock()
++		.actualCall("sp_memory_lend")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc) * acc_desc_count)
++		.withUnsignedIntParameter("acc_desc_count", acc_desc_count)
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameter("handle", handle)
++		.returnIntValue();
++}
++
++void expect_sp_memory_lend_dynamic_is_supported(const bool *supported, sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_lend_dynamic_is_supported")
++		.withOutputParameterReturning("supported", supported, sizeof(*supported))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_lend_dynamic_is_supported(bool *supported)
++{
++	return mock()
++		.actualCall("sp_memory_lend_dynamic_is_supported")
++		.withOutputParameter("supported", supported)
++		.returnIntValue();
++}
++
++void expect_sp_memory_share(const struct sp_memory_descriptor *descriptor,
++			    const struct sp_memory_access_descriptor acc_desc[],
++			    uint32_t acc_desc_count,
++			    const struct sp_memory_region regions[],
++			    uint32_t region_count, const uint64_t *handle,
++			    sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_share")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc) * acc_desc_count)
++		.withUnsignedIntParameter("acc_desc_count", acc_desc_count)
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameterReturning("handle", handle, sizeof(*handle))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_share(struct sp_memory_descriptor *descriptor,
++			  struct sp_memory_access_descriptor acc_desc[],
++			  uint32_t acc_desc_count,
++			  struct sp_memory_region regions[],
++			  uint32_t region_count, uint64_t *handle)
++{
++	return mock()
++		.actualCall("sp_memory_share")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc) * acc_desc_count)
++		.withUnsignedIntParameter("acc_desc_count", acc_desc_count)
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameter("handle", handle)
++		.returnIntValue();
++}
++
++void expect_sp_memory_share_dynamic(const struct sp_memory_descriptor *descriptor,
++				    const struct sp_memory_access_descriptor acc_desc[],
++				    uint32_t acc_desc_count,
++				    const struct sp_memory_region regions[],
++				    uint32_t region_count, const uint64_t *handle,
++				    sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_share_dynamic")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc) * acc_desc_count)
++		.withUnsignedIntParameter("acc_desc_count", acc_desc_count)
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameterReturning("handle", handle, sizeof(*handle))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_share_dynamic(struct sp_memory_descriptor *descriptor,
++				  struct sp_memory_access_descriptor acc_desc[],
++				  uint32_t acc_desc_count,
++				  struct sp_memory_region regions[],
++				  uint32_t region_count, uint64_t *handle,
++				  struct ffa_mem_transaction_buffer *buffer)
++{
++	if (buffer == NULL) { // LCOV_EXCL_BR_LINE
++		FAIL("ffa_mem_transaction_buffer is NULL"); // LCOV_EXCL_LINE
++	}
++
++	return mock()
++		.actualCall("sp_memory_share_dynamic")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(*descriptor))
++		.withMemoryBufferParameter("acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc) * acc_desc_count)
++		.withUnsignedIntParameter("acc_desc_count", acc_desc_count)
++		.withMemoryBufferParameter("regions", (const unsigned char *)regions,
++					   sizeof(*regions) * region_count)
++		.withUnsignedIntParameter("region_count", region_count)
++		.withOutputParameter("handle", handle)
++		.returnIntValue();
++}
++
++void expect_sp_memory_share_dynamic_is_supported(const bool *supported, sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_share_dynamic_is_supported")
++		.withOutputParameterReturning("supported", supported, sizeof(*supported))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_share_dynamic_is_supported(bool *supported)
++{
++	return mock()
++		.actualCall("sp_memory_share_dynamic_is_supported")
++		.withOutputParameter("supported", supported)
++		.returnIntValue();
++}
++
++void expect_sp_memory_retrieve(const struct sp_memory_descriptor *descriptor,
++			       const struct sp_memory_access_descriptor *req_acc_desc,
++			       const struct sp_memory_access_descriptor *resp_acc_desc,
++			       const struct sp_memory_region in_regions[],
++			       const struct sp_memory_region out_regions[],
++			       uint32_t in_region_count,
++			       const uint32_t *out_region_count, uint64_t handle,
++			       sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_retrieve")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(descriptor))
++		.withMemoryBufferParameter("req_acc_desc", (const unsigned char *)req_acc_desc,
++					   sizeof(*req_acc_desc))
++		.withOutputParameterReturning("resp_acc_desc",
++					      (const unsigned char *)resp_acc_desc,
++					      sizeof(*resp_acc_desc))
++		.withMemoryBufferParameter("in_regions", (const unsigned char *)in_regions,
++					   sizeof(*in_regions) * in_region_count)
++		.withOutputParameterReturning("out_regions", out_regions,
++					      sizeof(*out_regions) * *out_region_count)
++		.withUnsignedIntParameter("in_region_count", in_region_count)
++		.withOutputParameterReturning("out_region_count", out_region_count,
++					      sizeof(*out_region_count))
++		.withUnsignedLongIntParameter("handle", handle)
++		.andReturnValue(result);
++
++}
++
++sp_result sp_memory_retrieve(struct sp_memory_descriptor *descriptor,
++			     struct sp_memory_access_descriptor *acc_desc,
++			     struct sp_memory_region regions[],
++			     uint32_t in_region_count,
++			     uint32_t *out_region_count, uint64_t handle)
++{
++	return mock()
++		.actualCall("sp_memory_retrieve")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(descriptor))
++		.withMemoryBufferParameter("req_acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc))
++		.withOutputParameter("resp_acc_desc", acc_desc)
++		.withMemoryBufferParameter("in_regions", (const unsigned char *)regions,
++					   sizeof(*regions) * in_region_count)
++		.withOutputParameter("out_regions", regions)
++		.withUnsignedIntParameter("in_region_count", in_region_count)
++		.withOutputParameter("out_region_count", out_region_count)
++		.withUnsignedLongIntParameter("handle", handle)
++		.returnIntValue();
++}
++
++void expect_sp_memory_retrieve_dynamic(const struct sp_memory_descriptor *descriptor,
++				       const struct sp_memory_access_descriptor *req_acc_desc,
++				       const struct sp_memory_access_descriptor *resp_acc_desc,
++				       const struct sp_memory_region in_regions[],
++				       const struct sp_memory_region out_regions[],
++				       uint32_t in_region_count,
++				       const uint32_t *out_region_count, uint64_t handle,
++				       sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_retrieve")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(descriptor))
++		.withMemoryBufferParameter("req_acc_desc", (const unsigned char *)req_acc_desc,
++					   sizeof(*req_acc_desc))
++		.withOutputParameterReturning("resp_acc_desc",
++					      (const unsigned char *)resp_acc_desc,
++					      sizeof(*resp_acc_desc))
++		.withMemoryBufferParameter("in_regions", (const unsigned char *)in_regions,
++					   sizeof(*in_regions) * in_region_count)
++		.withOutputParameterReturning("out_regions", out_regions,
++					      sizeof(*out_regions) * *out_region_count)
++		.withUnsignedIntParameter("in_region_count", in_region_count)
++		.withOutputParameterReturning("out_region_count", out_region_count,
++					      sizeof(*out_region_count))
++		.withUnsignedLongIntParameter("handle", handle)
++		.andReturnValue(result);
++}
++
++sp_result
++sp_memory_retrieve_dynamic(struct sp_memory_descriptor *descriptor,
++			   struct sp_memory_access_descriptor *acc_desc,
++			   struct sp_memory_region regions[],
++			   uint32_t in_region_count, uint32_t *out_region_count,
++			   uint64_t handle,
++			   struct ffa_mem_transaction_buffer *buffer)
++{
++	if (buffer == NULL) { // LCOV_EXCL_BR_LINE
++		FAIL("ffa_mem_transaction_buffer is NULL"); // LCOV_EXCL_LINE
++	}
++
++	return mock()
++		.actualCall("sp_memory_retrieve")
++		.withMemoryBufferParameter("descriptor", (const unsigned char *)descriptor,
++					   sizeof(descriptor))
++		.withMemoryBufferParameter("req_acc_desc", (const unsigned char *)acc_desc,
++					   sizeof(*acc_desc))
++		.withOutputParameter("resp_acc_desc", acc_desc)
++		.withMemoryBufferParameter("in_regions", (const unsigned char *)regions,
++					   sizeof(*regions) * in_region_count)
++		.withOutputParameter("out_regions", regions)
++		.withUnsignedIntParameter("in_region_count", in_region_count)
++		.withOutputParameter("out_region_count", out_region_count)
++		.withUnsignedLongIntParameter("handle", handle)
++		.returnIntValue();
++}
++
++void expect_sp_memory_retrieve_dynamic_is_supported(const bool *supported, sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_retrieve_dynamic_is_supported")
++		.withOutputParameterReturning("supported", supported, sizeof(*supported))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_retrieve_dynamic_is_supported(bool *supported)
++{
++	return mock()
++		.actualCall("sp_memory_retrieve_dynamic_is_supported")
++		.withOutputParameter("supported", supported)
++		.returnIntValue();
++}
++
++void expect_sp_memory_relinquish(uint64_t handle, const uint16_t endpoints[],
++			         uint32_t endpoint_count,
++			         const struct sp_memory_transaction_flags *flags,
++				 sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_relinquish")
++		.withUnsignedLongIntParameter("handle", handle)
++		.withMemoryBufferParameter("endpoints", (const unsigned char *)endpoints,
++					   sizeof(*endpoints) * endpoint_count)
++		.withMemoryBufferParameter("flags", (const unsigned char *)flags, sizeof(*flags))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_relinquish(uint64_t handle, const uint16_t endpoints[],
++			       uint32_t endpoint_count,
++			       struct sp_memory_transaction_flags *flags)
++{
++	return mock()
++		.actualCall("sp_memory_relinquish")
++		.withUnsignedLongIntParameter("handle", handle)
++		.withMemoryBufferParameter("endpoints", (const unsigned char *)endpoints,
++					   sizeof(*endpoints) * endpoint_count)
++		.withMemoryBufferParameter("flags", (const unsigned char *)flags, sizeof(*flags))
++		.returnIntValue();
++}
++
++void expect_sp_memory_reclaim(uint64_t handle, uint32_t flags, sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_reclaim")
++		.withUnsignedLongIntParameter("handle", handle)
++		.withUnsignedIntParameter("flags", flags)
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_reclaim(uint64_t handle, uint32_t flags)
++{
++	return mock()
++		.actualCall("sp_memory_reclaim")
++		.withUnsignedLongIntParameter("handle", handle)
++		.withUnsignedIntParameter("flags", flags)
++		.returnIntValue();
++}
++
++void expect_sp_memory_permission_get(const void *base_address, const struct sp_mem_perm *mem_perm,
++				     sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_permission_set")
++		.withConstPointerParameter("base_address", base_address)
++		.withOutputParameterReturning("mem_perm", mem_perm,
++					      sizeof(*mem_perm))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_permission_get(const void *base_address,
++				   struct sp_mem_perm *mem_perm)
++{
++	return mock()
++		.actualCall("sp_memory_permission_set")
++		.withConstPointerParameter("base_address", base_address)
++		.withOutputParameter("mem_perm", mem_perm)
++		.returnIntValue();
++}
++
++void expect_sp_memory_permission_set(const void *base_address, size_t region_size,
++				     const struct sp_mem_perm *mem_perm, sp_result result)
++{
++	mock()
++		.expectOneCall("sp_memory_permission_set")
++		.withConstPointerParameter("base_address", base_address)
++		.withUnsignedLongIntParameter("region_size", region_size)
++		.withMemoryBufferParameter("mem_perm", (const unsigned char *)mem_perm,
++					   sizeof(*mem_perm))
++		.andReturnValue(result);
++}
++
++sp_result sp_memory_permission_set(const void *base_address, size_t region_size,
++				   const struct sp_mem_perm *mem_perm)
++{
++	return mock()
++		.actualCall("sp_memory_permission_set")
++		.withConstPointerParameter("base_address", base_address)
++		.withUnsignedLongIntParameter("region_size", region_size)
++		.withMemoryBufferParameter("mem_perm", (const unsigned char *)mem_perm,
++					   sizeof(*mem_perm))
++		.returnIntValue();
++}
+diff --git a/components/messaging/ffa/libsp/mock/mock_sp_memory_management.h b/components/messaging/ffa/libsp/mock/mock_sp_memory_management.h
+new file mode 100644
+index 0000000..458d2af
+--- /dev/null
++++ b/components/messaging/ffa/libsp/mock/mock_sp_memory_management.h
+@@ -0,0 +1,98 @@
++/* SPDX-License-Identifier: BSD-3-Clause */
++/*
++ * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
++ */
++
++#ifndef LIBSP_MOCK_MOCK_SP_MEMORY_MANAGEMENT_H_
++#define LIBSP_MOCK_MOCK_SP_MEMORY_MANAGEMENT_H_
++
++#include "../include/sp_memory_management.h"
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void expect_sp_memory_donate(const struct sp_memory_descriptor *descriptor,
++			     const struct sp_memory_access_descriptor *acc_desc,
++			     const struct sp_memory_region regions[],
++			     uint32_t region_count, const uint64_t *handle,
++			     sp_result result);
++
++void expect_sp_memory_donate_dynamic(const struct sp_memory_descriptor *descriptor,
++				     const struct sp_memory_access_descriptor *acc_desc,
++				     const struct sp_memory_region regions[],
++				     uint32_t region_count, const uint64_t *handle,
++				     sp_result result);
++
++void expect_sp_memory_donate_dynamic_is_supported(const bool *supported, sp_result result);
++
++void expect_sp_memory_lend(const struct sp_memory_descriptor *descriptor,
++			   const struct sp_memory_access_descriptor acc_desc[],
++			   uint32_t acc_desc_count,
++			   const struct sp_memory_region regions[],
++			   uint32_t region_count, const uint64_t *handle,
++			   sp_result result);
++
++void expect_sp_memory_lend_dynamic(const struct sp_memory_descriptor *descriptor,
++				   const struct sp_memory_access_descriptor acc_desc[],
++				   uint32_t acc_desc_count,
++				   const struct sp_memory_region regions[],
++				   const uint32_t region_count, const uint64_t *handle,
++				   sp_result result);
++
++void expect_sp_memory_lend_dynamic_is_supported(const bool *supported, sp_result result);
++
++void expect_sp_memory_share(const struct sp_memory_descriptor *descriptor,
++			    const struct sp_memory_access_descriptor acc_desc[],
++			    uint32_t acc_desc_count,
++			    const struct sp_memory_region regions[],
++			    uint32_t region_count, const uint64_t *handle,
++			    sp_result result);
++
++void expect_sp_memory_share_dynamic(const struct sp_memory_descriptor *descriptor,
++				    const struct sp_memory_access_descriptor acc_desc[],
++				    uint32_t acc_desc_count,
++				    const struct sp_memory_region regions[],
++				    uint32_t region_count, const uint64_t *handle,
++				    sp_result result);
++
++void expect_sp_memory_share_dynamic_is_supported(const bool *supported, sp_result result);
++
++void expect_sp_memory_retrieve(const struct sp_memory_descriptor *descriptor,
++			       const struct sp_memory_access_descriptor *req_acc_desc,
++			       const struct sp_memory_access_descriptor *resp_acc_desc,
++			       const struct sp_memory_region in_regions[],
++			       const struct sp_memory_region out_regions[],
++			       uint32_t in_region_count,
++			       const uint32_t *out_region_count, uint64_t handle,
++			       sp_result result);
++
++void expect_sp_memory_retrieve_dynamic(const struct sp_memory_descriptor *descriptor,
++				       const struct sp_memory_access_descriptor *req_acc_desc,
++				       const struct sp_memory_access_descriptor *resp_acc_desc,
++				       const struct sp_memory_region in_regions[],
++				       const struct sp_memory_region out_regions[],
++				       uint32_t in_region_count,
++				       const uint32_t *out_region_count, uint64_t handle,
++				       sp_result result);
++
++void expect_sp_memory_retrieve_dynamic_is_supported(const bool *supported, sp_result result);
++
++void expect_sp_memory_relinquish(uint64_t handle, const uint16_t endpoints[],
++				 uint32_t endpoint_count,
++				 const struct sp_memory_transaction_flags *flags,
++				 sp_result result);
++
++void expect_sp_memory_reclaim(uint64_t handle, uint32_t flags, sp_result result);
++
++void expect_sp_memory_permission_get(const void *base_address, const struct sp_mem_perm *mem_perm,
++				     sp_result result);
++
++void expect_sp_memory_permission_set(const void *base_address, size_t region_size,
++				     const struct sp_mem_perm *mem_perm, sp_result result);
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* LIBSP_MOCK_MOCK_SP_MEMORY_MANAGEMENT_H_ */
+diff --git a/components/messaging/ffa/libsp/test/test_mock_sp_memory_management.cpp b/components/messaging/ffa/libsp/test/test_mock_sp_memory_management.cpp
+new file mode 100644
+index 0000000..387b50f
+--- /dev/null
++++ b/components/messaging/ffa/libsp/test/test_mock_sp_memory_management.cpp
+@@ -0,0 +1,260 @@
++// SPDX-License-Identifier: BSD-3-Clause
++/*
++ * Copyright (c) 2022, Arm Limited. All rights reserved.
++ */
++
++#include <CppUTestExt/MockSupport.h>
++#include <CppUTest/TestHarness.h>
++#include "mock_sp_memory_management.h"
++#include <stdint.h>
++#include <stdlib.h>
++#include <string.h>
++
++static const struct sp_memory_descriptor expected_descriptor = {
++	.sender_id = 0xfedc,
++	.memory_type = sp_memory_type_normal_memory,
++	.mem_region_attr = {.normal_memory = {
++		.cacheability = sp_cacheability_write_back,
++		.shareability = sp_shareability_inner_shareable
++	}},
++	.flags = {
++		.zero_memory = true,
++		.operation_time_slicing = true,
++		.zero_memory_after_relinquish = true,
++		.transaction_type = sp_memory_transaction_type_relayer_specified,
++		.alignment_hint = 0x2000
++	},
++	.tag = 0x0123456789abcdefULL
++};
++static const struct sp_memory_access_descriptor expected_acc_desc[] = {
++	{
++		.receiver_id = 0xfafa,
++		.instruction_access = sp_instruction_access_executable,
++		.data_access = sp_data_access_read_only
++	}, {
++		.receiver_id = 0xc1ca,
++		.instruction_access = sp_instruction_access_not_executable,
++		.data_access = sp_data_access_read_write
++	}
++};
++static const struct sp_memory_region expected_regions[2] = {
++	{.address = (void *)0x01234567, .page_count = 0x89abcdef},
++	{.address = (void *)0x12345670, .page_count = 0x9abcdef8},
++};
++static const uint64_t expected_handle = 0xabcdef0123456789ULL;
++static const void *expected_address = (const void *)0x234567879;
++static const struct sp_mem_perm expected_mem_perm = {
++	.data_access = sp_mem_perm_data_perm_read_write,
++	.instruction_access = sp_mem_perm_instruction_perm_non_executable,
++};
++
++TEST_GROUP(mock_sp_memory_management)
++{
++	TEST_SETUP()
++	{
++		memset(&descriptor, 0x00, sizeof(descriptor));
++		memset(&acc_desc, 0x00, sizeof(acc_desc));
++		memset(&regions, 0x00, sizeof(regions));
++		handle = 0;
++		supported = false;
++	}
++
++	TEST_TEARDOWN()
++	{
++		mock().checkExpectations();
++		mock().clear();
++	}
++
++	struct sp_memory_descriptor descriptor;
++	struct sp_memory_access_descriptor acc_desc[2];
++	struct sp_memory_region regions[2];
++	uint64_t handle;
++	bool supported;
++	struct ffa_mem_transaction_buffer tr_buffer;
++
++	static const sp_result result = -1;
++};
++
++TEST(mock_sp_memory_management, sp_memory_donate)
++{
++	descriptor = expected_descriptor;
++	acc_desc[0] = expected_acc_desc[0];
++	memcpy(regions, expected_regions, sizeof(regions));
++
++	expect_sp_memory_donate(&expected_descriptor, expected_acc_desc, expected_regions, 2,
++				&expected_handle, result);
++	LONGS_EQUAL(result, sp_memory_donate(&descriptor, acc_desc, regions, 2, &handle));
++
++	UNSIGNED_LONGLONGS_EQUAL(expected_handle, handle);
++}
++
++TEST(mock_sp_memory_management, sp_memory_donate_dynamic)
++{
++	descriptor = expected_descriptor;
++	acc_desc[0] = expected_acc_desc[0];
++	memcpy(regions, expected_regions, sizeof(regions));
++
++	expect_sp_memory_donate_dynamic(&expected_descriptor, expected_acc_desc, expected_regions,
++					2, &expected_handle, result);
++	LONGS_EQUAL(result, sp_memory_donate_dynamic(&descriptor, acc_desc, regions, 2, &handle,
++						     &tr_buffer));
++
++	UNSIGNED_LONGLONGS_EQUAL(expected_handle, handle);
++}
++
++TEST(mock_sp_memory_management, sp_memory_donate_dynamic_is_supported)
++{
++	const bool expected_supported = true;
++	expect_sp_memory_donate_dynamic_is_supported(&expected_supported, result);
++	LONGS_EQUAL(result, sp_memory_donate_dynamic_is_supported(&supported));
++	CHECK_TRUE(supported);
++}
++
++TEST(mock_sp_memory_management, sp_memory_lend)
++{
++	descriptor = expected_descriptor;
++	memcpy(acc_desc, expected_acc_desc, sizeof(acc_desc));
++	memcpy(regions, expected_regions, sizeof(regions));
++
++	expect_sp_memory_lend(&descriptor, acc_desc, 2, regions, 2, &expected_handle, result);
++	LONGS_EQUAL(result, sp_memory_lend(&descriptor, acc_desc, 2, regions, 2, &handle));
++	UNSIGNED_LONGLONGS_EQUAL(expected_handle, handle);
++}
++
++TEST(mock_sp_memory_management, sp_memory_lend_dynamic)
++{
++	descriptor = expected_descriptor;
++	memcpy(acc_desc, expected_acc_desc, sizeof(acc_desc));
++	memcpy(regions, expected_regions, sizeof(regions));
++
++	expect_sp_memory_lend_dynamic(&descriptor, acc_desc, 2, regions, 2, &expected_handle,
++				      result);
++	LONGS_EQUAL(result, sp_memory_lend_dynamic(&descriptor, acc_desc, 2, regions, 2, &handle,
++						   &tr_buffer));
++	UNSIGNED_LONGLONGS_EQUAL(expected_handle, handle);
++}
++
++TEST(mock_sp_memory_management, sp_memory_lend_dynamic_is_supported)
++{
++	const bool expected_supported = true;
++	expect_sp_memory_lend_dynamic_is_supported(&expected_supported, result);
++	LONGS_EQUAL(result, sp_memory_lend_dynamic_is_supported(&supported));
++	CHECK_TRUE(supported);
++}
++
++TEST(mock_sp_memory_management, sp_memory_share)
++{
++	descriptor = expected_descriptor;
++	memcpy(acc_desc, expected_acc_desc, sizeof(acc_desc));
++	memcpy(regions, expected_regions, sizeof(regions));
++
++	expect_sp_memory_share(&descriptor, acc_desc, 2, regions, 2, &expected_handle, result);
++	LONGS_EQUAL(result, sp_memory_share(&descriptor, acc_desc, 2, regions, 2, &handle));
++	UNSIGNED_LONGLONGS_EQUAL(expected_handle, handle);
++}
++
++TEST(mock_sp_memory_management, sp_memory_share_dynamic)
++{
++	descriptor = expected_descriptor;
++	memcpy(acc_desc, expected_acc_desc, sizeof(acc_desc));
++	memcpy(regions, expected_regions, sizeof(regions));
++
++	expect_sp_memory_share_dynamic(&descriptor, acc_desc, 2, regions, 2, &expected_handle,
++				      result);
++	LONGS_EQUAL(result, sp_memory_share_dynamic(&descriptor, acc_desc, 2, regions, 2, &handle,
++						   &tr_buffer));
++	UNSIGNED_LONGLONGS_EQUAL(expected_handle, handle);
++}
++
++TEST(mock_sp_memory_management, sp_memory_share_dynamic_is_supported)
++{
++	const bool expected_supported = true;
++	expect_sp_memory_share_dynamic_is_supported(&expected_supported, result);
++	LONGS_EQUAL(result, sp_memory_share_dynamic_is_supported(&supported));
++	CHECK_TRUE(supported);
++}
++
++TEST(mock_sp_memory_management, sp_memory_retrieve)
++{
++	const uint32_t expected_region_count = 1;
++	struct sp_memory_access_descriptor acc_desc = expected_acc_desc[0];
++	struct sp_memory_region region = expected_regions[0];
++	uint32_t out_region_count = 0;
++
++	descriptor = expected_descriptor;
++
++	expect_sp_memory_retrieve(&expected_descriptor, &expected_acc_desc[0],
++				  &expected_acc_desc[1], &expected_regions[0],
++				  &expected_regions[1], 1, &expected_region_count, expected_handle,
++				  result);
++	LONGS_EQUAL(result, sp_memory_retrieve(&descriptor, &acc_desc, &region, 1,
++					       &out_region_count, expected_handle));
++	MEMCMP_EQUAL(&acc_desc, &expected_acc_desc[1], sizeof(acc_desc));
++	MEMCMP_EQUAL(&region, &expected_regions[1], sizeof(region));
++	UNSIGNED_LONGS_EQUAL(expected_region_count, out_region_count);
++}
++
++TEST(mock_sp_memory_management, sp_memory_retrieve_dynamic)
++{
++	const uint32_t expected_region_count = 1;
++	struct sp_memory_access_descriptor acc_desc = expected_acc_desc[0];
++	struct sp_memory_region region = expected_regions[0];
++	uint32_t out_region_count = 0;
++
++	descriptor = expected_descriptor;
++
++	expect_sp_memory_retrieve_dynamic(&expected_descriptor, &expected_acc_desc[0],
++					  &expected_acc_desc[1], &expected_regions[0],
++					  &expected_regions[1], 1, &expected_region_count,
++					  expected_handle, result);
++	LONGS_EQUAL(result, sp_memory_retrieve_dynamic(&descriptor, &acc_desc, &region, 1,
++						       &out_region_count, expected_handle,
++						       &tr_buffer));
++	MEMCMP_EQUAL(&acc_desc, &expected_acc_desc[1], sizeof(acc_desc));
++	MEMCMP_EQUAL(&region, &expected_regions[1], sizeof(region));
++	UNSIGNED_LONGS_EQUAL(expected_region_count, out_region_count);
++}
++
++TEST(mock_sp_memory_management, sp_memory_retrieve_dynamic_is_supported)
++{
++	const bool expected_supported = true;
++	expect_sp_memory_retrieve_dynamic_is_supported(&expected_supported, result);
++	LONGS_EQUAL(result, sp_memory_retrieve_dynamic_is_supported(&supported));
++	CHECK_TRUE(supported);
++}
++
++TEST(mock_sp_memory_management, sp_memory_relinquish)
++{
++	uint16_t endpoints[3] = {1, 2, 3};
++	struct sp_memory_transaction_flags flags = {0}; // TODO: flags
++
++	expect_sp_memory_relinquish(expected_handle, endpoints, 3, &flags, result);
++	LONGS_EQUAL(result, sp_memory_relinquish(expected_handle, endpoints, 3, &flags));
++}
++
++TEST(mock_sp_memory_management, sp_memory_reclaim)
++{
++	uint32_t flags = 0xffffffff;
++
++	expect_sp_memory_reclaim(expected_handle, flags, result);
++	LONGS_EQUAL(result, sp_memory_reclaim(expected_handle, flags));
++}
++
++TEST(mock_sp_memory_management, sp_memory_permission_get)
++{
++	struct sp_mem_perm mem_perm;
++
++	memset(&mem_perm, 0x00, sizeof(mem_perm));
++
++	expect_sp_memory_permission_get(expected_address, &expected_mem_perm, result);
++	LONGS_EQUAL(result, sp_memory_permission_get(expected_address, &mem_perm));
++	MEMCMP_EQUAL(&expected_mem_perm, &mem_perm, sizeof(expected_mem_perm));
++}
++
++TEST(mock_sp_memory_management, sp_memory_permission_set)
++{
++	size_t size = 0x7654;
++
++	expect_sp_memory_permission_set(expected_address, size, &expected_mem_perm, result);
++	LONGS_EQUAL(result, sp_memory_permission_set(expected_address, size, &expected_mem_perm));
++}
+diff --git a/components/messaging/ffa/libsp/tests.cmake b/components/messaging/ffa/libsp/tests.cmake
+index 7b52248..63abb57 100644
+--- a/components/messaging/ffa/libsp/tests.cmake
++++ b/components/messaging/ffa/libsp/tests.cmake
+@@ -134,6 +134,19 @@ unit_test_add_suite(
+ 		-DARM64
+ )
+ 
++unit_test_add_suite(
++	NAME libsp_mock_sp_memory_management
++	SOURCES
++		${CMAKE_CURRENT_LIST_DIR}/test/test_mock_sp_memory_management.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_sp_memory_management.cpp
++	INCLUDE_DIRECTORIES
++		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
++		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
++	COMPILE_DEFINITIONS
++		-DARM64
++)
++
+ unit_test_add_suite(
+ 	NAME libsp_sp_memory_management_internals
+ 	SOURCES
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0020-Add-mock-for-libsp-sp_messaging.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0020-Add-mock-for-libsp-sp_messaging.patch
new file mode 100644
index 0000000..3057051
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0020-Add-mock-for-libsp-sp_messaging.patch
@@ -0,0 +1,284 @@
+From 1e5ce152214e22a7cd9617a5059e42c370351354 Mon Sep 17 00:00:00 2001
+From: Imre Kis <imre.kis@arm.com>
+Date: Fri, 17 Jun 2022 15:40:18 +0200
+Subject: [PATCH 20/24] Add mock for libsp/sp_messaging
+
+Add mock_sp_messaging for mocking sp_messaging part of libsp.
+
+Signed-off-by: Imre Kis <imre.kis@arm.com>
+Change-Id: I87478027c61b41028682b10e2535a7e14cf6922f
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ .../messaging/ffa/libsp/mock/component.cmake  |  1 +
+ .../ffa/libsp/mock/mock_sp_messaging.cpp      | 86 +++++++++++++++++++
+ .../ffa/libsp/mock/mock_sp_messaging.h        | 39 +++++++++
+ .../mock/test/test_mock_sp_messaging.cpp      | 77 +++++++++++++++++
+ components/messaging/ffa/libsp/tests.cmake    | 14 +++
+ 5 files changed, 217 insertions(+)
+ create mode 100644 components/messaging/ffa/libsp/mock/mock_sp_messaging.cpp
+ create mode 100644 components/messaging/ffa/libsp/mock/mock_sp_messaging.h
+ create mode 100644 components/messaging/ffa/libsp/mock/test/test_mock_sp_messaging.cpp
+
+diff --git a/components/messaging/ffa/libsp/mock/component.cmake b/components/messaging/ffa/libsp/mock/component.cmake
+index eb0d28c..375cb46 100644
+--- a/components/messaging/ffa/libsp/mock/component.cmake
++++ b/components/messaging/ffa/libsp/mock/component.cmake
+@@ -14,6 +14,7 @@ target_sources(${TGT} PRIVATE
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_ffa_internal_api.cpp"
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_discovery.cpp"
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_memory_management.cpp"
++	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_messaging.cpp"
+ 	"${CMAKE_CURRENT_LIST_DIR}/mock_sp_rxtx.cpp"
+ 	)
+ 
+diff --git a/components/messaging/ffa/libsp/mock/mock_sp_messaging.cpp b/components/messaging/ffa/libsp/mock/mock_sp_messaging.cpp
+new file mode 100644
+index 0000000..522abb3
+--- /dev/null
++++ b/components/messaging/ffa/libsp/mock/mock_sp_messaging.cpp
+@@ -0,0 +1,86 @@
++// SPDX-License-Identifier: BSD-3-Clause
++/*
++ * Copyright (c) 2022, Arm Limited. All rights reserved.
++ */
++
++#include <CppUTestExt/MockSupport.h>
++#include "mock_sp_messaging.h"
++
++void expect_sp_msg_wait(const struct sp_msg *msg, sp_result result)
++{
++	mock()
++		.expectOneCall("sp_msg_wait")
++		.withOutputParameterReturning("msg", msg, sizeof(*msg))
++		.andReturnValue(result);
++}
++
++sp_result sp_msg_wait(struct sp_msg *msg)
++{
++	return mock()
++		.actualCall("sp_msg_wait")
++		.withOutputParameter("msg", msg)
++		.returnIntValue();
++}
++
++void expect_sp_msg_send_direct_req(const struct sp_msg *req,
++				   const struct sp_msg *resp,
++				   sp_result result)
++{
++	mock()
++		.expectOneCall("sp_msg_send_direct_req")
++		.withMemoryBufferParameter("req", (const unsigned char *)req, sizeof(*req))
++		.withOutputParameterReturning("resp", resp, sizeof(*resp))
++		.andReturnValue(result);
++}
++
++sp_result sp_msg_send_direct_req(const struct sp_msg *req, struct sp_msg *resp)
++{
++	return mock()
++		.actualCall("sp_msg_send_direct_req")
++		.withMemoryBufferParameter("req", (const unsigned char *)req, sizeof(*req))
++		.withOutputParameter("resp", resp)
++		.returnIntValue();
++}
++
++void expect_sp_msg_send_direct_resp(const struct sp_msg *resp,
++				    const struct sp_msg *req,
++				    sp_result result)
++{
++	mock()
++		.expectOneCall("sp_msg_send_direct_resp")
++		.withMemoryBufferParameter("resp", (const unsigned char *)resp, sizeof(*resp))
++		.withOutputParameterReturning("req", req, sizeof(*req))
++		.andReturnValue(result);
++}
++
++sp_result sp_msg_send_direct_resp(const struct sp_msg *resp,
++				  struct sp_msg *req)
++{
++	return mock()
++		.actualCall("sp_msg_send_direct_resp")
++		.withMemoryBufferParameter("resp", (const unsigned char *)resp, sizeof(*resp))
++		.withOutputParameter("req", req)
++		.returnIntValue();
++}
++
++#if FFA_DIRECT_MSG_ROUTING_EXTENSION
++void expect_sp_msg_send_rc_req(const struct sp_msg *req,
++			       const struct sp_msg *resp,
++			       sp_result result)
++{
++	mock()
++		.expectOneCall("sp_msg_send_rc_req")
++		.withMemoryBufferParameter("req", (const unsigned char *)req, sizeof(*req))
++		.withOutputParameterReturning("resp", resp, sizeof(*resp))
++		.andReturnValue(result);
++}
++
++sp_result sp_msg_send_rc_req(const struct sp_msg *req, struct sp_msg *resp)
++{
++	return mock()
++		.actualCall("sp_msg_send_rc_req")
++		.withMemoryBufferParameter("req", (const unsigned char *)req, sizeof(*req))
++		.withOutputParameter("resp", resp)
++		.returnIntValue();
++}
++#endif /* FFA_DIRECT_MSG_ROUTING_EXTENSION */
+diff --git a/components/messaging/ffa/libsp/mock/mock_sp_messaging.h b/components/messaging/ffa/libsp/mock/mock_sp_messaging.h
+new file mode 100644
+index 0000000..8183012
+--- /dev/null
++++ b/components/messaging/ffa/libsp/mock/mock_sp_messaging.h
+@@ -0,0 +1,39 @@
++/* SPDX-License-Identifier: BSD-3-Clause */
++/*
++ * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
++ */
++
++#ifndef LIBSP_MOCK_MOCK_SP_MESSAGING_H_
++#define LIBSP_MOCK_MOCK_SP_MESSAGING_H_
++
++#include "../include/sp_messaging.h"
++
++#include <stdint.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++void expect_sp_msg_wait(const struct sp_msg *msg, sp_result result);
++
++
++void expect_sp_msg_send_direct_req(const struct sp_msg *req,
++				   const struct sp_msg *resp,
++				   sp_result result);
++
++
++void expect_sp_msg_send_direct_resp(const struct sp_msg *resp,
++				    const struct sp_msg *req,
++				    sp_result result);
++
++#if FFA_DIRECT_MSG_ROUTING_EXTENSION
++void expect_sp_msg_send_rc_req(const struct sp_msg *req,
++			       const struct sp_msg *resp,
++			       sp_result result);
++#endif /* FFA_DIRECT_MSG_ROUTING_EXTENSION */
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* LIBSP_MOCK_MOCK_SP_MESSAGING_H_ */
+diff --git a/components/messaging/ffa/libsp/mock/test/test_mock_sp_messaging.cpp b/components/messaging/ffa/libsp/mock/test/test_mock_sp_messaging.cpp
+new file mode 100644
+index 0000000..bfc7959
+--- /dev/null
++++ b/components/messaging/ffa/libsp/mock/test/test_mock_sp_messaging.cpp
+@@ -0,0 +1,77 @@
++// SPDX-License-Identifier: BSD-3-Clause
++/*
++ * Copyright (c) 2022, Arm Limited. All rights reserved.
++ */
++
++#include <CppUTestExt/MockSupport.h>
++#include <CppUTest/TestHarness.h>
++#include "mock_sp_messaging.h"
++#include <stdint.h>
++#include <stdlib.h>
++#include <string.h>
++
++static const struct sp_msg expected_req = {
++	.source_id = 0x0123,
++	.destination_id = 0x4567,
++	.args = {0x89abcdef, 0xfedcba98, 0x76543210, 0xabcdef01}
++};
++static const struct sp_msg expected_resp = {
++	.source_id = 0x1234,
++	.destination_id = 0x5678,
++	.args = {0x9abcdef8, 0xedcba98f, 0x65432107, 0xbcdef01a}
++};
++
++TEST_GROUP(mock_sp_messaging)
++{
++	TEST_SETUP()
++	{
++		memset(&req, 0x00, sizeof(req));
++		memset(&resp, 0x00, sizeof(resp));
++	}
++
++	TEST_TEARDOWN()
++	{
++		mock().checkExpectations();
++		mock().clear();
++	}
++
++	struct sp_msg req;
++	struct sp_msg resp;
++	static const sp_result result = -1;
++};
++
++TEST(mock_sp_messaging, sp_msg_wait)
++{
++	expect_sp_msg_wait(&expected_req, result);
++	LONGS_EQUAL(result, sp_msg_wait(&req));
++	MEMCMP_EQUAL(&expected_req, &req, sizeof(expected_req));
++}
++
++TEST(mock_sp_messaging, sp_msg_send_direct_req)
++{
++	req = expected_req;
++
++	expect_sp_msg_send_direct_req(&expected_req, &expected_resp, result);
++	LONGS_EQUAL(result, sp_msg_send_direct_req(&req, &resp));
++	MEMCMP_EQUAL(&expected_resp, &resp, sizeof(expected_resp));
++}
++
++TEST(mock_sp_messaging, sp_msg_send_direct_resp)
++{
++	resp = expected_resp;
++
++	expect_sp_msg_send_direct_resp(&expected_resp, &expected_req, result);
++	LONGS_EQUAL(result, sp_msg_send_direct_resp(&resp, &req));
++	MEMCMP_EQUAL(&expected_req, &req, sizeof(expected_req));
++}
++
++#if FFA_DIRECT_MSG_ROUTING_EXTENSION
++TEST(mock_sp_messaging, sp_msg_send_rc_req)
++{
++	req = expected_req;
++
++	expect_sp_msg_send_rc_req(&expected_req, &expected_resp, result);
++	LONGS_EQUAL(result, sp_msg_send_rc_req(&req, &resp));
++	MEMCMP_EQUAL(&expected_resp, &resp, sizeof(expected_resp));
++}
++#endif /* FFA_DIRECT_MSG_ROUTING_EXTENSION */
+diff --git a/components/messaging/ffa/libsp/tests.cmake b/components/messaging/ffa/libsp/tests.cmake
+index 63abb57..eb0b41e 100644
+--- a/components/messaging/ffa/libsp/tests.cmake
++++ b/components/messaging/ffa/libsp/tests.cmake
+@@ -176,6 +176,20 @@ unit_test_add_suite(
+ 		-DARM64
+ )
+ 
++unit_test_add_suite(
++	NAME libsp_mock_sp_messaging
++	SOURCES
++		${CMAKE_CURRENT_LIST_DIR}/mock/test/test_mock_sp_messaging.cpp
++		${CMAKE_CURRENT_LIST_DIR}/mock/mock_sp_messaging.cpp
++	INCLUDE_DIRECTORIES
++		${CMAKE_CURRENT_LIST_DIR}/include/
++		${CMAKE_CURRENT_LIST_DIR}/mock
++		${UNIT_TEST_PROJECT_PATH}/components/common/utils/include
++	COMPILE_DEFINITIONS
++		-DARM64
++		-DFFA_DIRECT_MSG_ROUTING_EXTENSION=1
++)
++
+ unit_test_add_suite(
+ 	NAME libsp_sp_messaging_with_routing_extension
+ 	SOURCES
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0021-Add-64-bit-direct-message-handling-to-libsp.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0021-Add-64-bit-direct-message-handling-to-libsp.patch
new file mode 100644
index 0000000..a037c27
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0021-Add-64-bit-direct-message-handling-to-libsp.patch
@@ -0,0 +1,2552 @@
+From a9edc50077d72cdd7e40ba3f03aee974848cd532 Mon Sep 17 00:00:00 2001
+From: Imre Kis <imre.kis@arm.com>
+Date: Tue, 19 Jul 2022 17:38:00 +0200
+Subject: [PATCH 21/24] Add 64 bit direct message handling to libsp
+
+* Change direct message struct to allow 64 bit arguments
+* Add 64 bit direct message req/resp functions to FF-A layer
+* Distinguish 32/64 bit messages on SP layer by field in sp_msg
+* Update tests and mocks
+
+The FF-A direct message response must match the request's 32/64bit mode
+which is the responsibility of the callee and it should be validated by
+the SPMC.
+
+Signed-off-by: Imre Kis <imre.kis@arm.com>
+Change-Id: Ibbd64ca0291dfe142a23471a649a07ba1a036824
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ components/messaging/ffa/libsp/ffa.c          |  84 ++-
+ .../libsp/ffa_direct_msg_routing_extension.c  |  28 +-
+ .../messaging/ffa/libsp/include/ffa_api.h     |  58 +-
+ .../ffa/libsp/include/ffa_api_defines.h       |   5 +
+ .../ffa/libsp/include/ffa_api_types.h         |   7 +-
+ .../ffa/libsp/include/sp_messaging.h          |   9 +-
+ .../messaging/ffa/libsp/mock/mock_ffa_api.cpp | 100 +++-
+ .../messaging/ffa/libsp/mock/mock_ffa_api.h   |  34 +-
+ .../ffa/libsp/mock/test/test_mock_ffa_api.cpp |  50 +-
+ components/messaging/ffa/libsp/sp_messaging.c |  74 ++-
+ .../messaging/ffa/libsp/test/test_ffa_api.cpp | 337 ++++++++++--
+ .../ffa/libsp/test/test_sp_messaging.cpp      | 498 ++++++++++--------
+ .../rpc/ffarpc/caller/sp/ffarpc_caller.c      |  31 +-
+ .../rpc/ffarpc/endpoint/ffarpc_call_ep.c      |   4 +-
+ .../endpoint/sp/mm_communicate_call_ep.c      |  16 +-
+ .../smm-gateway/common/smm_gateway_sp.c       |   8 +-
+ 16 files changed, 961 insertions(+), 382 deletions(-)
+
+diff --git a/components/messaging/ffa/libsp/ffa.c b/components/messaging/ffa/libsp/ffa.c
+index 374e940..caacc79 100644
+--- a/components/messaging/ffa/libsp/ffa.c
++++ b/components/messaging/ffa/libsp/ffa.c
+@@ -33,11 +33,20 @@ static inline void ffa_unpack_direct_msg(struct ffa_params *svc_result,
+ 	msg->function_id = svc_result->a0;
+ 	msg->source_id = (svc_result->a1 >> 16);
+ 	msg->destination_id = svc_result->a1;
+-	msg->args[0] = svc_result->a3;
+-	msg->args[1] = svc_result->a4;
+-	msg->args[2] = svc_result->a5;
+-	msg->args[3] = svc_result->a6;
+-	msg->args[4] = svc_result->a7;
++
++	if (FFA_IS_32_BIT_FUNC(msg->function_id)) {
++		msg->args.args32[0] = svc_result->a3;
++		msg->args.args32[1] = svc_result->a4;
++		msg->args.args32[2] = svc_result->a5;
++		msg->args.args32[3] = svc_result->a6;
++		msg->args.args32[4] = svc_result->a7;
++	} else {
++		msg->args.args64[0] = svc_result->a3;
++		msg->args.args64[1] = svc_result->a4;
++		msg->args.args64[2] = svc_result->a5;
++		msg->args.args64[3] = svc_result->a6;
++		msg->args.args64[4] = svc_result->a7;
++	}
+ }
+ 
+ /*
+@@ -217,7 +226,7 @@ ffa_result ffa_msg_wait(struct ffa_direct_msg *msg)
+ 
+ 	if (result.a0 == FFA_ERROR) {
+ 		return ffa_get_errorcode(&result);
+-	} else if (result.a0 == FFA_MSG_SEND_DIRECT_REQ_32) {
++	} else if (FFA_TO_32_BIT_FUNC(result.a0) == FFA_MSG_SEND_DIRECT_REQ_32) {
+ 		ffa_unpack_direct_msg(&result, msg);
+ 	} else {
+ 		assert(result.a0 == FFA_SUCCESS_32);
+@@ -227,13 +236,15 @@ ffa_result ffa_msg_wait(struct ffa_direct_msg *msg)
+ 	return FFA_OK;
+ }
+ 
+-ffa_result ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+-				   uint32_t a1, uint32_t a2, uint32_t a3,
+-				   uint32_t a4, struct ffa_direct_msg *msg)
++static ffa_result ffa_msg_send_direct_req(uint32_t function_id, uint32_t resp_id,
++					  uint16_t source, uint16_t dest,
++					  uint64_t a0, uint64_t a1, uint64_t a2,
++					  uint64_t a3, uint64_t a4,
++					  struct ffa_direct_msg *msg)
+ {
+ 	struct ffa_params result = {0};
+ 
+-	ffa_svc(FFA_MSG_SEND_DIRECT_REQ_32,
++	ffa_svc(function_id,
+ 		SHIFT_U32(source, FFA_MSG_SEND_DIRECT_REQ_SOURCE_ID_SHIFT) |
+ 		dest, FFA_PARAM_MBZ, a0, a1, a2, a3, a4, &result);
+ 
+@@ -244,7 +255,7 @@ ffa_result ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+ 
+ 	if (result.a0 == FFA_ERROR) {
+ 		return ffa_get_errorcode(&result);
+-	} else if (result.a0 == FFA_MSG_SEND_DIRECT_RESP_32) {
++	} else if (result.a0 == resp_id) {
+ 		ffa_unpack_direct_msg(&result, msg);
+ 	} else {
+ 		assert(result.a0 == FFA_SUCCESS_32);
+@@ -254,13 +265,36 @@ ffa_result ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+ 	return FFA_OK;
+ }
+ 
+-ffa_result ffa_msg_send_direct_resp(uint16_t source, uint16_t dest, uint32_t a0,
+-				    uint32_t a1, uint32_t a2, uint32_t a3,
+-				    uint32_t a4, struct ffa_direct_msg *msg)
++ffa_result ffa_msg_send_direct_req_32(uint16_t source, uint16_t dest,
++				      uint32_t a0, uint32_t a1, uint32_t a2,
++				      uint32_t a3, uint32_t a4,
++				      struct ffa_direct_msg *msg)
++{
++	return ffa_msg_send_direct_req(FFA_MSG_SEND_DIRECT_REQ_32,
++				       FFA_MSG_SEND_DIRECT_RESP_32,
++				       source, dest, a0, a1, a2, a3, a4, msg);
++}
++
++ffa_result ffa_msg_send_direct_req_64(uint16_t source, uint16_t dest,
++				      uint64_t a0, uint64_t a1, uint64_t a2,
++				      uint64_t a3, uint64_t a4,
++				      struct ffa_direct_msg *msg)
++{
++	return ffa_msg_send_direct_req(FFA_MSG_SEND_DIRECT_REQ_64,
++				       FFA_MSG_SEND_DIRECT_RESP_64,
++				       source, dest, a0, a1, a2, a3, a4, msg);
++}
++
++static ffa_result ffa_msg_send_direct_resp(uint32_t function_id,
++					   uint16_t source, uint16_t dest,
++					   uint64_t a0, uint64_t a1,
++					   uint64_t a2, uint64_t a3,
++					   uint64_t a4,
++					   struct ffa_direct_msg *msg)
+ {
+ 	struct ffa_params result = {0};
+ 
+-	ffa_svc(FFA_MSG_SEND_DIRECT_RESP_32,
++	ffa_svc(function_id,
+ 		SHIFT_U32(source, FFA_MSG_SEND_DIRECT_RESP_SOURCE_ID_SHIFT) |
+ 		dest, FFA_PARAM_MBZ, a0, a1, a2, a3, a4, &result);
+ 
+@@ -271,7 +305,7 @@ ffa_result ffa_msg_send_direct_resp(uint16_t source, uint16_t dest, uint32_t a0,
+ 
+ 	if (result.a0 == FFA_ERROR) {
+ 		return ffa_get_errorcode(&result);
+-	} else if (result.a0 == FFA_MSG_SEND_DIRECT_REQ_32) {
++	} else if (FFA_TO_32_BIT_FUNC(result.a0) == FFA_MSG_SEND_DIRECT_REQ_32) {
+ 		ffa_unpack_direct_msg(&result, msg);
+ 	} else {
+ 		assert(result.a0 == FFA_SUCCESS_32);
+@@ -281,6 +315,24 @@ ffa_result ffa_msg_send_direct_resp(uint16_t source, uint16_t dest, uint32_t a0,
+ 	return FFA_OK;
+ }
+ 
++ffa_result ffa_msg_send_direct_resp_32(uint16_t source, uint16_t dest,
++				       uint32_t a0, uint32_t a1, uint32_t a2,
++				       uint32_t a3, uint32_t a4,
++				       struct ffa_direct_msg *msg)
++{
++	return ffa_msg_send_direct_resp(FFA_MSG_SEND_DIRECT_RESP_32, source,
++					dest, a0, a1, a2, a3, a4, msg);
++}
++
++ffa_result ffa_msg_send_direct_resp_64(uint16_t source, uint16_t dest,
++				      uint64_t a0, uint64_t a1, uint64_t a2,
++				      uint64_t a3, uint64_t a4,
++				      struct ffa_direct_msg *msg)
++{
++	return ffa_msg_send_direct_resp(FFA_MSG_SEND_DIRECT_RESP_64, source,
++					dest, a0, a1, a2, a3, a4, msg);
++}
++
+ ffa_result ffa_mem_donate(uint32_t total_length, uint32_t fragment_length,
+ 			  void *buffer_address, uint32_t page_count,
+ 			  uint64_t *handle)
+diff --git a/components/messaging/ffa/libsp/ffa_direct_msg_routing_extension.c b/components/messaging/ffa/libsp/ffa_direct_msg_routing_extension.c
+index 6813573..03a372f 100644
+--- a/components/messaging/ffa/libsp/ffa_direct_msg_routing_extension.c
++++ b/components/messaging/ffa/libsp/ffa_direct_msg_routing_extension.c
+@@ -1,6 +1,6 @@
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+- * Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #include "ffa_direct_msg_routing_extension.h"
+@@ -20,23 +20,23 @@ static uint16_t callee_id = SP_ID_INVALID;
+ 
+ static bool is_rc_message(const struct ffa_direct_msg *msg)
+ {
+-	return msg->args[0] & FFA_ROUTING_EXT_RC_BIT;
++	return msg->args.args32[0] & FFA_ROUTING_EXT_RC_BIT;
+ }
+ 
+ static bool is_error_message(const struct ffa_direct_msg *msg)
+ {
+-	return msg->args[0] & FFA_ROUTING_EXT_ERROR_BIT;
++	return msg->args.args32[0] & FFA_ROUTING_EXT_ERROR_BIT;
+ }
+ 
+ static ffa_result get_error_code_from_message(const struct ffa_direct_msg *msg)
+ {
+-	return (ffa_result)msg->args[1];
++	return (ffa_result)msg->args.args32[1];
+ }
+ 
+ static ffa_result send_rc_error_message(struct ffa_direct_msg *req,
+ 					ffa_result error_code)
+ {
+-	return ffa_msg_send_direct_resp(req->destination_id, req->source_id,
++	return ffa_msg_send_direct_resp_32(req->destination_id, req->source_id,
+ 					(FFA_ROUTING_EXT_ERROR_BIT |
+ 					 FFA_ROUTING_EXT_RC_BIT),
+ 					error_code, 0, 0, 0, req);
+@@ -45,7 +45,7 @@ static ffa_result send_rc_error_message(struct ffa_direct_msg *req,
+ static ffa_result send_rc_error_message_to_rc_root(struct ffa_direct_msg *resp,
+ 						   ffa_result error_code)
+ {
+-	return ffa_msg_send_direct_req(own_id, callee_id,
++	return ffa_msg_send_direct_req_32(own_id, callee_id,
+ 				       (FFA_ROUTING_EXT_RC_BIT |
+ 					FFA_ROUTING_EXT_ERROR_BIT),
+ 				       error_code, 0, 0, 0, resp);
+@@ -128,10 +128,10 @@ ffa_result ffa_direct_msg_routing_ext_req_post_hook(struct ffa_direct_msg *resp)
+ 		/* Forwarding RC request towards the root (normal world) */
+ 		state = forwarding;
+ 
+-		ffa_res = ffa_msg_send_direct_resp(own_id, caller_id,
+-						   resp->args[0], resp->args[1],
+-						   resp->args[2], resp->args[3],
+-						   resp->args[4], &rc_resp);
++		ffa_res = ffa_msg_send_direct_resp_32(own_id, caller_id,
++						   resp->args.args32[0], resp->args.args32[1],
++						   resp->args.args32[2], resp->args.args32[3],
++						   resp->args.args32[4], &rc_resp);
+ 		if (ffa_res != FFA_OK)
+ 			goto forward_ffa_error_to_rc_root;
+ 
+@@ -145,9 +145,9 @@ ffa_result ffa_direct_msg_routing_ext_req_post_hook(struct ffa_direct_msg *resp)
+ 
+ 		/* Forwarding RC response towards the RC root. */
+ 		state = internal;
+-		ffa_res = ffa_msg_send_direct_req(
+-			own_id, callee_id, rc_resp.args[0], rc_resp.args[1],
+-			rc_resp.args[2], rc_resp.args[3], rc_resp.args[4],
++		ffa_res = ffa_msg_send_direct_req_32(
++			own_id, callee_id, rc_resp.args.args32[0], rc_resp.args.args32[1],
++			rc_resp.args.args32[2], rc_resp.args.args32[3], rc_resp.args.args32[4],
+ 			resp);
+ 
+ 		goto break_on_ffa_error;
+@@ -197,7 +197,7 @@ void ffa_direct_msg_routing_ext_resp_error_hook(void)
+ 
+ void ffa_direct_msg_routing_ext_rc_req_pre_hook(struct ffa_direct_msg *req)
+ {
+-	req->args[0] = FFA_ROUTING_EXT_RC_BIT;
++	req->args.args32[0] = FFA_ROUTING_EXT_RC_BIT;
+ 	state = rc_root;
+ }
+ 
+diff --git a/components/messaging/ffa/libsp/include/ffa_api.h b/components/messaging/ffa/libsp/include/ffa_api.h
+index ec5cb04..4b7073b 100644
+--- a/components/messaging/ffa/libsp/include/ffa_api.h
++++ b/components/messaging/ffa/libsp/include/ffa_api.h
+@@ -126,8 +126,8 @@ ffa_result ffa_msg_wait(struct ffa_direct_msg *msg);
+ /** Messaging interfaces */
+ 
+ /**
+- * @brief      Sends a partition message in parameter registers as a request and
+- *             blocks until the response is available.
++ * @brief      Sends a 32 bit partition message in parameter registers as a
++ *             request and blocks until the response is available.
+  * @note       The ffa_interrupt_handler function can be called during the
+  *             execution of this function
+  *
+@@ -138,13 +138,14 @@ ffa_result ffa_msg_wait(struct ffa_direct_msg *msg);
+  *
+  * @return     The FF-A error status code
+  */
+-ffa_result ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+-				   uint32_t a1, uint32_t a2, uint32_t a3,
+-				   uint32_t a4, struct ffa_direct_msg *msg);
++ffa_result ffa_msg_send_direct_req_32(uint16_t source, uint16_t dest,
++				      uint32_t a0, uint32_t a1, uint32_t a2,
++				      uint32_t a3, uint32_t a4,
++				      struct ffa_direct_msg *msg);
+ 
+ /**
+- * @brief      Sends a partition message in parameter registers as a response
+- *             and blocks until the response is available.
++ * @brief      Sends a 64 bit partition message in parameter registers as a
++ *             request and blocks until the response is available.
+  * @note       The ffa_interrupt_handler function can be called during the
+  *             execution of this function
+  *
+@@ -155,9 +156,46 @@ ffa_result ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+  *
+  * @return     The FF-A error status code
+  */
+-ffa_result ffa_msg_send_direct_resp(uint16_t source, uint16_t dest, uint32_t a0,
+-				    uint32_t a1, uint32_t a2, uint32_t a3,
+-				    uint32_t a4, struct ffa_direct_msg *msg);
++ffa_result ffa_msg_send_direct_req_64(uint16_t source, uint16_t dest,
++				      uint64_t a0, uint64_t a1, uint64_t a2,
++				      uint64_t a3, uint64_t a4,
++				      struct ffa_direct_msg *msg);
++
++/**
++ * @brief      Sends a 32 bit partition message in parameter registers as a
++ *             response and blocks until the response is available.
++ * @note       The ffa_interrupt_handler function can be called during the
++ *             execution of this function
++ *
++ * @param[in]  source            Source endpoint ID
++ * @param[in]  dest              Destination endpoint ID
++ * @param[in]  a0,a1,a2,a3,a4    Implementation defined message values
++ * @param[out] msg               The response message
++ *
++ * @return     The FF-A error status code
++ */
++ffa_result ffa_msg_send_direct_resp_32(uint16_t source, uint16_t dest,
++				       uint32_t a0, uint32_t a1, uint32_t a2,
++				       uint32_t a3, uint32_t a4,
++				       struct ffa_direct_msg *msg);
++
++/**
++ * @brief      Sends a 64 bit partition message in parameter registers as a
++ *             response and blocks until the response is available.
++ * @note       The ffa_interrupt_handler function can be called during the
++ *             execution of this function
++ *
++ * @param[in]  source            Source endpoint ID
++ * @param[in]  dest              Destination endpoint ID
++ * @param[in]  a0,a1,a2,a3,a4    Implementation defined message values
++ * @param[out] msg               The response message
++ *
++ * @return     The FF-A error status code
++ */
++ffa_result ffa_msg_send_direct_resp_64(uint16_t source, uint16_t dest,
++				       uint64_t a0, uint64_t a1, uint64_t a2,
++				       uint64_t a3, uint64_t a4,
++				       struct ffa_direct_msg *msg);
+ 
+ /**
+  * Memory management interfaces
+diff --git a/components/messaging/ffa/libsp/include/ffa_api_defines.h b/components/messaging/ffa/libsp/include/ffa_api_defines.h
+index 95bcb0c..163a0cd 100644
+--- a/components/messaging/ffa/libsp/include/ffa_api_defines.h
++++ b/components/messaging/ffa/libsp/include/ffa_api_defines.h
+@@ -58,6 +58,11 @@
+ #define FFA_MEM_PERM_GET		UINT32_C(0x84000088)
+ #define FFA_MEM_PERM_SET		UINT32_C(0x84000089)
+ 
++/* Utility macros */
++#define FFA_TO_32_BIT_FUNC(x)		((x) & (~UINT32_C(0x40000000)))
++#define FFA_IS_32_BIT_FUNC(x)		(((x) & UINT32_C(0x40000000)) == 0)
++#define FFA_IS_64_BIT_FUNC(x)		(((x) & UINT32_C(0x40000000)) != 0)
++
+ /* Special value for MBZ parameters */
+ #define FFA_PARAM_MBZ			UINT32_C(0x0)
+ 
+diff --git a/components/messaging/ffa/libsp/include/ffa_api_types.h b/components/messaging/ffa/libsp/include/ffa_api_types.h
+index 3686e2e..b1be7ac 100644
+--- a/components/messaging/ffa/libsp/include/ffa_api_types.h
++++ b/components/messaging/ffa/libsp/include/ffa_api_types.h
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: BSD-3-Clause */
+ /*
+- * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #ifndef LIBSP_INCLUDE_FFA_API_TYPES_H_
+@@ -80,7 +80,10 @@ struct ffa_direct_msg {
+ 	uint32_t function_id;
+ 	uint16_t source_id;
+ 	uint16_t destination_id;
+-	uint32_t args[5];
++	union {
++		uint32_t args32[5];
++		uint64_t args64[5];
++	} args;
+ };
+ 
+ /**
+diff --git a/components/messaging/ffa/libsp/include/sp_messaging.h b/components/messaging/ffa/libsp/include/sp_messaging.h
+index 4bb45f7..7173a92 100644
+--- a/components/messaging/ffa/libsp/include/sp_messaging.h
++++ b/components/messaging/ffa/libsp/include/sp_messaging.h
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: BSD-3-Clause */
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #ifndef LIBSP_INCLUDE_SP_MESSAGING_H_
+@@ -9,6 +9,7 @@
+ #include "sp_api_defines.h"
+ #include "sp_api_types.h"
+ 
++#include <stdbool.h>
+ #include <stdint.h>
+ 
+ #ifdef __cplusplus
+@@ -23,7 +24,11 @@ extern "C" {
+ struct sp_msg {
+ 	uint16_t source_id;
+ 	uint16_t destination_id;
+-	uint32_t args[SP_MSG_ARG_COUNT];
++	bool is_64bit_message;
++	union {
++		uint32_t args32[SP_MSG_ARG_COUNT];
++		uint64_t args64[SP_MSG_ARG_COUNT];
++	} args;
+ };
+ 
+ /**
+diff --git a/components/messaging/ffa/libsp/mock/mock_ffa_api.cpp b/components/messaging/ffa/libsp/mock/mock_ffa_api.cpp
+index ceebcbf..a01848c 100644
+--- a/components/messaging/ffa/libsp/mock/mock_ffa_api.cpp
++++ b/components/messaging/ffa/libsp/mock/mock_ffa_api.cpp
+@@ -140,13 +140,13 @@ ffa_result ffa_msg_wait(struct ffa_direct_msg *msg)
+ 		.returnIntValue();
+ }
+ 
+-void expect_ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+-				    uint32_t a1, uint32_t a2, uint32_t a3,
+-				    uint32_t a4,
+-				    const struct ffa_direct_msg *msg,
+-				    ffa_result result)
++void expect_ffa_msg_send_direct_req_32(uint16_t source, uint16_t dest,
++				       uint32_t a0, uint32_t a1, uint32_t a2,
++				       uint32_t a3, uint32_t a4,
++				       const struct ffa_direct_msg *msg,
++				       ffa_result result)
+ {
+-	mock().expectOneCall("ffa_msg_send_direct_req")
++	mock().expectOneCall("ffa_msg_send_direct_req_32")
+ 		.withUnsignedIntParameter("source", source)
+ 		.withUnsignedIntParameter("dest", dest)
+ 		.withUnsignedIntParameter("a0", a0)
+@@ -158,12 +158,13 @@ void expect_ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+ 		.andReturnValue(result);
+ }
+ 
+-ffa_result ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+-				   uint32_t a1, uint32_t a2, uint32_t a3,
+-				   uint32_t a4, struct ffa_direct_msg *msg)
++ffa_result ffa_msg_send_direct_req_32(uint16_t source, uint16_t dest,
++				      uint32_t a0, uint32_t a1, uint32_t a2,
++				      uint32_t a3,uint32_t a4,
++				      struct ffa_direct_msg *msg)
+ {
+ 	return mock()
+-		.actualCall("ffa_msg_send_direct_req")
++		.actualCall("ffa_msg_send_direct_req_32")
+ 		.withUnsignedIntParameter("source", source)
+ 		.withUnsignedIntParameter("dest", dest)
+ 		.withUnsignedIntParameter("a0", a0)
+@@ -175,13 +176,49 @@ ffa_result ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+ 		.returnIntValue();
+ }
+ 
+-void expect_ffa_msg_send_direct_resp(uint16_t source, uint16_t dest,
++void expect_ffa_msg_send_direct_req_64(uint16_t source, uint16_t dest,
++				       uint64_t a0, uint64_t a1, uint64_t a2,
++				       uint64_t a3, uint64_t a4,
++				       const struct ffa_direct_msg *msg,
++				       ffa_result result)
++{
++	mock().expectOneCall("ffa_msg_send_direct_req_64")
++		.withUnsignedIntParameter("source", source)
++		.withUnsignedIntParameter("dest", dest)
++		.withUnsignedLongIntParameter("a0", a0)
++		.withUnsignedLongIntParameter("a1", a1)
++		.withUnsignedLongIntParameter("a2", a2)
++		.withUnsignedLongIntParameter("a3", a3)
++		.withUnsignedLongIntParameter("a4", a4)
++		.withOutputParameterReturning("msg", msg, sizeof(*msg))
++		.andReturnValue(result);
++}
++
++ffa_result ffa_msg_send_direct_req_64(uint16_t source, uint16_t dest,
++				      uint64_t a0, uint64_t a1, uint64_t a2,
++				      uint64_t a3, uint64_t a4,
++				      struct ffa_direct_msg *msg)
++{
++	return mock()
++		.actualCall("ffa_msg_send_direct_req_64")
++		.withUnsignedIntParameter("source", source)
++		.withUnsignedIntParameter("dest", dest)
++		.withUnsignedLongIntParameter("a0", a0)
++		.withUnsignedLongIntParameter("a1", a1)
++		.withUnsignedLongIntParameter("a2", a2)
++		.withUnsignedLongIntParameter("a3", a3)
++		.withUnsignedLongIntParameter("a4", a4)
++		.withOutputParameter("msg", msg)
++		.returnIntValue();
++}
++
++void expect_ffa_msg_send_direct_resp_32(uint16_t source, uint16_t dest,
+ 				     uint32_t a0, uint32_t a1, uint32_t a2,
+ 				     uint32_t a3, uint32_t a4,
+ 				     const struct ffa_direct_msg *msg,
+ 				     ffa_result result)
+ {
+-	mock().expectOneCall("ffa_msg_send_direct_resp")
++	mock().expectOneCall("ffa_msg_send_direct_resp_32")
+ 		.withUnsignedIntParameter("source", source)
+ 		.withUnsignedIntParameter("dest", dest)
+ 		.withUnsignedIntParameter("a0", a0)
+@@ -193,12 +230,12 @@ void expect_ffa_msg_send_direct_resp(uint16_t source, uint16_t dest,
+ 		.andReturnValue(result);
+ }
+ 
+-ffa_result ffa_msg_send_direct_resp(uint16_t source, uint16_t dest, uint32_t a0,
++ffa_result ffa_msg_send_direct_resp_32(uint16_t source, uint16_t dest, uint32_t a0,
+ 				    uint32_t a1, uint32_t a2, uint32_t a3,
+ 				    uint32_t a4, struct ffa_direct_msg *msg)
+ {
+ 	return mock()
+-		.actualCall("ffa_msg_send_direct_resp")
++		.actualCall("ffa_msg_send_direct_resp_32")
+ 		.withUnsignedIntParameter("source", source)
+ 		.withUnsignedIntParameter("dest", dest)
+ 		.withUnsignedIntParameter("a0", a0)
+@@ -210,6 +247,41 @@ ffa_result ffa_msg_send_direct_resp(uint16_t source, uint16_t dest, uint32_t a0,
+ 		.returnIntValue();
+ }
+ 
++void expect_ffa_msg_send_direct_resp_64(uint16_t source, uint16_t dest,
++				     uint64_t a0, uint64_t a1, uint64_t a2,
++				     uint64_t a3, uint64_t a4,
++				     const struct ffa_direct_msg *msg,
++				     ffa_result result)
++{
++	mock().expectOneCall("ffa_msg_send_direct_resp_64")
++		.withUnsignedIntParameter("source", source)
++		.withUnsignedIntParameter("dest", dest)
++		.withUnsignedLongIntParameter("a0", a0)
++		.withUnsignedLongIntParameter("a1", a1)
++		.withUnsignedLongIntParameter("a2", a2)
++		.withUnsignedLongIntParameter("a3", a3)
++		.withUnsignedLongIntParameter("a4", a4)
++		.withOutputParameterReturning("msg", msg, sizeof(*msg))
++		.andReturnValue(result);
++}
++
++ffa_result ffa_msg_send_direct_resp_64(uint16_t source, uint16_t dest, uint64_t a0,
++				    uint64_t a1, uint64_t a2, uint64_t a3,
++				    uint64_t a4, struct ffa_direct_msg *msg)
++{
++	return mock()
++		.actualCall("ffa_msg_send_direct_resp_64")
++		.withUnsignedIntParameter("source", source)
++		.withUnsignedIntParameter("dest", dest)
++		.withUnsignedLongIntParameter("a0", a0)
++		.withUnsignedLongIntParameter("a1", a1)
++		.withUnsignedLongIntParameter("a2", a2)
++		.withUnsignedLongIntParameter("a3", a3)
++		.withUnsignedLongIntParameter("a4", a4)
++		.withOutputParameter("msg", msg)
++		.returnIntValue();
++}
++
+ void expect_ffa_mem_donate(uint32_t total_length, uint32_t fragment_length,
+ 			   void *buffer_address, uint32_t page_count,
+ 			   const uint64_t *handle, ffa_result result)
+diff --git a/components/messaging/ffa/libsp/mock/mock_ffa_api.h b/components/messaging/ffa/libsp/mock/mock_ffa_api.h
+index b1c794f..4213ccb 100644
+--- a/components/messaging/ffa/libsp/mock/mock_ffa_api.h
++++ b/components/messaging/ffa/libsp/mock/mock_ffa_api.h
+@@ -30,17 +30,29 @@ void expect_ffa_id_get(const uint16_t *id, ffa_result result);
+ 
+ void expect_ffa_msg_wait(const struct ffa_direct_msg *msg, ffa_result result);
+ 
+-void expect_ffa_msg_send_direct_req(uint16_t source, uint16_t dest, uint32_t a0,
+-				    uint32_t a1, uint32_t a2, uint32_t a3,
+-				    uint32_t a4,
+-				    const struct ffa_direct_msg *msg,
+-				    ffa_result result);
+-
+-void expect_ffa_msg_send_direct_resp(uint16_t source, uint16_t dest,
+-				     uint32_t a0, uint32_t a1, uint32_t a2,
+-				     uint32_t a3, uint32_t a4,
+-				     const struct ffa_direct_msg *msg,
+-				     ffa_result result);
++void expect_ffa_msg_send_direct_req_32(uint16_t source, uint16_t dest,
++				       uint32_t a0, uint32_t a1, uint32_t a2,
++				       uint32_t a3, uint32_t a4,
++				       const struct ffa_direct_msg *msg,
++				       ffa_result result);
++
++void expect_ffa_msg_send_direct_req_64(uint16_t source, uint16_t dest,
++				       uint64_t a0, uint64_t a1, uint64_t a2,
++				       uint64_t a3, uint64_t a4,
++				       const struct ffa_direct_msg *msg,
++				       ffa_result result);
++
++void expect_ffa_msg_send_direct_resp_32(uint16_t source, uint16_t dest,
++					uint32_t a0, uint32_t a1, uint32_t a2,
++					uint32_t a3, uint32_t a4,
++					const struct ffa_direct_msg *msg,
++					ffa_result result);
++
++void expect_ffa_msg_send_direct_resp_64(uint16_t source, uint16_t dest,
++					uint64_t a0, uint64_t a1, uint64_t a2,
++					uint64_t a3, uint64_t a4,
++					const struct ffa_direct_msg *msg,
++					ffa_result result);
+ 
+ void expect_ffa_mem_donate(uint32_t total_length, uint32_t fragment_length,
+ 			   void *buffer_address, uint32_t page_count,
+diff --git a/components/messaging/ffa/libsp/mock/test/test_mock_ffa_api.cpp b/components/messaging/ffa/libsp/mock/test/test_mock_ffa_api.cpp
+index ab33649..c1cbdd6 100644
+--- a/components/messaging/ffa/libsp/mock/test/test_mock_ffa_api.cpp
++++ b/components/messaging/ffa/libsp/mock/test/test_mock_ffa_api.cpp
+@@ -105,7 +105,7 @@ TEST(mock_ffa_api, ffa_msg_wait)
+ 	MEMCMP_EQUAL(&expected_msg, &msg, sizeof(expected_msg));
+ }
+ 
+-TEST(mock_ffa_api, ffa_msg_send_direct_req)
++TEST(mock_ffa_api, ffa_msg_send_direct_req_32)
+ {
+ 	const uint16_t source = 0x1122;
+ 	const uint16_t dest = 0x2233;
+@@ -116,13 +116,30 @@ TEST(mock_ffa_api, ffa_msg_send_direct_req)
+ 	const uint32_t a4 = 0x89124567;
+ 	struct ffa_direct_msg msg = { 0 };
+ 
+-	expect_ffa_msg_send_direct_req(source, dest, a0, a1, a2, a3, a4,
++	expect_ffa_msg_send_direct_req_32(source, dest, a0, a1, a2, a3, a4,
++				          &expected_msg, result);
++	LONGS_EQUAL(result, ffa_msg_send_direct_req_32(source, dest, a0, a1, a2,
++						       a3, a4, &msg));
++}
++
++TEST(mock_ffa_api, ffa_msg_send_direct_req_64)
++{
++	const uint16_t source = 0x1122;
++	const uint16_t dest = 0x2233;
++	const uint64_t a0 = 0x4567891221987654;
++	const uint64_t a1 = 0x5678912442198765;
++	const uint64_t a2 = 0x6789124554219876;
++	const uint64_t a3 = 0x7891245665421987;
++	const uint64_t a4 = 0x8912456776542198;
++	struct ffa_direct_msg msg = { 0 };
++
++	expect_ffa_msg_send_direct_req_64(source, dest, a0, a1, a2, a3, a4,
+ 				       &expected_msg, result);
+-	LONGS_EQUAL(result, ffa_msg_send_direct_req(source, dest, a0, a1, a2,
+-						    a3, a4, &msg));
++	LONGS_EQUAL(result, ffa_msg_send_direct_req_64(source, dest, a0, a1, a2,
++						       a3, a4, &msg));
+ }
+ 
+-TEST(mock_ffa_api, ffa_msg_send_direct_resp)
++TEST(mock_ffa_api, ffa_msg_send_direct_resp_32)
+ {
+ 	const uint16_t source = 0x1122;
+ 	const uint16_t dest = 0x2233;
+@@ -133,10 +150,27 @@ TEST(mock_ffa_api, ffa_msg_send_direct_resp)
+ 	const uint32_t a4 = 0x89124567;
+ 	struct ffa_direct_msg msg = { 0 };
+ 
+-	expect_ffa_msg_send_direct_resp(source, dest, a0, a1, a2, a3, a4,
++	expect_ffa_msg_send_direct_resp_32(source, dest, a0, a1, a2, a3, a4,
+ 					&expected_msg, result);
+-	LONGS_EQUAL(result, ffa_msg_send_direct_resp(source, dest, a0, a1, a2,
+-						     a3, a4, &msg));
++	LONGS_EQUAL(result, ffa_msg_send_direct_resp_32(source, dest, a0, a1,
++							a2, a3, a4, &msg));
++}
++
++TEST(mock_ffa_api, ffa_msg_send_direct_resp_64)
++{
++	const uint16_t source = 0x1122;
++	const uint16_t dest = 0x2233;
++	const uint64_t a0 = 0x4567891221987654;
++	const uint64_t a1 = 0x5678912442198765;
++	const uint64_t a2 = 0x6789124554219876;
++	const uint64_t a3 = 0x7891245665421987;
++	const uint64_t a4 = 0x8912456776542198;
++	struct ffa_direct_msg msg = { 0 };
++
++	expect_ffa_msg_send_direct_resp_64(source, dest, a0, a1, a2, a3, a4,
++					  &expected_msg, result);
++	LONGS_EQUAL(result, ffa_msg_send_direct_resp_64(source, dest, a0, a1,
++							a2, a3, a4, &msg));
+ }
+ 
+ TEST(mock_ffa_api, ffa_mem_donate)
+diff --git a/components/messaging/ffa/libsp/sp_messaging.c b/components/messaging/ffa/libsp/sp_messaging.c
+index f7223aa..392006b 100644
+--- a/components/messaging/ffa/libsp/sp_messaging.c
++++ b/components/messaging/ffa/libsp/sp_messaging.c
+@@ -1,6 +1,6 @@
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #include "ffa_api.h"
+@@ -20,22 +20,40 @@ static void pack_ffa_direct_msg(const struct sp_msg *msg,
+ 	ffa_msg->source_id = msg->source_id;
+ 	ffa_msg->destination_id = msg->destination_id;
+ 
+-	ffa_msg->args[0] = 0;
+-	memcpy(&ffa_msg->args[SP_MSG_ARG_OFFSET], msg->args, sizeof(msg->args));
++	ffa_msg->args.args64[0] = 0;
++	if (msg->is_64bit_message)
++		memcpy(&ffa_msg->args.args64[SP_MSG_ARG_OFFSET],
++		       msg->args.args64, sizeof(msg->args.args64));
++	else
++		memcpy(&ffa_msg->args.args32[SP_MSG_ARG_OFFSET],
++		       msg->args.args32, sizeof(msg->args.args32));
+ }
+ 
+ static void unpack_ffa_direct_msg(const struct ffa_direct_msg *ffa_msg,
+ 				  struct sp_msg *msg)
+ {
+-	if (ffa_msg->function_id != FFA_SUCCESS_32) {
++	if (ffa_msg->function_id == FFA_MSG_SEND_DIRECT_REQ_32 ||
++	    ffa_msg->function_id == FFA_MSG_SEND_DIRECT_RESP_32) {
+ 		/*
+-		 * Handling request or response (error is handled before call)
++		 * Handling 32 bit request or response
+ 		 */
+ 		msg->source_id = ffa_msg->source_id;
+ 		msg->destination_id = ffa_msg->destination_id;
++		msg->is_64bit_message = FFA_IS_64_BIT_FUNC(ffa_msg->function_id);
+ 
+-		memcpy(msg->args, &ffa_msg->args[SP_MSG_ARG_OFFSET],
+-		       sizeof(msg->args));
++		memcpy(msg->args.args32, &ffa_msg->args.args32[SP_MSG_ARG_OFFSET],
++		       sizeof(msg->args.args32));
++	} else if (ffa_msg->function_id == FFA_MSG_SEND_DIRECT_REQ_64 ||
++		   ffa_msg->function_id == FFA_MSG_SEND_DIRECT_RESP_64) {
++		/*
++		 * Handling 64 bit request or response
++		 */
++		msg->source_id = ffa_msg->source_id;
++		msg->destination_id = ffa_msg->destination_id;
++		msg->is_64bit_message = FFA_IS_64_BIT_FUNC(ffa_msg->function_id);
++
++		memcpy(msg->args.args64, &ffa_msg->args.args64[SP_MSG_ARG_OFFSET],
++		       sizeof(msg->args.args64));
+ 	} else {
+ 		/* Success has no message parameters */
+ 		*msg = (struct sp_msg){ 0 };
+@@ -89,11 +107,18 @@ sp_result sp_msg_send_direct_req(const struct sp_msg *req, struct sp_msg *resp)
+ 	ffa_direct_msg_routing_ext_req_pre_hook(&ffa_req);
+ #endif
+ 
+-	ffa_res = ffa_msg_send_direct_req(ffa_req.source_id,
+-					  ffa_req.destination_id,
+-					  ffa_req.args[0], ffa_req.args[1],
+-					  ffa_req.args[2], ffa_req.args[3],
+-					  ffa_req.args[4], &ffa_resp);
++	if (req->is_64bit_message)
++		ffa_res = ffa_msg_send_direct_req_64(
++			ffa_req.source_id, ffa_req.destination_id,
++			ffa_req.args.args64[0], ffa_req.args.args64[1],
++			ffa_req.args.args64[2], ffa_req.args.args64[3],
++			ffa_req.args.args64[4], &ffa_resp);
++	else
++		ffa_res = ffa_msg_send_direct_req_32(
++			ffa_req.source_id, ffa_req.destination_id,
++			ffa_req.args.args32[0], ffa_req.args.args32[1],
++			ffa_req.args.args32[2], ffa_req.args.args32[3],
++			ffa_req.args.args32[4], &ffa_resp);
+ 
+ 	if (ffa_res != FFA_OK) {
+ #if FFA_DIRECT_MSG_ROUTING_EXTENSION
+@@ -136,11 +161,18 @@ sp_result sp_msg_send_direct_resp(const struct sp_msg *resp, struct sp_msg *req)
+ 	ffa_direct_msg_routing_ext_resp_pre_hook(&ffa_resp);
+ #endif
+ 
+-	ffa_res = ffa_msg_send_direct_resp(ffa_resp.source_id,
+-					   ffa_resp.destination_id,
+-					   ffa_resp.args[0], ffa_resp.args[1],
+-					   ffa_resp.args[2], ffa_resp.args[3],
+-					   ffa_resp.args[4], &ffa_req);
++	if (resp->is_64bit_message)
++		ffa_res = ffa_msg_send_direct_resp_64(
++			ffa_resp.source_id, ffa_resp.destination_id,
++			ffa_resp.args.args64[0], ffa_resp.args.args64[1],
++			ffa_resp.args.args64[2], ffa_resp.args.args64[3],
++			ffa_resp.args.args64[4], &ffa_req);
++	else
++		ffa_res = ffa_msg_send_direct_resp_32(
++			ffa_resp.source_id, ffa_resp.destination_id,
++			ffa_resp.args.args32[0], ffa_resp.args.args32[1],
++			ffa_resp.args.args32[2], ffa_resp.args.args32[3],
++			ffa_resp.args.args32[4], &ffa_req);
+ 
+ 	if (ffa_res != FFA_OK) {
+ #if FFA_DIRECT_MSG_ROUTING_EXTENSION
+@@ -182,11 +214,11 @@ sp_result sp_msg_send_rc_req(const struct sp_msg *req, struct sp_msg *resp)
+ 
+ 	ffa_direct_msg_routing_ext_rc_req_pre_hook(&ffa_req);
+ 
+-	ffa_res = ffa_msg_send_direct_resp(ffa_req.source_id,
++	ffa_res = ffa_msg_send_direct_resp_32(ffa_req.source_id,
+ 					   ffa_req.destination_id,
+-					   ffa_req.args[0], ffa_req.args[1],
+-					   ffa_req.args[2], ffa_req.args[3],
+-					   ffa_req.args[4], &ffa_resp);
++					   ffa_req.args.args32[0], ffa_req.args.args32[1],
++					   ffa_req.args.args32[2], ffa_req.args.args32[3],
++					   ffa_req.args.args32[4], &ffa_resp);
+ 
+ 	if (ffa_res != FFA_OK) {
+ 		ffa_direct_msg_routing_ext_rc_req_error_hook();
+diff --git a/components/messaging/ffa/libsp/test/test_ffa_api.cpp b/components/messaging/ffa/libsp/test/test_ffa_api.cpp
+index 8fa261e..6cca085 100644
+--- a/components/messaging/ffa/libsp/test/test_ffa_api.cpp
++++ b/components/messaging/ffa/libsp/test/test_ffa_api.cpp
+@@ -43,20 +43,35 @@ TEST_GROUP(ffa_api)
+ 		svc_result.a2 = (uint32_t)error_code;
+ 	}
+ 
+-	void msg_equal(uint32_t func_id, uint16_t source_id, uint16_t dest_id,
+-			uint32_t arg0, uint32_t arg1, uint32_t arg2,
+-			uint32_t arg3, uint32_t arg4)
++	void msg_equal_32(uint32_t func_id, uint16_t source_id, uint16_t dest_id,
++			  uint32_t arg0, uint32_t arg1, uint32_t arg2,
++			  uint32_t arg3, uint32_t arg4)
+ 	{
+ 		UNSIGNED_LONGS_EQUAL(func_id, msg.function_id);
+ 		UNSIGNED_LONGS_EQUAL(source_id, msg.source_id);
+ 		UNSIGNED_LONGS_EQUAL(dest_id, msg.destination_id);
+-		UNSIGNED_LONGS_EQUAL(arg0, msg.args[0]);
+-		UNSIGNED_LONGS_EQUAL(arg1, msg.args[1]);
+-		UNSIGNED_LONGS_EQUAL(arg2, msg.args[2]);
+-		UNSIGNED_LONGS_EQUAL(arg3, msg.args[3]);
+-		UNSIGNED_LONGS_EQUAL(arg4, msg.args[4]);
++		UNSIGNED_LONGS_EQUAL(arg0, msg.args.args32[0]);
++		UNSIGNED_LONGS_EQUAL(arg1, msg.args.args32[1]);
++		UNSIGNED_LONGS_EQUAL(arg2, msg.args.args32[2]);
++		UNSIGNED_LONGS_EQUAL(arg3, msg.args.args32[3]);
++		UNSIGNED_LONGS_EQUAL(arg4, msg.args.args32[4]);
+ 	}
+ 
++	void msg_equal_64(uint32_t func_id, uint16_t source_id, uint16_t dest_id,
++			  uint64_t arg0, uint64_t arg1, uint64_t arg2,
++			  uint64_t arg3, uint64_t arg4)
++	{
++		UNSIGNED_LONGS_EQUAL(func_id, msg.function_id);
++		UNSIGNED_LONGS_EQUAL(source_id, msg.source_id);
++		UNSIGNED_LONGS_EQUAL(dest_id, msg.destination_id);
++		UNSIGNED_LONGLONGS_EQUAL(arg0, msg.args.args64[0]);
++		UNSIGNED_LONGLONGS_EQUAL(arg1, msg.args.args64[1]);
++		UNSIGNED_LONGLONGS_EQUAL(arg2, msg.args.args64[2]);
++		UNSIGNED_LONGLONGS_EQUAL(arg3, msg.args.args64[3]);
++		UNSIGNED_LONGLONGS_EQUAL(arg4, msg.args.args64[4]);
++	}
++
++
+ 	struct ffa_params svc_result;
+ 	struct ffa_direct_msg msg;
+ };
+@@ -360,7 +375,7 @@ TEST(ffa_api, ffa_msg_wait_success)
+ 	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
+ 	ffa_result result = ffa_msg_wait(&msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000061, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0x84000061, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+ TEST(ffa_api, ffa_msg_wait_error)
+@@ -369,10 +384,10 @@ TEST(ffa_api, ffa_msg_wait_error)
+ 	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
+ 	ffa_result result = ffa_msg_wait(&msg);
+ 	LONGS_EQUAL(-1, result);
+-	msg_equal(0, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+-TEST(ffa_api, ffa_msg_wait_direct_req)
++TEST(ffa_api, ffa_msg_wait_direct_req_32)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -392,7 +407,31 @@ TEST(ffa_api, ffa_msg_wait_direct_req)
+ 	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
+ 	ffa_result result = ffa_msg_wait(&msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x8400006F, source_id, dest_id, arg0, arg1, arg2, arg3,
++	msg_equal_32(0x8400006F, source_id, dest_id, arg0, arg1, arg2, arg3,
++		   arg4);
++}
++
++TEST(ffa_api, ffa_msg_wait_direct_req_64)
++{
++	const uint16_t source_id = 0x1122;
++	const uint16_t dest_id = 0x3344;
++	const uint64_t arg0 = 0x0123456776543210ULL;
++	const uint64_t arg1 = 0x1234567887654321ULL;
++	const uint64_t arg2 = 0x2345678998765432ULL;
++	const uint64_t arg3 = 0x3456789aa9876543ULL;
++	const uint64_t arg4 = 0x456789abba987654ULL;
++
++	svc_result.a0 = 0xC400006F;
++	svc_result.a1 = ((uint32_t)source_id) << 16 | dest_id;
++	svc_result.a3 = arg0;
++	svc_result.a4 = arg1;
++	svc_result.a5 = arg2;
++	svc_result.a6 = arg3;
++	svc_result.a7 = arg4;
++	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
++	ffa_result result = ffa_msg_wait(&msg);
++	LONGS_EQUAL(0, result);
++	msg_equal_64(0xC400006F, source_id, dest_id, arg0, arg1, arg2, arg3,
+ 		   arg4);
+ }
+ 
+@@ -410,7 +449,7 @@ TEST(ffa_api, ffa_msg_wait_one_interrupt_success)
+ 	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
+ 	ffa_result result = ffa_msg_wait(&msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000061, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0x84000061, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+ TEST(ffa_api, ffa_msg_wait_two_interrupt_success)
+@@ -434,7 +473,7 @@ TEST(ffa_api, ffa_msg_wait_two_interrupt_success)
+ 	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
+ 	ffa_result result = ffa_msg_wait(&msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000061, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0x84000061, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+ TEST(ffa_api, ffa_msg_wait_unknown_response)
+@@ -448,7 +487,7 @@ TEST(ffa_api, ffa_msg_wait_unknown_response)
+ 	}
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_req_success)
++TEST(ffa_api, ffa_msg_send_direct_req_32_success)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -461,13 +500,13 @@ TEST(ffa_api, ffa_msg_send_direct_req_success)
+ 	svc_result.a0 = 0x84000061;
+ 	expect_ffa_svc(0x8400006F, ((uint32_t)source_id << 16) | dest_id, 0,
+ 		       arg0, arg1, arg2, arg3, arg4, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_req(
++	ffa_result result = ffa_msg_send_direct_req_32(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000061, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0x84000061, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_req_error)
++TEST(ffa_api, ffa_msg_send_direct_req_32_error)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -480,13 +519,48 @@ TEST(ffa_api, ffa_msg_send_direct_req_error)
+ 	setup_error_response(-1);
+ 	expect_ffa_svc(0x8400006F, ((uint32_t)source_id << 16) | dest_id, 0,
+ 		       arg0, arg1, arg2, arg3, arg4, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_req(
++	ffa_result result = ffa_msg_send_direct_req_32(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(-1, result);
+-	msg_equal(0, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0, 0, 0, 0, 0, 0, 0, 0);
++}
++
++TEST(ffa_api, ffa_msg_send_direct_req_32_get_resp_64)
++{
++	const uint16_t source_id = 0x1122;
++	const uint16_t dest_id = 0x3344;
++	const uint32_t arg0 = 0x01234567ULL;
++	const uint32_t arg1 = 0x12345678ULL;
++	const uint32_t arg2 = 0x23456789ULL;
++	const uint32_t arg3 = 0x3456789aULL;
++	const uint32_t arg4 = 0x456789abULL;
++	const uint16_t resp_source_id = 0x1221;
++	const uint16_t resp_dest_id = 0x3443;
++	const uint64_t resp_arg0 = 0x9012345665432109ULL;
++	const uint64_t resp_arg1 = 0xa12345677654321aULL;
++	const uint64_t resp_arg2 = 0xb23456788765432bULL;
++	const uint64_t resp_arg3 = 0xc34567899876543cULL;
++	const uint64_t resp_arg4 = 0xd456789aa987654dULL;
++	assert_environment_t assert_env;
++
++	svc_result.a0 = 0xC4000070;
++	svc_result.a1 = ((uint32_t)resp_source_id) << 16 | resp_dest_id;
++	svc_result.a3 = resp_arg0;
++	svc_result.a4 = resp_arg1;
++	svc_result.a5 = resp_arg2;
++	svc_result.a6 = resp_arg3;
++	svc_result.a7 = resp_arg4;
++
++	expect_ffa_svc(0x8400006F, ((uint32_t)source_id << 16) | dest_id, 0,
++		       arg0, arg1, arg2, arg3, arg4, &svc_result);
++
++	if (SETUP_ASSERT_ENVIRONMENT(assert_env)) {
++		ffa_msg_send_direct_req_32(source_id, dest_id, arg0, arg1, arg2,
++					arg3, arg4, &msg);
++	}
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_req_direct_resp)
++TEST(ffa_api, ffa_msg_send_direct_req_32_direct_resp)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -512,14 +586,82 @@ TEST(ffa_api, ffa_msg_send_direct_req_direct_resp)
+ 	svc_result.a7 = resp_arg4;
+ 	expect_ffa_svc(0x8400006F, ((uint32_t)source_id << 16) | dest_id, 0,
+ 		       arg0, arg1, arg2, arg3, arg4, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_req(
++	ffa_result result = ffa_msg_send_direct_req_32(
++		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
++	LONGS_EQUAL(0, result);
++	msg_equal_32(0x84000070, resp_source_id, resp_dest_id, resp_arg0,
++		   resp_arg1, resp_arg2, resp_arg3, resp_arg4);
++}
++
++TEST(ffa_api, ffa_msg_send_direct_req_64_success)
++{
++	const uint16_t source_id = 0x1122;
++	const uint16_t dest_id = 0x3344;
++	const uint64_t arg0 = 0x0123456776543210ULL;
++	const uint64_t arg1 = 0x1234567887654321ULL;
++	const uint64_t arg2 = 0x2345678998765432ULL;
++	const uint64_t arg3 = 0x3456789aa9876543ULL;
++	const uint64_t arg4 = 0x456789abba987654ULL;
++	const uint16_t resp_source_id = 0x1221;
++	const uint16_t resp_dest_id = 0x3443;
++	const uint64_t resp_arg0 = 0x9012345665432109ULL;
++	const uint64_t resp_arg1 = 0xa12345677654321aULL;
++	const uint64_t resp_arg2 = 0xb23456788765432bULL;
++	const uint64_t resp_arg3 = 0xc34567899876543cULL;
++	const uint64_t resp_arg4 = 0xd456789aa987654dULL;
++
++	svc_result.a0 = 0xC4000070;
++	svc_result.a1 = ((uint32_t)resp_source_id) << 16 | resp_dest_id;
++	svc_result.a3 = resp_arg0;
++	svc_result.a4 = resp_arg1;
++	svc_result.a5 = resp_arg2;
++	svc_result.a6 = resp_arg3;
++	svc_result.a7 = resp_arg4;
++	expect_ffa_svc(0xC400006F, ((uint32_t)source_id << 16) | dest_id, 0,
++		       arg0, arg1, arg2, arg3, arg4, &svc_result);
++	ffa_result result = ffa_msg_send_direct_req_64(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000070, resp_source_id, resp_dest_id, resp_arg0,
++	msg_equal_64(0xC4000070, resp_source_id, resp_dest_id, resp_arg0,
+ 		   resp_arg1, resp_arg2, resp_arg3, resp_arg4);
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_req_one_interrupt_success)
++TEST(ffa_api, ffa_msg_send_direct_req_64_get_resp_32)
++{
++	const uint16_t source_id = 0x1122;
++	const uint16_t dest_id = 0x3344;
++	const uint64_t arg0 = 0x9012345665432109ULL;
++	const uint64_t arg1 = 0xa12345677654321aULL;
++	const uint64_t arg2 = 0xb23456788765432bULL;
++	const uint64_t arg3 = 0xc34567899876543cULL;
++	const uint64_t arg4 = 0xd456789aa987654dULL;
++	const uint16_t resp_source_id = 0x1221;
++	const uint16_t resp_dest_id = 0x3443;
++	const uint32_t resp_arg0 = 0x01234567ULL;
++	const uint32_t resp_arg1 = 0x12345678ULL;
++	const uint32_t resp_arg2 = 0x23456789ULL;
++	const uint32_t resp_arg3 = 0x3456789aULL;
++	const uint32_t resp_arg4 = 0x456789abULL;
++	assert_environment_t assert_env;
++
++	svc_result.a0 = 0x84000070;
++	svc_result.a1 = ((uint32_t)resp_source_id) << 16 | resp_dest_id;
++	svc_result.a3 = resp_arg0;
++	svc_result.a4 = resp_arg1;
++	svc_result.a5 = resp_arg2;
++	svc_result.a6 = resp_arg3;
++	svc_result.a7 = resp_arg4;
++
++	expect_ffa_svc(0xC400006F, ((uint32_t)source_id << 16) | dest_id, 0,
++		       arg0, arg1, arg2, arg3, arg4, &svc_result);
++
++	if (SETUP_ASSERT_ENVIRONMENT(assert_env)) {
++		ffa_msg_send_direct_req_64(source_id, dest_id, arg0, arg1, arg2,
++					arg3, arg4, &msg);
++	}
++}
++
++TEST(ffa_api, ffa_msg_send_direct_req_32_one_interrupt_success)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -539,13 +681,13 @@ TEST(ffa_api, ffa_msg_send_direct_req_one_interrupt_success)
+ 
+ 	svc_result.a0 = 0x84000061;
+ 	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_req(
++	ffa_result result = ffa_msg_send_direct_req_32(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000061, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0x84000061, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_req_two_interrupt_success)
++TEST(ffa_api, ffa_msg_send_direct_req_32_two_interrupt_success)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -573,13 +715,13 @@ TEST(ffa_api, ffa_msg_send_direct_req_two_interrupt_success)
+ 
+ 	svc_result.a0 = 0x84000061;
+ 	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_req(
++	ffa_result result = ffa_msg_send_direct_req_32(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000061, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0x84000061, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_req_unknown_response)
++TEST(ffa_api, ffa_msg_send_direct_req_32_unknown_response)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -594,12 +736,12 @@ TEST(ffa_api, ffa_msg_send_direct_req_unknown_response)
+ 	expect_ffa_svc(0x8400006F, ((uint32_t)source_id << 16) | dest_id, 0,
+ 		       arg0, arg1, arg2, arg3, arg4, &svc_result);
+ 	if (SETUP_ASSERT_ENVIRONMENT(assert_env)) {
+-		ffa_msg_send_direct_req(source_id, dest_id, arg0, arg1, arg2,
++		ffa_msg_send_direct_req_32(source_id, dest_id, arg0, arg1, arg2,
+ 					arg3, arg4, &msg);
+ 	}
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_resp_success)
++TEST(ffa_api, ffa_msg_send_direct_resp_32_success)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -612,13 +754,13 @@ TEST(ffa_api, ffa_msg_send_direct_resp_success)
+ 	svc_result.a0 = 0x84000061;
+ 	expect_ffa_svc(0x84000070, ((uint32_t)source_id << 16) | dest_id, 0,
+ 		       arg0, arg1, arg2, arg3, arg4, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_resp(
++	ffa_result result = ffa_msg_send_direct_resp_32(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000061, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0x84000061, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_resp_error)
++TEST(ffa_api, ffa_msg_send_direct_resp_32_error)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -631,13 +773,13 @@ TEST(ffa_api, ffa_msg_send_direct_resp_error)
+ 	setup_error_response(-1);
+ 	expect_ffa_svc(0x84000070, ((uint32_t)source_id << 16) | dest_id, 0,
+ 		       arg0, arg1, arg2, arg3, arg4, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_resp(
++	ffa_result result = ffa_msg_send_direct_resp_32(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(-1, result);
+-	msg_equal(0, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_resp_then_get_direct_req_as_response)
++TEST(ffa_api, ffa_msg_send_direct_resp_32_then_get_direct_req_32_as_response)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -663,14 +805,113 @@ TEST(ffa_api, ffa_msg_send_direct_resp_then_get_direct_req_as_response)
+ 	svc_result.a7 = resp_arg4;
+ 	expect_ffa_svc(0x84000070, ((uint32_t)source_id << 16) | dest_id, 0,
+ 		       arg0, arg1, arg2, arg3, arg4, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_resp(
++	ffa_result result = ffa_msg_send_direct_resp_32(
++		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
++	LONGS_EQUAL(0, result);
++	msg_equal_32(0x8400006F, resp_source_id, resp_dest_id, resp_arg0,
++		   resp_arg1, resp_arg2, resp_arg3, resp_arg4);
++}
++
++TEST(ffa_api, ffa_msg_send_direct_resp_32_then_get_direct_req_64_as_response)
++{
++	const uint16_t source_id = 0x1122;
++	const uint16_t dest_id = 0x3344;
++	const uint32_t arg0 = 0x01234567ULL;
++	const uint32_t arg1 = 0x12345678ULL;
++	const uint32_t arg2 = 0x23456789ULL;
++	const uint32_t arg3 = 0x3456789aULL;
++	const uint32_t arg4 = 0x456789abULL;
++	const uint16_t resp_source_id = 0x1221;
++	const uint16_t resp_dest_id = 0x3443;
++	const uint64_t resp_arg0 = 0x9012345665432109ULL;
++	const uint64_t resp_arg1 = 0xa12345677654321aULL;
++	const uint64_t resp_arg2 = 0xb23456788765432bULL;
++	const uint64_t resp_arg3 = 0xc34567899876543cULL;
++	const uint64_t resp_arg4 = 0xd456789aa987654dULL;
++
++	svc_result.a0 = 0xC400006F;
++	svc_result.a1 = ((uint32_t)resp_source_id) << 16 | resp_dest_id;
++	svc_result.a3 = resp_arg0;
++	svc_result.a4 = resp_arg1;
++	svc_result.a5 = resp_arg2;
++	svc_result.a6 = resp_arg3;
++	svc_result.a7 = resp_arg4;
++	expect_ffa_svc(0x84000070, ((uint32_t)source_id << 16) | dest_id, 0,
++		       arg0, arg1, arg2, arg3, arg4, &svc_result);
++	ffa_result result = ffa_msg_send_direct_resp_32(
++		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
++	LONGS_EQUAL(0, result);
++	msg_equal_64(0xC400006F, resp_source_id, resp_dest_id, resp_arg0,
++		   resp_arg1, resp_arg2, resp_arg3, resp_arg4);
++}
++
++TEST(ffa_api, ffa_msg_send_direct_resp_64_then_get_direct_req_32_as_response)
++{
++	const uint16_t source_id = 0x1122;
++	const uint16_t dest_id = 0x3344;
++	const uint64_t arg0 = 0x9012345665432109ULL;
++	const uint64_t arg1 = 0xa12345677654321aULL;
++	const uint64_t arg2 = 0xb23456788765432bULL;
++	const uint64_t arg3 = 0xc34567899876543cULL;
++	const uint64_t arg4 = 0xd456789aa987654dULL;
++	const uint16_t resp_source_id = 0x1221;
++	const uint16_t resp_dest_id = 0x3443;
++	const uint32_t resp_arg0 = 0x01234567ULL;
++	const uint32_t resp_arg1 = 0x12345678ULL;
++	const uint32_t resp_arg2 = 0x23456789ULL;
++	const uint32_t resp_arg3 = 0x3456789aULL;
++	const uint32_t resp_arg4 = 0x456789abULL;
++
++	svc_result.a0 = 0x8400006F;
++	svc_result.a1 = ((uint32_t)resp_source_id) << 16 | resp_dest_id;
++	svc_result.a3 = resp_arg0;
++	svc_result.a4 = resp_arg1;
++	svc_result.a5 = resp_arg2;
++	svc_result.a6 = resp_arg3;
++	svc_result.a7 = resp_arg4;
++	expect_ffa_svc(0xC4000070, ((uint32_t)source_id << 16) | dest_id, 0,
++		       arg0, arg1, arg2, arg3, arg4, &svc_result);
++	ffa_result result = ffa_msg_send_direct_resp_64(
++		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
++	LONGS_EQUAL(0, result);
++	msg_equal_32(0x8400006F, resp_source_id, resp_dest_id, resp_arg0,
++		   resp_arg1, resp_arg2, resp_arg3, resp_arg4);
++}
++
++TEST(ffa_api, ffa_msg_send_direct_resp_64_then_get_direct_req_64_as_response)
++{
++	const uint16_t source_id = 0x1122;
++	const uint16_t dest_id = 0x3344;
++	const uint64_t arg0 = 0x0123456776543210ULL;
++	const uint64_t arg1 = 0x1234567887654321ULL;
++	const uint64_t arg2 = 0x2345678998765432ULL;
++	const uint64_t arg3 = 0x3456789aa9876543ULL;
++	const uint64_t arg4 = 0x456789abba987654ULL;
++	const uint16_t resp_source_id = 0x1221;
++	const uint16_t resp_dest_id = 0x3443;
++	const uint64_t resp_arg0 = 0x9012345665432109ULL;
++	const uint64_t resp_arg1 = 0xa12345677654321aULL;
++	const uint64_t resp_arg2 = 0xb23456788765432bULL;
++	const uint64_t resp_arg3 = 0xc34567899876543cULL;
++	const uint64_t resp_arg4 = 0xd456789aa987654dULL;
++
++	svc_result.a0 = 0xC400006F;
++	svc_result.a1 = ((uint32_t)resp_source_id) << 16 | resp_dest_id;
++	svc_result.a3 = resp_arg0;
++	svc_result.a4 = resp_arg1;
++	svc_result.a5 = resp_arg2;
++	svc_result.a6 = resp_arg3;
++	svc_result.a7 = resp_arg4;
++	expect_ffa_svc(0xC4000070, ((uint32_t)source_id << 16) | dest_id, 0,
++		       arg0, arg1, arg2, arg3, arg4, &svc_result);
++	ffa_result result = ffa_msg_send_direct_resp_64(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x8400006F, resp_source_id, resp_dest_id, resp_arg0,
++	msg_equal_64(0xC400006F, resp_source_id, resp_dest_id, resp_arg0,
+ 		   resp_arg1, resp_arg2, resp_arg3, resp_arg4);
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_resp_one_interrupt_success)
++TEST(ffa_api, ffa_msg_send_direct_resp_32_one_interrupt_success)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -690,13 +931,13 @@ TEST(ffa_api, ffa_msg_send_direct_resp_one_interrupt_success)
+ 
+ 	svc_result.a0 = 0x84000061;
+ 	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_resp(
++	ffa_result result = ffa_msg_send_direct_resp_32(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000061, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0x84000061, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_resp_two_interrupt_success)
++TEST(ffa_api, ffa_msg_send_direct_resp_32_two_interrupt_success)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -724,13 +965,13 @@ TEST(ffa_api, ffa_msg_send_direct_resp_two_interrupt_success)
+ 
+ 	svc_result.a0 = 0x84000061;
+ 	expect_ffa_svc(0x8400006B, 0, 0, 0, 0, 0, 0, 0, &svc_result);
+-	ffa_result result = ffa_msg_send_direct_resp(
++	ffa_result result = ffa_msg_send_direct_resp_32(
+ 		source_id, dest_id, arg0, arg1, arg2, arg3, arg4, &msg);
+ 	LONGS_EQUAL(0, result);
+-	msg_equal(0x84000061, 0, 0, 0, 0, 0, 0, 0);
++	msg_equal_32(0x84000061, 0, 0, 0, 0, 0, 0, 0);
+ }
+ 
+-TEST(ffa_api, ffa_msg_send_direct_resp_unknown_response)
++TEST(ffa_api, ffa_msg_send_direct_resp_32_unknown_response)
+ {
+ 	const uint16_t source_id = 0x1122;
+ 	const uint16_t dest_id = 0x3344;
+@@ -745,7 +986,7 @@ TEST(ffa_api, ffa_msg_send_direct_resp_unknown_response)
+ 	expect_ffa_svc(0x84000070, ((uint32_t)source_id << 16) | dest_id, 0,
+ 		       arg0, arg1, arg2, arg3, arg4, &svc_result);
+ 	if (SETUP_ASSERT_ENVIRONMENT(assert_env)) {
+-		ffa_msg_send_direct_resp(source_id, dest_id, arg0, arg1, arg2,
++		ffa_msg_send_direct_resp_32(source_id, dest_id, arg0, arg1, arg2,
+ 					 arg3, arg4, &msg);
+ 	}
+ }
+diff --git a/components/messaging/ffa/libsp/test/test_sp_messaging.cpp b/components/messaging/ffa/libsp/test/test_sp_messaging.cpp
+index 78bf8bf..786f66e 100644
+--- a/components/messaging/ffa/libsp/test/test_sp_messaging.cpp
++++ b/components/messaging/ffa/libsp/test/test_sp_messaging.cpp
+@@ -1,6 +1,6 @@
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+- * Copyright (c) 2021, Arm Limited. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
+  */
+ 
+ #include <CppUTest/TestHarness.h>
+@@ -32,7 +32,7 @@ TEST_GROUP(sp_messaging)
+ 		mock().clear();
+ 	}
+ 
+-	void copy_sp_to_ffa_args(const uint32_t sp_args[], uint32_t ffa_args[])
++	void copy_sp_to_ffa_args_32(const uint32_t sp_args[], uint32_t ffa_args[])
+ 	{
+ 		int i = 0;
+ 
+@@ -41,7 +41,16 @@ TEST_GROUP(sp_messaging)
+ 		}
+ 	}
+ 
+-	void fill_ffa_msg(struct ffa_direct_msg * msg)
++	void copy_sp_to_ffa_args_64(const uint64_t sp_args[], uint64_t ffa_args[])
++	{
++		int i = 0;
++
++		for (i = 0; i < SP_MSG_ARG_COUNT; i++) {
++			ffa_args[i + SP_MSG_ARG_OFFSET] = sp_args[i];
++		}
++	}
++
++	void fill_ffa_msg_32(struct ffa_direct_msg * msg)
+ 	{
+ 		int i = 0;
+ 
+@@ -49,20 +58,47 @@ TEST_GROUP(sp_messaging)
+ 		msg->source_id = source_id;
+ 		msg->destination_id = dest_id;
+ 
+-		msg->args[0] = 0;
++		msg->args.args32[0] = 0;
+ 		for (i = 0; i < SP_MSG_ARG_COUNT; i++) {
+-			msg->args[i + SP_MSG_ARG_OFFSET] = args[i];
++			msg->args.args32[i + SP_MSG_ARG_OFFSET] = args32[i];
+ 		}
+ 	}
+ 
+-	void fill_sp_msg(struct sp_msg * msg)
++	void fill_ffa_msg_64(struct ffa_direct_msg * msg)
+ 	{
+ 		int i = 0;
+ 
++		msg->function_id = FFA_MSG_SEND_DIRECT_REQ_64;
+ 		msg->source_id = source_id;
+ 		msg->destination_id = dest_id;
++
++		msg->args.args64[0] = 0;
+ 		for (i = 0; i < SP_MSG_ARG_COUNT; i++) {
+-			msg->args[i] = args[i + SP_MSG_ARG_OFFSET];
++			msg->args.args64[i + SP_MSG_ARG_OFFSET] = args64[i];
++		}
++	}
++
++	void fill_sp_msg_32(struct sp_msg * msg)
++	{
++		int i = 0;
++
++		msg->source_id = source_id;
++		msg->destination_id = dest_id;
++		msg->is_64bit_message = false;
++		for (i = 0; i < SP_MSG_ARG_COUNT; i++) {
++			msg->args.args32[i] = args32[i + SP_MSG_ARG_OFFSET];
++		}
++	}
++
++	void fill_sp_msg_64(struct sp_msg * msg)
++	{
++		int i = 0;
++
++		msg->source_id = source_id;
++		msg->destination_id = dest_id;
++		msg->is_64bit_message = true;
++		for (i = 0; i < SP_MSG_ARG_COUNT; i++) {
++			msg->args.args64[i] = args64[i + SP_MSG_ARG_OFFSET];
+ 		}
+ 	}
+ 
+@@ -74,10 +110,19 @@ TEST_GROUP(sp_messaging)
+ 		UNSIGNED_LONGS_EQUAL(ffa_msg->source_id, sp_msg->source_id);
+ 		UNSIGNED_LONGS_EQUAL(ffa_msg->destination_id,
+ 				     sp_msg->destination_id);
+-		for (i = 0; i < SP_MSG_ARG_COUNT; i++) {
+-			UNSIGNED_LONGS_EQUAL(
+-				ffa_msg->args[i + SP_MSG_ARG_OFFSET],
+-				sp_msg->args[i]);
++		CHECK_EQUAL(FFA_IS_64_BIT_FUNC(ffa_msg->function_id), sp_msg->is_64bit_message);
++		if (sp_msg->is_64bit_message) {
++			for (i = 0; i < SP_MSG_ARG_COUNT; i++) {
++				UNSIGNED_LONGS_EQUAL(
++					ffa_msg->args.args64[i + SP_MSG_ARG_OFFSET],
++					sp_msg->args.args64[i]);
++			}
++		} else {
++			for (i = 0; i < SP_MSG_ARG_COUNT; i++) {
++				UNSIGNED_LONGS_EQUAL(
++					ffa_msg->args.args32[i + SP_MSG_ARG_OFFSET],
++					sp_msg->args.args32[i]);
++			}
+ 		}
+ 	}
+ 
+@@ -87,7 +132,7 @@ TEST_GROUP(sp_messaging)
+ 		struct ffa_direct_msg expected_ffa_req = { 0 };
+ 		struct sp_msg req = { 0 };
+ 
+-		fill_ffa_msg(&expected_ffa_req);
++		fill_ffa_msg_32(&expected_ffa_req);
+ 		expected_ffa_req.source_id = source_id;
+ 		expected_ffa_req.destination_id = dest_id;
+ 		expect_ffa_msg_wait(&expected_ffa_req, FFA_OK);
+@@ -103,8 +148,10 @@ TEST_GROUP(sp_messaging)
+ 
+ 	const uint16_t source_id = 0x1234;
+ 	const uint16_t dest_id = 0x5678;
+-	const uint32_t args[SP_MSG_ARG_COUNT] = { 0x01234567, 0x12345678,
+-						  0x23456789, 0x3456789a };
++	const uint32_t args32[SP_MSG_ARG_COUNT] = { 0x01234567, 0x12345678,
++						    0x23456789, 0x3456789a };
++	const uint64_t args64[SP_MSG_ARG_COUNT] = { 0x0123456776543210, 0x1234567887654321,
++						    0x2345678998765432, 0x3456789aa9876543 };
+ 	const sp_result result = -1;
+ 	const sp_msg empty_sp_msg = (const sp_msg){ 0 };
+ };
+@@ -126,7 +173,7 @@ TEST(sp_messaging, sp_msg_wait_ffa_error)
+ 
+ TEST(sp_messaging, sp_msg_wait)
+ {
+-	fill_ffa_msg(&ffa_msg);
++	fill_ffa_msg_32(&ffa_msg);
+ 	expect_ffa_msg_wait(&ffa_msg, FFA_OK);
+ 
+ 	LONGS_EQUAL(SP_RESULT_OK, sp_msg_wait(&req));
+@@ -139,12 +186,12 @@ TEST(sp_messaging, sp_msg_wait_deny_rc_failure)
+ 	struct ffa_direct_msg rc_msg = { 0 };
+ 	ffa_result result = FFA_ABORTED;
+ 
+-	fill_ffa_msg(&rc_msg);
+-	rc_msg.args[0] = ROUTING_EXT_RC_BIT;
++	fill_ffa_msg_32(&rc_msg);
++	rc_msg.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 	expect_ffa_msg_wait(&rc_msg, FFA_OK);
+ 
+-	fill_ffa_msg(&ffa_msg);
+-	expect_ffa_msg_send_direct_resp(
++	fill_ffa_msg_32(&ffa_msg);
++	expect_ffa_msg_send_direct_resp_32(
+ 		rc_msg.destination_id, rc_msg.source_id,
+ 		ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT,
+ 		SP_RESULT_FFA(FFA_DENIED), 0, 0, 0, &ffa_msg, result);
+@@ -157,12 +204,12 @@ TEST(sp_messaging, sp_msg_wait_deny_rc)
+ {
+ 	struct ffa_direct_msg rc_msg = { 0 };
+ 
+-	fill_ffa_msg(&rc_msg);
+-	rc_msg.args[0] = ROUTING_EXT_RC_BIT;
++	fill_ffa_msg_32(&rc_msg);
++	rc_msg.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 	expect_ffa_msg_wait(&rc_msg, FFA_OK);
+ 
+-	fill_ffa_msg(&ffa_msg);
+-	expect_ffa_msg_send_direct_resp(
++	fill_ffa_msg_32(&ffa_msg);
++	expect_ffa_msg_send_direct_resp_32(
+ 		rc_msg.destination_id, rc_msg.source_id,
+ 		ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT,
+ 		SP_RESULT_FFA(FFA_DENIED), 0, 0, 0, &ffa_msg, FFA_OK);
+@@ -191,10 +238,10 @@ TEST(sp_messaging, sp_msg_send_direct_req_ffa_error)
+ 	ffa_result result = FFA_ABORTED;
+ 	uint32_t expected_ffa_args[5] = { 0 };
+ 
+-	fill_sp_msg(&req);
++	fill_sp_msg_32(&req);
+ 	memset(&resp, 0x5a, sizeof(resp));
+-	copy_sp_to_ffa_args(req.args, expected_ffa_args);
+-	expect_ffa_msg_send_direct_req(
++	copy_sp_to_ffa_args_32(req.args.args32, expected_ffa_args);
++	expect_ffa_msg_send_direct_req_32(
+ 		req.source_id, req.destination_id, expected_ffa_args[0],
+ 		expected_ffa_args[1], expected_ffa_args[2],
+ 		expected_ffa_args[3], expected_ffa_args[4], &ffa_msg, result);
+@@ -203,14 +250,30 @@ TEST(sp_messaging, sp_msg_send_direct_req_ffa_error)
+ 	MEMCMP_EQUAL(&empty_sp_msg, &resp, sizeof(empty_sp_msg));
+ }
+ 
+-TEST(sp_messaging, sp_msg_send_direct_req_msg)
++TEST(sp_messaging, sp_msg_send_direct_req_msg_32)
+ {
+ 	uint32_t expected_ffa_args[5] = { 0 };
+ 
+-	fill_sp_msg(&req);
+-	fill_ffa_msg(&ffa_msg);
+-	copy_sp_to_ffa_args(req.args, expected_ffa_args);
+-	expect_ffa_msg_send_direct_req(
++	fill_sp_msg_32(&req);
++	fill_ffa_msg_32(&ffa_msg);
++	copy_sp_to_ffa_args_32(req.args.args32, expected_ffa_args);
++	expect_ffa_msg_send_direct_req_32(
++		req.source_id, req.destination_id, expected_ffa_args[0],
++		expected_ffa_args[1], expected_ffa_args[2],
++		expected_ffa_args[3], expected_ffa_args[4], &ffa_msg, FFA_OK);
++
++	LONGS_EQUAL(SP_RESULT_OK, sp_msg_send_direct_req(&req, &resp));
++	ffa_and_sp_msg_equal(&ffa_msg, &resp);
++}
++
++TEST(sp_messaging, sp_msg_send_direct_req_msg_64)
++{
++	uint64_t expected_ffa_args[5] = { 0 };
++
++	fill_sp_msg_64(&req);
++	fill_ffa_msg_64(&ffa_msg);
++	copy_sp_to_ffa_args_64(req.args.args64, expected_ffa_args);
++	expect_ffa_msg_send_direct_req_64(
+ 		req.source_id, req.destination_id, expected_ffa_args[0],
+ 		expected_ffa_args[1], expected_ffa_args[2],
+ 		expected_ffa_args[3], expected_ffa_args[4], &ffa_msg, FFA_OK);
+@@ -223,10 +286,10 @@ TEST(sp_messaging, sp_msg_send_direct_req_success)
+ {
+ 	uint32_t expected_ffa_args[5] = { 0 };
+ 
+-	fill_sp_msg(&req);
++	fill_sp_msg_32(&req);
+ 	ffa_msg.function_id = FFA_SUCCESS_32;
+-	copy_sp_to_ffa_args(req.args, expected_ffa_args);
+-	expect_ffa_msg_send_direct_req(
++	copy_sp_to_ffa_args_32(req.args.args32, expected_ffa_args);
++	expect_ffa_msg_send_direct_req_32(
+ 		req.source_id, req.destination_id, expected_ffa_args[0],
+ 		expected_ffa_args[1], expected_ffa_args[2],
+ 		expected_ffa_args[3], expected_ffa_args[4], &ffa_msg, FFA_OK);
+@@ -248,54 +311,54 @@ TEST(sp_messaging, sp_msg_send_direct_req_rc_forwarding_success)
+ 	sp_msg sp_req = { 0 };
+ 	sp_msg sp_resp = { 0 };
+ 
+-	fill_sp_msg(&sp_req);
++	fill_sp_msg_32(&sp_req);
+ 	sp_req.source_id = own_id;
+ 	sp_req.destination_id = rc_root_id;
+ 
+ 	req.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	req.source_id = own_id;
+ 	req.destination_id = rc_root_id;
+-	copy_sp_to_ffa_args(sp_req.args, req.args);
++	copy_sp_to_ffa_args_32(sp_req.args.args32, req.args.args32);
+ 
+-	fill_ffa_msg(&rc_req);
++	fill_ffa_msg_32(&rc_req);
+ 	rc_req.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	rc_req.source_id = rc_root_id;
+ 	rc_req.destination_id = own_id;
+-	rc_req.args[0] = ROUTING_EXT_RC_BIT;
++	rc_req.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_ffa_msg(&rc_resp);
++	fill_ffa_msg_32(&rc_resp);
+ 	rc_resp.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	rc_resp.source_id = root_id;
+ 	rc_resp.destination_id = own_id;
+-	rc_resp.args[0] = ROUTING_EXT_RC_BIT;
++	rc_resp.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_sp_msg(&sp_resp);
++	fill_sp_msg_32(&sp_resp);
+ 	sp_resp.source_id = rc_root_id;
+ 	sp_resp.destination_id = own_id;
+ 
+ 	resp.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	resp.source_id = rc_root_id;
+ 	resp.destination_id = own_id;
+-	copy_sp_to_ffa_args(sp_resp.args, resp.args);
++	copy_sp_to_ffa_args_32(sp_resp.args.args32, resp.args.args32);
+ 
+ 	/* Initial request to current SP to set own_id */
+ 	wait_and_receive_request(root_id, own_id);
+ 
+ 	/* Sending request and receiving RC request from RC root */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, 0, req.args[1],
+-				       req.args[2], req.args[3], req.args[4],
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, 0, req.args.args32[1],
++				       req.args.args32[2], req.args.args32[3], req.args.args32[4],
+ 				       &rc_req, FFA_OK);
+ 
+ 	/* Forwarding RC request to root and receiving RC response */
+-	expect_ffa_msg_send_direct_resp(own_id, root_id, rc_req.args[0],
+-					rc_req.args[1], rc_req.args[2],
+-					rc_req.args[3], rc_req.args[4],
++	expect_ffa_msg_send_direct_resp_32(own_id, root_id, rc_req.args.args32[0],
++					rc_req.args.args32[1], rc_req.args.args32[2],
++					rc_req.args.args32[3], rc_req.args.args32[4],
+ 					&rc_resp, FFA_OK);
+ 
+ 	/* Fowarding RC response to RC root and receiving response */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, rc_resp.args[0],
+-				       rc_resp.args[1], rc_resp.args[2],
+-				       rc_resp.args[3], rc_resp.args[4], &resp,
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, rc_resp.args.args32[0],
++				       rc_resp.args.args32[1], rc_resp.args.args32[2],
++				       rc_resp.args.args32[3], rc_resp.args.args32[4], &resp,
+ 				       FFA_OK);
+ 
+ 	LONGS_EQUAL(SP_RESULT_OK, sp_msg_send_direct_req(&sp_req, &sp_resp));
+@@ -312,28 +375,28 @@ TEST(sp_messaging, sp_msg_send_direct_req_rc_error)
+ 	sp_msg sp_req = { 0 };
+ 	sp_msg sp_resp = { 0 };
+ 
+-	fill_sp_msg(&sp_req);
++	fill_sp_msg_32(&sp_req);
+ 	sp_req.source_id = own_id;
+ 	sp_req.destination_id = rc_root_id;
+ 
+ 	req.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	req.source_id = own_id;
+ 	req.destination_id = rc_root_id;
+-	copy_sp_to_ffa_args(sp_req.args, req.args);
++	copy_sp_to_ffa_args_32(sp_req.args.args32, req.args.args32);
+ 
+-	fill_ffa_msg(&rc_err);
++	fill_ffa_msg_32(&rc_err);
+ 	rc_err.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	rc_err.source_id = rc_root_id;
+ 	rc_err.destination_id = own_id;
+-	rc_err.args[0] = ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT;
+-	rc_err.args[1] = result;
++	rc_err.args.args32[0] = ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT;
++	rc_err.args.args32[1] = result;
+ 
+ 	/* Initial request to current SP to set own_id */
+ 	wait_and_receive_request(root_id, own_id);
+ 
+ 	/* Sending request and receiving RC request from RC root */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, 0, req.args[1],
+-				       req.args[2], req.args[3], req.args[4],
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, 0, req.args.args32[1],
++				       req.args.args32[2], req.args.args32[3], req.args.args32[4],
+ 				       &rc_err, FFA_OK);
+ 
+ 	LONGS_EQUAL(SP_RESULT_FFA(result),
+@@ -354,64 +417,64 @@ TEST(sp_messaging, sp_msg_send_direct_req_rc_forwarding_success_deny_request)
+ 	sp_msg sp_req = { 0 };
+ 	sp_msg sp_resp = { 0 };
+ 
+-	fill_sp_msg(&sp_req);
++	fill_sp_msg_32(&sp_req);
+ 	sp_req.source_id = own_id;
+ 	sp_req.destination_id = rc_root_id;
+ 
+ 	req.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	req.source_id = own_id;
+ 	req.destination_id = rc_root_id;
+-	copy_sp_to_ffa_args(sp_req.args, req.args);
++	copy_sp_to_ffa_args_32(sp_req.args.args32, req.args.args32);
+ 
+-	fill_ffa_msg(&rc_req);
++	fill_ffa_msg_32(&rc_req);
+ 	rc_req.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	rc_req.source_id = rc_root_id;
+ 	rc_req.destination_id = own_id;
+-	rc_req.args[0] = ROUTING_EXT_RC_BIT;
++	rc_req.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+ 	request_to_deny.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	request_to_deny.source_id = root_id;
+ 	request_to_deny.destination_id = own_id;
+-	request_to_deny.args[0] = 0;
++	request_to_deny.args.args32[0] = 0;
+ 
+-	fill_ffa_msg(&rc_resp);
++	fill_ffa_msg_32(&rc_resp);
+ 	rc_resp.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	rc_resp.source_id = root_id;
+ 	rc_resp.destination_id = own_id;
+-	rc_resp.args[0] = ROUTING_EXT_RC_BIT;
++	rc_resp.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_sp_msg(&sp_resp);
++	fill_sp_msg_32(&sp_resp);
+ 	sp_resp.source_id = rc_root_id;
+ 	sp_resp.destination_id = own_id;
+ 
+ 	resp.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	resp.source_id = rc_root_id;
+ 	resp.destination_id = own_id;
+-	copy_sp_to_ffa_args(sp_resp.args, resp.args);
++	copy_sp_to_ffa_args_32(sp_resp.args.args32, resp.args.args32);
+ 
+ 	/* Initial request to current SP to set own_id */
+ 	wait_and_receive_request(root_id, own_id);
+ 
+ 	/* Sending request and receiving RC request from RC root */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, 0, req.args[1],
+-				       req.args[2], req.args[3], req.args[4],
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, 0, req.args.args32[1],
++				       req.args.args32[2], req.args.args32[3], req.args.args32[4],
+ 				       &rc_req, FFA_OK);
+ 
+ 	/* Forwarding RC request to root and receiving a request to deny */
+-	expect_ffa_msg_send_direct_resp(own_id, root_id, rc_req.args[0],
+-					rc_req.args[1], rc_req.args[2],
+-					rc_req.args[3], rc_req.args[4],
++	expect_ffa_msg_send_direct_resp_32(own_id, root_id, rc_req.args.args32[0],
++					rc_req.args.args32[1], rc_req.args.args32[2],
++					rc_req.args.args32[3], rc_req.args.args32[4],
+ 					&request_to_deny, FFA_OK);
+ 
+ 	/* Sending error to root and receiving RC response */
+-	expect_ffa_msg_send_direct_resp(
++	expect_ffa_msg_send_direct_resp_32(
+ 		own_id, root_id, ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT,
+ 		SP_RESULT_FFA(FFA_BUSY), 0, 0, 0, &rc_resp, FFA_OK);
+ 
+ 	/* Fowarding RC response to RC root and receiving response */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, rc_resp.args[0],
+-				       rc_resp.args[1], rc_resp.args[2],
+-				       rc_resp.args[3], rc_resp.args[4], &resp,
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, rc_resp.args.args32[0],
++				       rc_resp.args.args32[1], rc_resp.args.args32[2],
++				       rc_resp.args.args32[3], rc_resp.args.args32[4], &resp,
+ 				       FFA_OK);
+ 
+ 	LONGS_EQUAL(SP_RESULT_OK, sp_msg_send_direct_req(&sp_req, &sp_resp));
+@@ -431,65 +494,65 @@ TEST(sp_messaging, sp_msg_send_direct_req_rc_forwarding_success_invalid_req_src)
+ 	sp_msg sp_req = { 0 };
+ 	sp_msg sp_resp = { 0 };
+ 
+-	fill_sp_msg(&sp_req);
++	fill_sp_msg_32(&sp_req);
+ 	sp_req.source_id = own_id;
+ 	sp_req.destination_id = rc_root_id;
+ 
+ 	req.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	req.source_id = own_id;
+ 	req.destination_id = rc_root_id;
+-	copy_sp_to_ffa_args(sp_req.args, req.args);
++	copy_sp_to_ffa_args_32(sp_req.args.args32, req.args.args32);
+ 
+-	fill_ffa_msg(&rc_req);
++	fill_ffa_msg_32(&rc_req);
+ 	rc_req.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	rc_req.source_id = rc_root_id;
+ 	rc_req.destination_id = own_id;
+-	rc_req.args[0] = ROUTING_EXT_RC_BIT;
++	rc_req.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+ 	request_to_deny.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	/* This source ID should be denied in the current state. */
+ 	request_to_deny.source_id = rc_root_id;
+ 	request_to_deny.destination_id = own_id;
+-	request_to_deny.args[0] = ROUTING_EXT_RC_BIT;
++	request_to_deny.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_ffa_msg(&rc_resp);
++	fill_ffa_msg_32(&rc_resp);
+ 	rc_resp.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	rc_resp.source_id = root_id;
+ 	rc_resp.destination_id = own_id;
+-	rc_resp.args[0] = ROUTING_EXT_RC_BIT;
++	rc_resp.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_sp_msg(&sp_resp);
++	fill_sp_msg_32(&sp_resp);
+ 	sp_resp.source_id = rc_root_id;
+ 	sp_resp.destination_id = own_id;
+ 
+ 	resp.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	resp.source_id = rc_root_id;
+ 	resp.destination_id = own_id;
+-	copy_sp_to_ffa_args(sp_resp.args, resp.args);
++	copy_sp_to_ffa_args_32(sp_resp.args.args32, resp.args.args32);
+ 
+ 	/* Initial request to current SP to set own_id */
+ 	wait_and_receive_request(root_id, own_id);
+ 
+ 	/* Sending request and receiving RC request from RC root */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, 0, req.args[1],
+-				       req.args[2], req.args[3], req.args[4],
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, 0, req.args.args32[1],
++				       req.args.args32[2], req.args.args32[3], req.args.args32[4],
+ 				       &rc_req, FFA_OK);
+ 
+ 	/* Forwarding RC request to root and receiving RC response */
+-	expect_ffa_msg_send_direct_resp(own_id, root_id, rc_req.args[0],
+-					rc_req.args[1], rc_req.args[2],
+-					rc_req.args[3], rc_req.args[4],
++	expect_ffa_msg_send_direct_resp_32(own_id, root_id, rc_req.args.args32[0],
++					rc_req.args.args32[1], rc_req.args.args32[2],
++					rc_req.args.args32[3], rc_req.args.args32[4],
+ 					&request_to_deny, FFA_OK);
+ 
+ 	/* Sending error to root and receiving RC response */
+-	expect_ffa_msg_send_direct_resp(
++	expect_ffa_msg_send_direct_resp_32(
+ 		own_id, rc_root_id, ROUTING_EXT_ERR_BIT | ROUTING_EXT_RC_BIT,
+ 		SP_RESULT_FFA(FFA_BUSY), 0, 0, 0, &rc_resp, FFA_OK);
+ 
+ 	/* Fowarding RC response to RC root and receiving response */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, rc_resp.args[0],
+-				       rc_resp.args[1], rc_resp.args[2],
+-				       rc_resp.args[3], rc_resp.args[4], &resp,
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, rc_resp.args.args32[0],
++				       rc_resp.args.args32[1], rc_resp.args.args32[2],
++				       rc_resp.args.args32[3], rc_resp.args.args32[4], &resp,
+ 				       FFA_OK);
+ 
+ 	LONGS_EQUAL(SP_RESULT_OK, sp_msg_send_direct_req(&sp_req, &sp_resp));
+@@ -509,58 +572,58 @@ TEST(sp_messaging, sp_msg_send_direct_req_deny_fail_wait_success)
+ 	sp_msg sp_req = { 0 };
+ 	sp_msg sp_resp = { 0 };
+ 
+-	fill_sp_msg(&sp_req);
++	fill_sp_msg_32(&sp_req);
+ 	sp_req.source_id = own_id;
+ 	sp_req.destination_id = rc_root_id;
+ 
+ 	req.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	req.source_id = own_id;
+ 	req.destination_id = rc_root_id;
+-	copy_sp_to_ffa_args(sp_req.args, req.args);
++	copy_sp_to_ffa_args_32(sp_req.args.args32, req.args.args32);
+ 
+-	fill_ffa_msg(&rc_req);
++	fill_ffa_msg_32(&rc_req);
+ 	rc_req.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	rc_req.source_id = rc_root_id;
+ 	rc_req.destination_id = own_id;
+-	rc_req.args[0] = ROUTING_EXT_RC_BIT;
++	rc_req.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+ 	request_to_deny.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	/* This source ID should be denied in the current state. */
+ 	request_to_deny.source_id = rc_root_id;
+ 	request_to_deny.destination_id = own_id;
+-	request_to_deny.args[0] = ROUTING_EXT_RC_BIT;
++	request_to_deny.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_ffa_msg(&rc_resp);
++	fill_ffa_msg_32(&rc_resp);
+ 	rc_resp.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	rc_resp.source_id = root_id;
+ 	rc_resp.destination_id = own_id;
+-	rc_resp.args[0] = ROUTING_EXT_RC_BIT;
++	rc_resp.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_sp_msg(&sp_resp);
++	fill_sp_msg_32(&sp_resp);
+ 	sp_resp.source_id = rc_root_id;
+ 	sp_resp.destination_id = own_id;
+ 
+ 	resp.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	resp.source_id = rc_root_id;
+ 	resp.destination_id = own_id;
+-	copy_sp_to_ffa_args(sp_resp.args, resp.args);
++	copy_sp_to_ffa_args_32(sp_resp.args.args32, resp.args.args32);
+ 
+ 	/* Initial request to current SP to set own_id */
+ 	wait_and_receive_request(root_id, own_id);
+ 
+ 	/* Sending request and receiving RC request from RC root */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, 0, req.args[1],
+-				       req.args[2], req.args[3], req.args[4],
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, 0, req.args.args32[1],
++				       req.args.args32[2], req.args.args32[3], req.args.args32[4],
+ 				       &rc_req, FFA_OK);
+ 
+ 	/* Forwarding RC request to root and receiving RC response */
+-	expect_ffa_msg_send_direct_resp(own_id, root_id, rc_req.args[0],
+-					rc_req.args[1], rc_req.args[2],
+-					rc_req.args[3], rc_req.args[4],
++	expect_ffa_msg_send_direct_resp_32(own_id, root_id, rc_req.args.args32[0],
++					rc_req.args.args32[1], rc_req.args.args32[2],
++					rc_req.args.args32[3], rc_req.args.args32[4],
+ 					&request_to_deny, FFA_OK);
+ 
+ 	/* Sending error to root which fails */
+-	expect_ffa_msg_send_direct_resp(
++	expect_ffa_msg_send_direct_resp_32(
+ 		own_id, rc_root_id, (ROUTING_EXT_ERR_BIT | ROUTING_EXT_RC_BIT),
+ 		SP_RESULT_FFA(FFA_BUSY), 0, 0, 0, &rc_resp, FFA_DENIED);
+ 
+@@ -568,9 +631,9 @@ TEST(sp_messaging, sp_msg_send_direct_req_deny_fail_wait_success)
+ 	expect_ffa_msg_wait(&rc_resp, FFA_OK);
+ 
+ 	/* Fowarding RC response to RC root and receiving response */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, rc_resp.args[0],
+-				       rc_resp.args[1], rc_resp.args[2],
+-				       rc_resp.args[3], rc_resp.args[4], &resp,
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, rc_resp.args.args32[0],
++				       rc_resp.args.args32[1], rc_resp.args.args32[2],
++				       rc_resp.args.args32[3], rc_resp.args.args32[4], &resp,
+ 				       FFA_OK);
+ 
+ 	LONGS_EQUAL(SP_RESULT_OK, sp_msg_send_direct_req(&sp_req, &sp_resp));
+@@ -590,58 +653,58 @@ TEST(sp_messaging, sp_msg_send_direct_req_deny_fail_wait_fail_forwarding)
+ 	sp_msg sp_req = { 0 };
+ 	sp_msg sp_resp = { 0 };
+ 
+-	fill_sp_msg(&sp_req);
++	fill_sp_msg_32(&sp_req);
+ 	sp_req.source_id = own_id;
+ 	sp_req.destination_id = rc_root_id;
+ 
+ 	req.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	req.source_id = own_id;
+ 	req.destination_id = rc_root_id;
+-	copy_sp_to_ffa_args(sp_req.args, req.args);
++	copy_sp_to_ffa_args_32(sp_req.args.args32, req.args.args32);
+ 
+-	fill_ffa_msg(&rc_req);
++	fill_ffa_msg_32(&rc_req);
+ 	rc_req.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	rc_req.source_id = rc_root_id;
+ 	rc_req.destination_id = own_id;
+-	rc_req.args[0] = ROUTING_EXT_RC_BIT;
++	rc_req.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+ 	request_to_deny.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	/* This source ID should be denied in the current state. */
+ 	request_to_deny.source_id = rc_root_id;
+ 	request_to_deny.destination_id = own_id;
+-	request_to_deny.args[0] = ROUTING_EXT_RC_BIT;
++	request_to_deny.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_ffa_msg(&rc_resp);
++	fill_ffa_msg_32(&rc_resp);
+ 	rc_resp.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	rc_resp.source_id = root_id;
+ 	rc_resp.destination_id = own_id;
+-	rc_resp.args[0] = ROUTING_EXT_RC_BIT;
++	rc_resp.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_sp_msg(&sp_resp);
++	fill_sp_msg_32(&sp_resp);
+ 	sp_resp.source_id = rc_root_id;
+ 	sp_resp.destination_id = own_id;
+ 
+ 	resp.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	resp.source_id = rc_root_id;
+ 	resp.destination_id = own_id;
+-	copy_sp_to_ffa_args(sp_resp.args, resp.args);
++	copy_sp_to_ffa_args_32(sp_resp.args.args32, resp.args.args32);
+ 
+ 	/* Initial request to current SP to set own_id */
+ 	wait_and_receive_request(root_id, own_id);
+ 
+ 	/* Sending request and receiving RC request from RC root */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, 0, req.args[1],
+-				       req.args[2], req.args[3], req.args[4],
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, 0, req.args.args32[1],
++				       req.args.args32[2], req.args.args32[3], req.args.args32[4],
+ 				       &rc_req, FFA_OK);
+ 
+ 	/* Forwarding RC request to root and receiving RC response */
+-	expect_ffa_msg_send_direct_resp(own_id, root_id, rc_req.args[0],
+-					rc_req.args[1], rc_req.args[2],
+-					rc_req.args[3], rc_req.args[4],
++	expect_ffa_msg_send_direct_resp_32(own_id, root_id, rc_req.args.args32[0],
++					rc_req.args.args32[1], rc_req.args.args32[2],
++					rc_req.args.args32[3], rc_req.args.args32[4],
+ 					&request_to_deny, FFA_OK);
+ 
+ 	/* Sending error to root which fails */
+-	expect_ffa_msg_send_direct_resp(
++	expect_ffa_msg_send_direct_resp_32(
+ 		own_id, rc_root_id, ROUTING_EXT_ERR_BIT | ROUTING_EXT_RC_BIT,
+ 		SP_RESULT_FFA(FFA_BUSY), 0, 0, 0, &rc_resp, FFA_DENIED);
+ 
+@@ -649,7 +712,7 @@ TEST(sp_messaging, sp_msg_send_direct_req_deny_fail_wait_fail_forwarding)
+ 	expect_ffa_msg_wait(&rc_resp, result);
+ 
+ 	/* Fowarding RC error as FFA_MSG_WAIT failed  */
+-	expect_ffa_msg_send_direct_req(
++	expect_ffa_msg_send_direct_req_32(
+ 		own_id, rc_root_id, (ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT),
+ 		result, 0, 0, 0, &resp, FFA_OK);
+ 
+@@ -670,52 +733,52 @@ TEST(sp_messaging, sp_msg_send_direct_req_rc_return_rc_error_msg)
+ 	sp_msg sp_resp = { 0 };
+ 	ffa_result result = FFA_ABORTED;
+ 
+-	fill_sp_msg(&sp_req);
++	fill_sp_msg_32(&sp_req);
+ 	sp_req.source_id = own_id;
+ 	sp_req.destination_id = rc_root_id;
+ 
+ 	req.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	req.source_id = own_id;
+ 	req.destination_id = rc_root_id;
+-	copy_sp_to_ffa_args(sp_req.args, req.args);
++	copy_sp_to_ffa_args_32(sp_req.args.args32, req.args.args32);
+ 
+-	fill_ffa_msg(&rc_req);
++	fill_ffa_msg_32(&rc_req);
+ 	rc_req.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	rc_req.source_id = rc_root_id;
+ 	rc_req.destination_id = own_id;
+-	rc_req.args[0] = ROUTING_EXT_RC_BIT;
++	rc_req.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_ffa_msg(&rc_resp);
++	fill_ffa_msg_32(&rc_resp);
+ 	rc_resp.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	rc_resp.source_id = root_id;
+ 	rc_resp.destination_id = own_id;
+-	rc_resp.args[0] = ROUTING_EXT_RC_BIT;
++	rc_resp.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_sp_msg(&sp_resp);
++	fill_sp_msg_32(&sp_resp);
+ 	sp_resp.source_id = rc_root_id;
+ 	sp_resp.destination_id = own_id;
+ 
+ 	resp.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	resp.source_id = rc_root_id;
+ 	resp.destination_id = own_id;
+-	copy_sp_to_ffa_args(sp_resp.args, resp.args);
++	copy_sp_to_ffa_args_32(sp_resp.args.args32, resp.args.args32);
+ 
+ 	/* Initial request to current SP to set own_id */
+ 	wait_and_receive_request(root_id, own_id);
+ 
+ 	/* Sending request and receiving RC request from RC root */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, 0, req.args[1],
+-				       req.args[2], req.args[3], req.args[4],
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, 0, req.args.args32[1],
++				       req.args.args32[2], req.args.args32[3], req.args.args32[4],
+ 				       &rc_req, FFA_OK);
+ 
+ 	/* Forwarding RC request to root and receiving RC response */
+-	expect_ffa_msg_send_direct_resp(own_id, root_id, rc_req.args[0],
+-					rc_req.args[1], rc_req.args[2],
+-					rc_req.args[3], rc_req.args[4],
++	expect_ffa_msg_send_direct_resp_32(own_id, root_id, rc_req.args.args32[0],
++					rc_req.args.args32[1], rc_req.args.args32[2],
++					rc_req.args.args32[3], rc_req.args.args32[4],
+ 					&rc_resp, result);
+ 
+ 	/* Fowarding RC error to RC root and receiving response */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id,
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id,
+ 				       ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT,
+ 				       SP_RESULT_FFA(result), 0, 0, 0, &resp,
+ 				       FFA_OK);
+@@ -737,54 +800,54 @@ TEST(sp_messaging, sp_msg_send_direct_req_rc_return_resp_fail)
+ 	sp_msg sp_resp = { 0 };
+ 	ffa_result result = FFA_ABORTED;
+ 
+-	fill_sp_msg(&sp_req);
++	fill_sp_msg_32(&sp_req);
+ 	sp_req.source_id = own_id;
+ 	sp_req.destination_id = rc_root_id;
+ 
+ 	req.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	req.source_id = own_id;
+ 	req.destination_id = rc_root_id;
+-	copy_sp_to_ffa_args(sp_req.args, req.args);
++	copy_sp_to_ffa_args_32(sp_req.args.args32, req.args.args32);
+ 
+-	fill_ffa_msg(&rc_req);
++	fill_ffa_msg_32(&rc_req);
+ 	rc_req.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	rc_req.source_id = rc_root_id;
+ 	rc_req.destination_id = own_id;
+-	rc_req.args[0] = ROUTING_EXT_RC_BIT;
++	rc_req.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_ffa_msg(&rc_resp);
++	fill_ffa_msg_32(&rc_resp);
+ 	rc_resp.function_id = FFA_MSG_SEND_DIRECT_REQ_32;
+ 	rc_resp.source_id = root_id;
+ 	rc_resp.destination_id = own_id;
+-	rc_resp.args[0] = ROUTING_EXT_RC_BIT;
++	rc_resp.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_sp_msg(&sp_resp);
++	fill_sp_msg_32(&sp_resp);
+ 	sp_resp.source_id = rc_root_id;
+ 	sp_resp.destination_id = own_id;
+ 
+ 	resp.function_id = FFA_MSG_SEND_DIRECT_RESP_32;
+ 	resp.source_id = rc_root_id;
+ 	resp.destination_id = own_id;
+-	copy_sp_to_ffa_args(sp_resp.args, resp.args);
++	copy_sp_to_ffa_args_32(sp_resp.args.args32, resp.args.args32);
+ 
+ 	/* Initial request to current SP to set own_id */
+ 	wait_and_receive_request(root_id, own_id);
+ 
+ 	/* Sending request and receiving RC request from RC root */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, 0, req.args[1],
+-				       req.args[2], req.args[3], req.args[4],
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, 0, req.args.args32[1],
++				       req.args.args32[2], req.args.args32[3], req.args.args32[4],
+ 				       &rc_req, FFA_OK);
+ 
+ 	/* Forwarding RC request to root and receiving RC response */
+-	expect_ffa_msg_send_direct_resp(own_id, root_id, rc_req.args[0],
+-					rc_req.args[1], rc_req.args[2],
+-					rc_req.args[3], rc_req.args[4],
++	expect_ffa_msg_send_direct_resp_32(own_id, root_id, rc_req.args.args32[0],
++					rc_req.args.args32[1], rc_req.args.args32[2],
++					rc_req.args.args32[3], rc_req.args.args32[4],
+ 					&rc_resp, FFA_OK);
+ 
+ 	/* Fowarding RC response to RC root and receiving response */
+-	expect_ffa_msg_send_direct_req(own_id, rc_root_id, rc_resp.args[0],
+-				       rc_resp.args[1], rc_resp.args[2],
+-				       rc_resp.args[3], rc_resp.args[4], &resp,
++	expect_ffa_msg_send_direct_req_32(own_id, rc_root_id, rc_resp.args.args32[0],
++				       rc_resp.args.args32[1], rc_resp.args.args32[2],
++				       rc_resp.args.args32[3], rc_resp.args.args32[4], &resp,
+ 				       result);
+ 
+ 	LONGS_EQUAL(SP_RESULT_FFA(result),
+@@ -812,10 +875,11 @@ TEST(sp_messaging, sp_msg_send_direct_resp_ffa_error)
+ 	ffa_result result = FFA_ABORTED;
+ 	uint32_t expected_ffa_args[5] = { 0 };
+ 
+-	fill_sp_msg(&resp);
++	fill_sp_msg_32(&resp);
+ 	memset(&req, 0x5a, sizeof(req));
+-	copy_sp_to_ffa_args(resp.args, expected_ffa_args);
+-	expect_ffa_msg_send_direct_resp(
++	req.is_64bit_message = false;
++	copy_sp_to_ffa_args_32(resp.args.args32, expected_ffa_args);
++	expect_ffa_msg_send_direct_resp_32(
+ 		resp.source_id, resp.destination_id, expected_ffa_args[0],
+ 		expected_ffa_args[1], expected_ffa_args[2],
+ 		expected_ffa_args[3], expected_ffa_args[4], &ffa_msg, result);
+@@ -825,14 +889,30 @@ TEST(sp_messaging, sp_msg_send_direct_resp_ffa_error)
+ 	MEMCMP_EQUAL(&empty_sp_msg, &req, sizeof(empty_sp_msg));
+ }
+ 
+-TEST(sp_messaging, sp_msg_send_direct_resp_msg)
++TEST(sp_messaging, sp_msg_send_direct_resp_msg_32)
+ {
+ 	uint32_t expected_ffa_args[5] = { 0 };
+ 
+-	fill_sp_msg(&resp);
+-	fill_ffa_msg(&ffa_msg);
+-	copy_sp_to_ffa_args(resp.args, expected_ffa_args);
+-	expect_ffa_msg_send_direct_resp(
++	fill_sp_msg_32(&resp);
++	fill_ffa_msg_32(&ffa_msg);
++	copy_sp_to_ffa_args_32(resp.args.args32, expected_ffa_args);
++	expect_ffa_msg_send_direct_resp_32(
++		resp.source_id, resp.destination_id, expected_ffa_args[0],
++		expected_ffa_args[1], expected_ffa_args[2],
++		expected_ffa_args[3], expected_ffa_args[4], &ffa_msg, FFA_OK);
++
++	LONGS_EQUAL(SP_RESULT_OK, sp_msg_send_direct_resp(&resp, &req));
++	ffa_and_sp_msg_equal(&ffa_msg, &req);
++}
++
++TEST(sp_messaging, sp_msg_send_direct_resp_msg_64)
++{
++	uint64_t expected_ffa_args[5] = { 0 };
++
++	fill_sp_msg_64(&resp);
++	fill_ffa_msg_64(&ffa_msg);
++	copy_sp_to_ffa_args_64(resp.args.args64, expected_ffa_args);
++	expect_ffa_msg_send_direct_resp_64(
+ 		resp.source_id, resp.destination_id, expected_ffa_args[0],
+ 		expected_ffa_args[1], expected_ffa_args[2],
+ 		expected_ffa_args[3], expected_ffa_args[4], &ffa_msg, FFA_OK);
+@@ -841,15 +921,16 @@ TEST(sp_messaging, sp_msg_send_direct_resp_msg)
+ 	ffa_and_sp_msg_equal(&ffa_msg, &req);
+ }
+ 
++
+ TEST(sp_messaging, sp_msg_send_direct_resp_success)
+ {
+ 	uint32_t expected_ffa_args[5] = { 0 };
+ 
+-	fill_sp_msg(&req);
+-	fill_sp_msg(&resp);
++	fill_sp_msg_32(&req);
++	fill_sp_msg_32(&resp);
+ 	ffa_msg.function_id = FFA_SUCCESS_32;
+-	copy_sp_to_ffa_args(resp.args, expected_ffa_args);
+-	expect_ffa_msg_send_direct_resp(
++	copy_sp_to_ffa_args_32(resp.args.args32, expected_ffa_args);
++	expect_ffa_msg_send_direct_resp_32(
+ 		resp.source_id, resp.destination_id, expected_ffa_args[0],
+ 		expected_ffa_args[1], expected_ffa_args[2],
+ 		expected_ffa_args[3], expected_ffa_args[4], &ffa_msg, FFA_OK);
+@@ -864,20 +945,20 @@ TEST(sp_messaging, sp_msg_send_direct_resp_deny_rc_failure)
+ 	uint32_t expected_ffa_args[5] = { 0 };
+ 	struct ffa_direct_msg rc_msg = { 0 };
+ 
+-	fill_sp_msg(&resp);
++	fill_sp_msg_32(&resp);
+ 
+-	fill_ffa_msg(&rc_msg);
+-	rc_msg.args[0] = ROUTING_EXT_RC_BIT;
++	fill_ffa_msg_32(&rc_msg);
++	rc_msg.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_ffa_msg(&ffa_msg);
+-	copy_sp_to_ffa_args(resp.args, expected_ffa_args);
++	fill_ffa_msg_32(&ffa_msg);
++	copy_sp_to_ffa_args_32(resp.args.args32, expected_ffa_args);
+ 
+-	expect_ffa_msg_send_direct_resp(
++	expect_ffa_msg_send_direct_resp_32(
+ 		resp.source_id, resp.destination_id, expected_ffa_args[0],
+ 		expected_ffa_args[1], expected_ffa_args[2],
+ 		expected_ffa_args[3], expected_ffa_args[4], &rc_msg, FFA_OK);
+ 
+-	expect_ffa_msg_send_direct_resp(
++	expect_ffa_msg_send_direct_resp_32(
+ 		rc_msg.destination_id, rc_msg.source_id,
+ 		ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT,
+ 		SP_RESULT_FFA(FFA_DENIED), 0, 0, 0, &ffa_msg, result);
+@@ -892,21 +973,21 @@ TEST(sp_messaging, sp_msg_send_direct_resp_deny_rc)
+ 	uint32_t expected_ffa_args[5] = { 0 };
+ 	struct ffa_direct_msg rc_msg = { 0 };
+ 
+-	fill_sp_msg(&resp);
++	fill_sp_msg_32(&resp);
+ 
+-	fill_ffa_msg(&rc_msg);
+-	rc_msg.args[0] = ROUTING_EXT_RC_BIT;
++	fill_ffa_msg_32(&rc_msg);
++	rc_msg.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	fill_ffa_msg(&ffa_msg);
+-	copy_sp_to_ffa_args(resp.args, expected_ffa_args);
++	fill_ffa_msg_32(&ffa_msg);
++	copy_sp_to_ffa_args_32(resp.args.args32, expected_ffa_args);
+ 
+-	expect_ffa_msg_send_direct_resp(resp.source_id, resp.destination_id, 0,
++	expect_ffa_msg_send_direct_resp_32(resp.source_id, resp.destination_id, 0,
+ 					expected_ffa_args[1],
+ 					expected_ffa_args[2],
+ 					expected_ffa_args[3],
+ 					expected_ffa_args[4], &rc_msg, FFA_OK);
+ 
+-	expect_ffa_msg_send_direct_resp(
++	expect_ffa_msg_send_direct_resp_32(
+ 		rc_msg.destination_id, rc_msg.source_id,
+ 		ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT,
+ 		SP_RESULT_FFA(FFA_DENIED), 0, 0, 0, &ffa_msg, FFA_OK);
+@@ -933,13 +1014,14 @@ TEST(sp_messaging, sp_msg_send_rc_req_ffa_error)
+ {
+ 	ffa_result result = FFA_ABORTED;
+ 
+-	fill_sp_msg(&resp);
++	fill_sp_msg_32(&resp);
+ 	memset(&req, 0x5a, sizeof(req));
+-	fill_ffa_msg(&ffa_msg);
++	req.is_64bit_message = false;
++	fill_ffa_msg_32(&ffa_msg);
+ 
+-	expect_ffa_msg_send_direct_resp(req.source_id, req.destination_id,
+-					ROUTING_EXT_RC_BIT, req.args[0],
+-					req.args[1], req.args[2], req.args[3],
++	expect_ffa_msg_send_direct_resp_32(req.source_id, req.destination_id,
++					ROUTING_EXT_RC_BIT, req.args.args32[0],
++					req.args.args32[1], req.args.args32[2], req.args.args32[3],
+ 					&ffa_msg, result);
+ 
+ 	LONGS_EQUAL(SP_RESULT_FFA(result), sp_msg_send_rc_req(&req, &resp));
+@@ -953,22 +1035,22 @@ TEST(sp_messaging, sp_msg_send_rc_req_deny_fail_wait_fail)
+ 
+ 	wait_and_receive_request(root_id, own_id);
+ 
+-	fill_sp_msg(&req);
++	fill_sp_msg_32(&req);
+ 	req.source_id = own_id;
+ 	req.destination_id = root_id;
+ 
+-	fill_ffa_msg(&ffa_msg);
++	fill_ffa_msg_32(&ffa_msg);
+ 	ffa_msg.source_id = root_id;
+ 	ffa_msg.destination_id = own_id;
+ 	/* Should be RC message so it will be denied */
+-	ffa_msg.args[0] = 0;
++	ffa_msg.args.args32[0] = 0;
+ 
+-	expect_ffa_msg_send_direct_resp(req.source_id, req.destination_id,
+-					ROUTING_EXT_RC_BIT, req.args[0],
+-					req.args[1], req.args[2], req.args[3],
++	expect_ffa_msg_send_direct_resp_32(req.source_id, req.destination_id,
++					ROUTING_EXT_RC_BIT, req.args.args32[0],
++					req.args.args32[1], req.args.args32[2], req.args.args32[3],
+ 					&ffa_msg, FFA_OK);
+ 
+-	expect_ffa_msg_send_direct_resp(
++	expect_ffa_msg_send_direct_resp_32(
+ 		req.source_id, req.destination_id,
+ 		ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT,
+ 		SP_RESULT_FFA(FFA_BUSY), 0, 0, 0, &ffa_msg, result);
+@@ -987,19 +1069,19 @@ TEST(sp_messaging, sp_msg_send_rc_req_rc_error)
+ 
+ 	wait_and_receive_request(root_id, own_id);
+ 
+-	fill_sp_msg(&req);
++	fill_sp_msg_32(&req);
+ 	req.source_id = own_id;
+ 	req.destination_id = root_id;
+ 
+-	fill_ffa_msg(&ffa_msg);
++	fill_ffa_msg_32(&ffa_msg);
+ 	ffa_msg.source_id = root_id;
+ 	ffa_msg.destination_id = own_id;
+-	ffa_msg.args[0] = ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT;
+-	ffa_msg.args[1] = sp_err;
++	ffa_msg.args.args32[0] = ROUTING_EXT_RC_BIT | ROUTING_EXT_ERR_BIT;
++	ffa_msg.args.args32[1] = sp_err;
+ 
+-	expect_ffa_msg_send_direct_resp(req.source_id, req.destination_id,
+-					ROUTING_EXT_RC_BIT, req.args[0],
+-					req.args[1], req.args[2], req.args[3],
++	expect_ffa_msg_send_direct_resp_32(req.source_id, req.destination_id,
++					ROUTING_EXT_RC_BIT, req.args.args32[0],
++					req.args.args32[1], req.args.args32[2], req.args.args32[3],
+ 					&ffa_msg, FFA_OK);
+ 
+ 	LONGS_EQUAL(sp_err, sp_msg_send_rc_req(&req, &resp));
+@@ -1013,18 +1095,18 @@ TEST(sp_messaging, sp_msg_send_rc_req_success)
+ 
+ 	wait_and_receive_request(root_id, own_id);
+ 
+-	fill_sp_msg(&req);
++	fill_sp_msg_32(&req);
+ 	req.source_id = own_id;
+ 	req.destination_id = root_id;
+ 
+-	fill_ffa_msg(&ffa_msg);
++	fill_ffa_msg_32(&ffa_msg);
+ 	ffa_msg.source_id = root_id;
+ 	ffa_msg.destination_id = own_id;
+-	ffa_msg.args[0] = ROUTING_EXT_RC_BIT;
++	ffa_msg.args.args32[0] = ROUTING_EXT_RC_BIT;
+ 
+-	expect_ffa_msg_send_direct_resp(req.source_id, req.destination_id,
+-					ROUTING_EXT_RC_BIT, req.args[0],
+-					req.args[1], req.args[2], req.args[3],
++	expect_ffa_msg_send_direct_resp_32(req.source_id, req.destination_id,
++					ROUTING_EXT_RC_BIT, req.args.args32[0],
++					req.args.args32[1], req.args.args32[2], req.args.args32[3],
+ 					&ffa_msg, FFA_OK);
+ 
+ 	LONGS_EQUAL(SP_RESULT_OK, sp_msg_send_rc_req(&req, &resp));
+diff --git a/components/rpc/ffarpc/caller/sp/ffarpc_caller.c b/components/rpc/ffarpc/caller/sp/ffarpc_caller.c
+index 4ad98fb..ca3d318 100644
+--- a/components/rpc/ffarpc/caller/sp/ffarpc_caller.c
++++ b/components/rpc/ffarpc/caller/sp/ffarpc_caller.c
+@@ -81,16 +81,17 @@ static rpc_status_t call_invoke(void *context, rpc_call_handle handle, uint32_t
+ 
+ 	req.destination_id = this_context->dest_partition_id;
+ 	req.source_id = own_id;
+-	req.args[SP_CALL_ARGS_IFACE_ID_OPCODE] =
++	req.is_64bit_message = false;
++	req.args.args32[SP_CALL_ARGS_IFACE_ID_OPCODE] =
+ 		FFA_CALL_ARGS_COMBINE_IFACE_ID_OPCODE(this_context->dest_iface_id, opcode);
+-	req.args[SP_CALL_ARGS_REQ_DATA_LEN] = (uint32_t)this_context->req_len;
+-	req.args[SP_CALL_ARGS_ENCODING] = this_context->rpc_caller.encoding;
++	req.args.args32[SP_CALL_ARGS_REQ_DATA_LEN] = (uint32_t)this_context->req_len;
++	req.args.args32[SP_CALL_ARGS_ENCODING] = this_context->rpc_caller.encoding;
+ 
+ 	/* Initialise the caller ID.  Depending on the call path, this may
+ 	 * be overridden by a higher privilege execution level, based on its
+ 	 * perspective of the caller identity.
+ 	 */
+-	req.args[SP_CALL_ARGS_CALLER_ID] = 0;
++	req.args.args32[SP_CALL_ARGS_CALLER_ID] = 0;
+ 
+ 	sp_res = sp_msg_send_direct_req(&req, &resp);
+ 	if (sp_res != SP_RESULT_OK) {
+@@ -98,9 +99,9 @@ static rpc_status_t call_invoke(void *context, rpc_call_handle handle, uint32_t
+ 		goto out;
+ 	}
+ 
+-	this_context->resp_len = (size_t)resp.args[SP_CALL_ARGS_RESP_DATA_LEN];
+-	status = resp.args[SP_CALL_ARGS_RESP_RPC_STATUS];
+-	*opstatus = (rpc_status_t)((int32_t)resp.args[SP_CALL_ARGS_RESP_OP_STATUS]);
++	this_context->resp_len = (size_t)resp.args.args32[SP_CALL_ARGS_RESP_DATA_LEN];
++	status = resp.args.args32[SP_CALL_ARGS_RESP_RPC_STATUS];
++	*opstatus = (rpc_status_t)((int32_t)resp.args.args32[SP_CALL_ARGS_RESP_OP_STATUS]);
+ 
+ 	if (this_context->resp_len > this_context->shared_mem_required_size) {
+ 		EMSG("invalid response length");
+@@ -242,11 +243,12 @@ int ffarpc_caller_open(struct ffarpc_caller *caller, uint16_t dest_partition_id,
+ 
+ 	req.source_id = own_id;
+ 	req.destination_id = dest_partition_id;
+-	req.args[SP_CALL_ARGS_IFACE_ID_OPCODE] =
++	req.is_64bit_message = false;
++	req.args.args32[SP_CALL_ARGS_IFACE_ID_OPCODE] =
+ 		FFA_CALL_ARGS_COMBINE_IFACE_ID_OPCODE(FFA_CALL_MGMT_IFACE_ID, FFA_CALL_OPCODE_SHARE_BUF);
+-	req.args[SP_CALL_ARGS_SHARE_MEM_HANDLE_LSW] = (uint32_t)(handle & UINT32_MAX);
+-	req.args[SP_CALL_ARGS_SHARE_MEM_HANDLE_MSW] = (uint32_t)(handle >> 32);
+-	req.args[SP_CALL_ARGS_SHARE_MEM_SIZE] = (uint32_t)(caller->shared_mem_required_size);
++	req.args.args32[SP_CALL_ARGS_SHARE_MEM_HANDLE_LSW] = (uint32_t)(handle & UINT32_MAX);
++	req.args.args32[SP_CALL_ARGS_SHARE_MEM_HANDLE_MSW] = (uint32_t)(handle >> 32);
++	req.args.args32[SP_CALL_ARGS_SHARE_MEM_SIZE] = (uint32_t)(caller->shared_mem_required_size);
+ 
+ 	sp_res = sp_msg_send_direct_req(&req, &resp);
+ 	if (sp_res != SP_RESULT_OK) {
+@@ -273,10 +275,11 @@ int ffarpc_caller_close(struct ffarpc_caller *caller)
+ 
+ 	req.source_id = own_id;
+ 	req.destination_id = caller->dest_partition_id;
+-	req.args[SP_CALL_ARGS_IFACE_ID_OPCODE] =
++	req.is_64bit_message = false;
++	req.args.args32[SP_CALL_ARGS_IFACE_ID_OPCODE] =
+ 		FFA_CALL_ARGS_COMBINE_IFACE_ID_OPCODE(FFA_CALL_MGMT_IFACE_ID, FFA_CALL_OPCODE_UNSHARE_BUF);
+-	req.args[SP_CALL_ARGS_SHARE_MEM_HANDLE_LSW] = handle_lo;
+-	req.args[SP_CALL_ARGS_SHARE_MEM_HANDLE_MSW] = handle_hi;
++	req.args.args32[SP_CALL_ARGS_SHARE_MEM_HANDLE_LSW] = handle_lo;
++	req.args.args32[SP_CALL_ARGS_SHARE_MEM_HANDLE_MSW] = handle_hi;
+ 
+ 	sp_res = sp_msg_send_direct_req(&req, &resp);
+ 	if (sp_res != SP_RESULT_OK) {
+diff --git a/components/rpc/ffarpc/endpoint/ffarpc_call_ep.c b/components/rpc/ffarpc/endpoint/ffarpc_call_ep.c
+index 6a8cef0..c024196 100644
+--- a/components/rpc/ffarpc/endpoint/ffarpc_call_ep.c
++++ b/components/rpc/ffarpc/endpoint/ffarpc_call_ep.c
+@@ -260,8 +260,8 @@ void ffa_call_ep_receive(struct ffa_call_ep *call_ep,
+ 			 const struct sp_msg *req_msg,
+ 			 struct sp_msg *resp_msg)
+ {
+-	const uint32_t *req_args = req_msg->args;
+-	uint32_t *resp_args = resp_msg->args;
++	const uint32_t *req_args = req_msg->args.args32;
++	uint32_t *resp_args = resp_msg->args.args32;
+ 
+ 	uint16_t source_id = req_msg->source_id;
+ 	uint32_t ifaceid_opcode = req_args[SP_CALL_ARGS_IFACE_ID_OPCODE];
+diff --git a/components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.c b/components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.c
+index 09f1e2c..dc49e64 100644
+--- a/components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.c
++++ b/components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.c
+@@ -1,6 +1,6 @@
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #include "components/rpc/mm_communicate/common/mm_communicate_call_args.h"
+@@ -127,15 +127,15 @@ void mm_communicate_call_ep_receive(struct mm_communicate_ep *mm_communicate_cal
+ 	uintptr_t buffer_address = 0;
+ 	size_t buffer_size = 0;
+ 
+-	buffer_address = req_msg->args[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_ADDRESS];
+-	buffer_size = req_msg->args[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_SIZE];
++	buffer_address = req_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_ADDRESS];
++	buffer_size = req_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_SIZE];
+ 
+ 	return_value = handle_mm_communicate(mm_communicate_call_ep, req_msg->source_id,
+ 					     buffer_address, buffer_size);
+ 
+-	resp_msg->args[MM_COMMUNICATE_CALL_ARGS_RETURN_ID] = ARM_SVC_ID_SP_EVENT_COMPLETE;
+-	resp_msg->args[MM_COMMUNICATE_CALL_ARGS_RETURN_CODE] = return_value;
+-	resp_msg->args[MM_COMMUNICATE_CALL_ARGS_MBZ0] = 0;
+-	resp_msg->args[MM_COMMUNICATE_CALL_ARGS_MBZ1] = 0;
+-	resp_msg->args[MM_COMMUNICATE_CALL_ARGS_MBZ2] = 0;
++	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_RETURN_ID] = ARM_SVC_ID_SP_EVENT_COMPLETE;
++	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_RETURN_CODE] = return_value;
++	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_MBZ0] = 0;
++	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_MBZ1] = 0;
++	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_MBZ2] = 0;
+ }
+diff --git a/deployments/smm-gateway/common/smm_gateway_sp.c b/deployments/smm-gateway/common/smm_gateway_sp.c
+index 2187fea..3697b7f 100644
+--- a/deployments/smm-gateway/common/smm_gateway_sp.c
++++ b/deployments/smm-gateway/common/smm_gateway_sp.c
+@@ -70,10 +70,10 @@ void __noreturn sp_main(struct ffa_init_info *init_info)
+ 	while (1) {
+ 		mm_communicate_call_ep_receive(&mm_communicate_call_ep, &req_msg, &resp_msg);
+ 
+-		ffa_msg_send_direct_resp(req_msg.destination_id,
+-					 req_msg.source_id, resp_msg.args[0],
+-					 resp_msg.args[1], resp_msg.args[2],
+-					 resp_msg.args[3], resp_msg.args[4],
++		ffa_msg_send_direct_resp_32(req_msg.destination_id,
++					 req_msg.source_id, resp_msg.args.args32[0],
++					 resp_msg.args.args32[1], resp_msg.args.args32[2],
++					 resp_msg.args.args32[3], resp_msg.args.args32[4],
+ 					 &req_msg);
+ 	}
+ 
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0022-Change-MM-communicate-RPC-protocol-of-call-endpoint.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0022-Change-MM-communicate-RPC-protocol-of-call-endpoint.patch
new file mode 100644
index 0000000..4090397
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0022-Change-MM-communicate-RPC-protocol-of-call-endpoint.patch
@@ -0,0 +1,497 @@
+From 0f02f04c7f0a7130874dc4bc1a500604d580c4dc Mon Sep 17 00:00:00 2001
+From: Imre Kis <imre.kis@arm.com>
+Date: Wed, 20 Jul 2022 15:19:17 +0200
+Subject: [PATCH 22/24] Change MM communicate RPC protocol of call endpoint
+
+Replace buffer address and size parameter by offset in buffer parameter
+and move to 64 bit FF-A direct message call. Deny all 32 bit direct
+messages in SMM gateway.
+
+Signed-off-by: Imre Kis <imre.kis@arm.com>
+Change-Id: I7a69b440ff9842960229b2bfdd1b5ae5318d9c26
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ .../common/mm_communicate_call_args.h         |  15 ++-
+ .../endpoint/sp/mm_communicate_call_ep.c      |  58 ++++-----
+ .../endpoint/sp/test/mock_mm_service.cpp      |   6 +-
+ .../endpoint/sp/test/mock_mm_service.h        |   4 +-
+ .../sp/test/test_mm_communicate_call_ep.cpp   | 110 +++++++++++-------
+ .../endpoint/sp/test/test_mock_mm_service.cpp |   4 +-
+ .../smm-gateway/common/smm_gateway_sp.c       |  17 ++-
+ 7 files changed, 123 insertions(+), 91 deletions(-)
+
+diff --git a/components/rpc/mm_communicate/common/mm_communicate_call_args.h b/components/rpc/mm_communicate/common/mm_communicate_call_args.h
+index 7d7311d..280c04d 100644
+--- a/components/rpc/mm_communicate/common/mm_communicate_call_args.h
++++ b/components/rpc/mm_communicate/common/mm_communicate_call_args.h
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: BSD-3-Clause */
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #ifndef MM_COMMUNICATE_CALL_ARGS_H_
+@@ -12,13 +12,12 @@
+  */
+ 
+ /* SP message arg indexes */
+-#define MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_ADDRESS	0
+-#define MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_SIZE	1
++#define MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_OFFSET	0
+ 
+-#define MM_COMMUNICATE_CALL_ARGS_RETURN_ID		0
+-#define MM_COMMUNICATE_CALL_ARGS_RETURN_CODE		1
+-#define MM_COMMUNICATE_CALL_ARGS_MBZ0			2
+-#define MM_COMMUNICATE_CALL_ARGS_MBZ1			3
+-#define MM_COMMUNICATE_CALL_ARGS_MBZ2			4
++#define MM_COMMUNICATE_CALL_ARGS_RETURN_CODE		0
++#define MM_COMMUNICATE_CALL_ARGS_MBZ0			1
++#define MM_COMMUNICATE_CALL_ARGS_MBZ1			2
++#define MM_COMMUNICATE_CALL_ARGS_MBZ2			3
++#define MM_COMMUNICATE_CALL_ARGS_MBZ3			4
+ 
+ #endif /* MM_COMMUNICATE_CALL_ARGS_H_ */
+diff --git a/components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.c b/components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.c
+index dc49e64..93aa0f4 100644
+--- a/components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.c
++++ b/components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.c
+@@ -35,7 +35,8 @@ bool mm_communicate_call_ep_init(struct mm_communicate_ep *call_ep, uint8_t *com
+ 
+ static int32_t invoke_mm_service(struct mm_communicate_ep *call_ep, uint16_t source_id,
+ 				 struct mm_service_interface *iface,
+-				 EFI_MM_COMMUNICATE_HEADER *header)
++				 EFI_MM_COMMUNICATE_HEADER *header,
++				 size_t buffer_size)
+ {
+ 	rpc_status_t rpc_status = TS_RPC_ERROR_INTERNAL;
+ 	struct mm_service_call_req call_req = { 0 };
+@@ -49,11 +50,11 @@ static int32_t invoke_mm_service(struct mm_communicate_ep *call_ep, uint16_t sou
+ 	 */
+ 	call_req.req_buf.data = header->Data;
+ 	call_req.req_buf.data_len = header->MessageLength;
+-	call_req.req_buf.size = call_ep->comm_buffer_size - EFI_MM_COMMUNICATE_HEADER_SIZE;
++	call_req.req_buf.size = buffer_size;
+ 
+ 	call_req.resp_buf.data = header->Data;
+ 	call_req.resp_buf.data_len = 0;
+-	call_req.resp_buf.size = call_ep->comm_buffer_size - EFI_MM_COMMUNICATE_HEADER_SIZE;
++	call_req.resp_buf.size = buffer_size;
+ 
+ 	result = iface->receive(iface, &call_req);
+ 
+@@ -63,32 +64,38 @@ static int32_t invoke_mm_service(struct mm_communicate_ep *call_ep, uint16_t sou
+ }
+ 
+ static int32_t handle_mm_communicate(struct mm_communicate_ep *call_ep, uint16_t source_id,
+-				     uintptr_t buffer_addr, size_t buffer_size)
++				     size_t buffer_offset)
+ {
+-	uintptr_t buffer_arg = 0;
+-	size_t request_size = 0;
++	size_t header_end_offset = 0;
++	size_t request_end_offset = 0;
++	size_t buffer_size = 0;
+ 	EFI_MM_COMMUNICATE_HEADER *header = NULL;
+ 	unsigned int i = 0;
+ 
+-	/* Validating call args according to ARM MM spec 3.2.4 */
+-	if (buffer_addr == 0)
++	if (ADD_OVERFLOW(buffer_offset, EFI_MM_COMMUNICATE_HEADER_SIZE, &header_end_offset))
++		return MM_RETURN_CODE_INVALID_PARAMETER;
++
++	if (call_ep->comm_buffer_size < header_end_offset)
+ 		return MM_RETURN_CODE_INVALID_PARAMETER;
+ 
+ 	/* Validating comm buffer contents */
+-	header = (EFI_MM_COMMUNICATE_HEADER *)call_ep->comm_buffer;
+-	if (ADD_OVERFLOW(header->MessageLength, EFI_MM_COMMUNICATE_HEADER_SIZE, &request_size))
++	header = (EFI_MM_COMMUNICATE_HEADER *)(call_ep->comm_buffer + buffer_offset);
++	if (ADD_OVERFLOW(header_end_offset, header->MessageLength, &request_end_offset))
+ 		return MM_RETURN_CODE_INVALID_PARAMETER;
+ 
+-	if (call_ep->comm_buffer_size < request_size)
++	if (call_ep->comm_buffer_size < request_end_offset)
+ 		return MM_RETURN_CODE_INVALID_PARAMETER;
+ 
++	buffer_size = call_ep->comm_buffer_size - header_end_offset;
++
+ 	/* Finding iface_id by GUID */
+ 	for (i = 0; i < ARRAY_SIZE(call_ep->service_table); i++) {
+ 		const struct mm_service_entry *entry = &call_ep->service_table[i];
+ 
+ 		if (entry->iface != NULL &&
+ 		    memcmp(&header->HeaderGuid, &entry->guid, sizeof(entry->guid)) == 0)
+-			return invoke_mm_service(call_ep, source_id, entry->iface, header);
++			return invoke_mm_service(call_ep, source_id, entry->iface, header,
++						 buffer_size);
+ 	}
+ 
+ 	return MM_RETURN_CODE_NOT_SUPPORTED;
+@@ -123,19 +130,16 @@ void mm_communicate_call_ep_receive(struct mm_communicate_ep *mm_communicate_cal
+ 				    const struct ffa_direct_msg *req_msg,
+ 				    struct ffa_direct_msg *resp_msg)
+ {
+-	int32_t return_value = 0;
+-	uintptr_t buffer_address = 0;
+-	size_t buffer_size = 0;
+-
+-	buffer_address = req_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_ADDRESS];
+-	buffer_size = req_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_SIZE];
+-
+-	return_value = handle_mm_communicate(mm_communicate_call_ep, req_msg->source_id,
+-					     buffer_address, buffer_size);
+-
+-	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_RETURN_ID] = ARM_SVC_ID_SP_EVENT_COMPLETE;
+-	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_RETURN_CODE] = return_value;
+-	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_MBZ0] = 0;
+-	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_MBZ1] = 0;
+-	resp_msg->args.args32[MM_COMMUNICATE_CALL_ARGS_MBZ2] = 0;
++	int32_t return_value = MM_RETURN_CODE_NOT_SUPPORTED;
++	size_t buffer_offset = req_msg->args.args64[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_OFFSET];
++
++	return_value = handle_mm_communicate(mm_communicate_call_ep,
++						req_msg->source_id,
++						buffer_offset);
++
++	resp_msg->args.args64[MM_COMMUNICATE_CALL_ARGS_RETURN_CODE] = return_value;
++	resp_msg->args.args64[MM_COMMUNICATE_CALL_ARGS_MBZ0] = 0;
++	resp_msg->args.args64[MM_COMMUNICATE_CALL_ARGS_MBZ1] = 0;
++	resp_msg->args.args64[MM_COMMUNICATE_CALL_ARGS_MBZ2] = 0;
++	resp_msg->args.args64[MM_COMMUNICATE_CALL_ARGS_MBZ3] = 0;
+ }
+diff --git a/components/rpc/mm_communicate/endpoint/sp/test/mock_mm_service.cpp b/components/rpc/mm_communicate/endpoint/sp/test/mock_mm_service.cpp
+index a58c33a..0ae2a80 100644
+--- a/components/rpc/mm_communicate/endpoint/sp/test/mock_mm_service.cpp
++++ b/components/rpc/mm_communicate/endpoint/sp/test/mock_mm_service.cpp
+@@ -1,6 +1,6 @@
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #include <CppUTestExt/MockSupport.h>
+@@ -16,7 +16,7 @@ void mock_mm_service_init(void)
+ 
+ void expect_mock_mm_service_receive(struct mm_service_interface *iface,
+ 				    const struct mm_service_call_req *req,
+-				    int32_t result)
++				    int64_t result)
+ {
+ 	mock().expectOneCall("mm_service_receive").onObject(iface).
+ 		withOutputParameterReturning("resp_buf_data_len", &req->resp_buf.data_len,
+@@ -31,5 +31,5 @@ int32_t mock_mm_service_receive(struct mm_service_interface *iface,
+ 	return mock().actualCall("mm_service_receive").onObject(iface).
+ 		withOutputParameter("resp_buf_data_len", &req->resp_buf.data_len).
+ 		withParameterOfType("mm_service_call_req", "req", req).
+-		returnIntValue();
++		returnLongIntValue();
+ }
+diff --git a/components/rpc/mm_communicate/endpoint/sp/test/mock_mm_service.h b/components/rpc/mm_communicate/endpoint/sp/test/mock_mm_service.h
+index 768022d..56c8a26 100644
+--- a/components/rpc/mm_communicate/endpoint/sp/test/mock_mm_service.h
++++ b/components/rpc/mm_communicate/endpoint/sp/test/mock_mm_service.h
+@@ -1,6 +1,6 @@
+ /* SPDX-License-Identifier: BSD-3-Clause */
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #ifndef MOCK_MM_SERVICE_H_
+@@ -16,7 +16,7 @@ void mock_mm_service_init(void);
+ 
+ void expect_mock_mm_service_receive(struct mm_service_interface *iface,
+ 				    const struct mm_service_call_req *req,
+-				    int32_t result);
++				    int64_t result);
+ 
+ int32_t mock_mm_service_receive(struct mm_service_interface *iface,
+ 				struct mm_service_call_req *req);
+diff --git a/components/rpc/mm_communicate/endpoint/sp/test/test_mm_communicate_call_ep.cpp b/components/rpc/mm_communicate/endpoint/sp/test/test_mm_communicate_call_ep.cpp
+index 55a61fb..5aaa3a6 100644
+--- a/components/rpc/mm_communicate/endpoint/sp/test/test_mm_communicate_call_ep.cpp
++++ b/components/rpc/mm_communicate/endpoint/sp/test/test_mm_communicate_call_ep.cpp
+@@ -1,6 +1,6 @@
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #include <CppUTest/TestHarness.h>
+@@ -32,14 +32,14 @@ TEST_GROUP(mm_communicate_call_ep)
+ 		mock().clear();
+ 	}
+ 
+-	void check_sp_msg(const struct ffa_direct_msg *msg, uint32_t arg0,
+-			  uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4)
++	void check_sp_msg(const struct ffa_direct_msg *msg, uint64_t arg0,
++			  uint64_t arg1, uint64_t arg2, uint64_t arg3, uint64_t arg4)
+ 	{
+-		UNSIGNED_LONGLONGS_EQUAL(arg0, msg->args[0]);
+-		UNSIGNED_LONGLONGS_EQUAL(arg1, msg->args[1]);
+-		UNSIGNED_LONGLONGS_EQUAL(arg2, msg->args[2]);
+-		UNSIGNED_LONGLONGS_EQUAL(arg3, msg->args[3]);
+-		UNSIGNED_LONGLONGS_EQUAL(arg4,  msg->args[4]);
++		UNSIGNED_LONGLONGS_EQUAL(arg0, msg->args.args64[0]);
++		UNSIGNED_LONGLONGS_EQUAL(arg1, msg->args.args64[1]);
++		UNSIGNED_LONGLONGS_EQUAL(arg2, msg->args.args64[2]);
++		UNSIGNED_LONGLONGS_EQUAL(arg3, msg->args.args64[3]);
++		UNSIGNED_LONGLONGS_EQUAL(arg4,  msg->args.args64[4]);
+ 	}
+ 
+ 	struct mm_communicate_ep call_ep;
+@@ -114,59 +114,54 @@ TEST(mm_communicate_call_ep, attach_do_not_fit)
+ 	}
+ }
+ 
+-TEST(mm_communicate_call_ep, mm_communicate_no_buffer_arg)
++TEST(mm_communicate_call_ep, mm_communicate_offset_int_overflow)
+ {
+ 	CHECK_TRUE(mm_communicate_call_ep_init(&call_ep, comm_buffer, sizeof(comm_buffer)));
++	req_msg.args.args64[0] = 0xffffffffffffffff;
+ 
+ 	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
+ 
+-	check_sp_msg(&resp_msg, ARM_SVC_ID_SP_EVENT_COMPLETE, MM_RETURN_CODE_INVALID_PARAMETER,
+-		     0, 0, 0);
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_INVALID_PARAMETER, 0, 0, 0, 0);
+ }
+ 
+-TEST(mm_communicate_call_ep, mm_communicate_length_overflow)
++TEST(mm_communicate_call_ep, mm_communicate_offset_overflow)
+ {
+ 	CHECK_TRUE(mm_communicate_call_ep_init(&call_ep, comm_buffer, sizeof(comm_buffer)));
++	req_msg.args.args64[0] = sizeof(comm_buffer) - EFI_MM_COMMUNICATE_HEADER_SIZE + 1;
++
++	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
+ 
+-	req_msg.args[0] = (uintptr_t)comm_buffer;
+-	req_msg.args[1] = sizeof(comm_buffer);
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_INVALID_PARAMETER, 0, 0, 0, 0);
++}
+ 
++TEST(mm_communicate_call_ep, mm_communicate_length_overflow)
++{
++	CHECK_TRUE(mm_communicate_call_ep_init(&call_ep, comm_buffer, sizeof(comm_buffer)));
+ 	header->MessageLength = UINT64_MAX - EFI_MM_COMMUNICATE_HEADER_SIZE + 1;
+ 
+ 	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
+ 
+-	check_sp_msg(&resp_msg, ARM_SVC_ID_SP_EVENT_COMPLETE, MM_RETURN_CODE_INVALID_PARAMETER,
+-		     0, 0, 0);
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_INVALID_PARAMETER, 0, 0, 0, 0);
+ }
+ 
+ TEST(mm_communicate_call_ep, mm_communicate_too_large)
+ {
+ 	CHECK_TRUE(mm_communicate_call_ep_init(&call_ep, comm_buffer, sizeof(comm_buffer)));
+-
+-	req_msg.args[0] = (uintptr_t)comm_buffer;
+-	req_msg.args[1] = sizeof(comm_buffer);
+-
+ 	header->MessageLength = sizeof(comm_buffer) - EFI_MM_COMMUNICATE_HEADER_SIZE + 1;
+ 
+ 	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
+ 
+-	check_sp_msg(&resp_msg, ARM_SVC_ID_SP_EVENT_COMPLETE, MM_RETURN_CODE_INVALID_PARAMETER,
+-		     0, 0, 0);
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_INVALID_PARAMETER, 0, 0, 0, 0);
+ }
+ 
+ TEST(mm_communicate_call_ep, mm_communicate_no_handler)
+ {
+ 	CHECK_TRUE(mm_communicate_call_ep_init(&call_ep, comm_buffer, sizeof(comm_buffer)));
+-
+-	req_msg.args[0] = (uintptr_t)comm_buffer;
+-	req_msg.args[1] = sizeof(comm_buffer);
+-
+ 	header->MessageLength = 0;
+ 
+ 	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
+ 
+-	check_sp_msg(&resp_msg, ARM_SVC_ID_SP_EVENT_COMPLETE, MM_RETURN_CODE_NOT_SUPPORTED,
+-		     0, 0, 0);
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_NOT_SUPPORTED, 0, 0, 0, 0);
+ }
+ 
+ TEST(mm_communicate_call_ep, mm_communicate_single_handler_not_matching)
+@@ -175,16 +170,11 @@ TEST(mm_communicate_call_ep, mm_communicate_single_handler_not_matching)
+ 
+ 	CHECK_TRUE(mm_communicate_call_ep_init(&call_ep, comm_buffer, sizeof(comm_buffer)));
+ 	mm_communicate_call_ep_attach_service(&call_ep, &guid0, &iface);
+-
+-	req_msg.args[0] = (uintptr_t)comm_buffer;
+-	req_msg.args[1] = sizeof(comm_buffer);
+-
+ 	header->MessageLength = 0;
+ 
+ 	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
+ 
+-	check_sp_msg(&resp_msg, ARM_SVC_ID_SP_EVENT_COMPLETE, MM_RETURN_CODE_NOT_SUPPORTED,
+-		     0, 0, 0);
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_NOT_SUPPORTED, 0, 0, 0, 0);
+ }
+ 
+ TEST(mm_communicate_call_ep, mm_communicate_single_handler_matching)
+@@ -211,19 +201,55 @@ TEST(mm_communicate_call_ep, mm_communicate_single_handler_matching)
+ 	CHECK_TRUE(mm_communicate_call_ep_init(&call_ep, comm_buffer, sizeof(comm_buffer)));
+ 	mm_communicate_call_ep_attach_service(&call_ep, &guid0, &iface);
+ 
+-	req_msg.args[0] = (uintptr_t)comm_buffer;
+-	req_msg.args[1] = sizeof(comm_buffer);
++	memcpy(&header->HeaderGuid, &guid0, sizeof(guid0));
++	header->MessageLength = req_len;
++
++	expect_mock_mm_service_receive(&iface, &req, MM_RETURN_CODE_SUCCESS);
++
++	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
++
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_SUCCESS, 0, 0, 0, 0);
++}
++
++TEST(mm_communicate_call_ep, mm_communicate_single_handler_matching_with_offset)
++{
++	const size_t offset = 0x10;
++	EFI_MM_COMMUNICATE_HEADER *header = (EFI_MM_COMMUNICATE_HEADER *)(comm_buffer + offset);
++
++	const size_t req_len = 16;
++	struct mm_service_interface iface = {
++		.context = (void *)0x1234,
++		.receive = mock_mm_service_receive
++	};
++	struct mm_service_call_req req = {
++		.guid = &guid0,
++		.req_buf = {
++			.size = sizeof(comm_buffer) - EFI_MM_COMMUNICATE_HEADER_SIZE - offset,
++			.data_len = req_len,
++			.data = header->Data
++		},
++		.resp_buf = {
++			.size = sizeof(comm_buffer) - EFI_MM_COMMUNICATE_HEADER_SIZE - offset,
++			.data_len = 0,
++			.data = header->Data
++		},
++	};
++
++	CHECK_TRUE(mm_communicate_call_ep_init(&call_ep, comm_buffer, sizeof(comm_buffer)));
++	mm_communicate_call_ep_attach_service(&call_ep, &guid0, &iface);
+ 
+ 	memcpy(&header->HeaderGuid, &guid0, sizeof(guid0));
+ 	header->MessageLength = req_len;
++	req_msg.args.args64[0] = offset;
+ 
+ 	expect_mock_mm_service_receive(&iface, &req, MM_RETURN_CODE_SUCCESS);
+ 
+ 	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
+ 
+-	check_sp_msg(&resp_msg, ARM_SVC_ID_SP_EVENT_COMPLETE, MM_RETURN_CODE_SUCCESS, 0, 0, 0);
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_SUCCESS, 0, 0, 0, 0);
+ }
+ 
++
+ TEST(mm_communicate_call_ep, mm_communicate_single_handler_matching_error)
+ {
+ 	const size_t req_len = 16;
+@@ -248,9 +274,6 @@ TEST(mm_communicate_call_ep, mm_communicate_single_handler_matching_error)
+ 	CHECK_TRUE(mm_communicate_call_ep_init(&call_ep, comm_buffer, sizeof(comm_buffer)));
+ 	mm_communicate_call_ep_attach_service(&call_ep, &guid0, &iface);
+ 
+-	req_msg.args[0] = (uintptr_t)comm_buffer;
+-	req_msg.args[1] = sizeof(comm_buffer);
+-
+ 	memcpy(&header->HeaderGuid, &guid0, sizeof(guid0));
+ 	header->MessageLength = req_len;
+ 
+@@ -258,7 +281,7 @@ TEST(mm_communicate_call_ep, mm_communicate_single_handler_matching_error)
+ 
+ 	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
+ 
+-	check_sp_msg(&resp_msg, ARM_SVC_ID_SP_EVENT_COMPLETE, MM_RETURN_CODE_NO_MEMORY, 0, 0, 0);
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_NO_MEMORY, 0, 0, 0, 0);
+ }
+ 
+ TEST(mm_communicate_call_ep, mm_communicate_two_handlers)
+@@ -290,9 +313,6 @@ TEST(mm_communicate_call_ep, mm_communicate_two_handlers)
+ 	mm_communicate_call_ep_attach_service(&call_ep, &guid0, &iface0);
+ 	mm_communicate_call_ep_attach_service(&call_ep, &guid1, &iface1);
+ 
+-	req_msg.args[0] = (uintptr_t)comm_buffer;
+-	req_msg.args[1] = sizeof(comm_buffer);
+-
+ 	memcpy(&header->HeaderGuid, &guid1, sizeof(guid0));
+ 	header->MessageLength = req_len;
+ 
+@@ -300,5 +320,5 @@ TEST(mm_communicate_call_ep, mm_communicate_two_handlers)
+ 
+ 	mm_communicate_call_ep_receive(&call_ep, &req_msg, &resp_msg);
+ 
+-	check_sp_msg(&resp_msg, ARM_SVC_ID_SP_EVENT_COMPLETE, MM_RETURN_CODE_SUCCESS, 0, 0, 0);
++	check_sp_msg(&resp_msg, MM_RETURN_CODE_SUCCESS, 0, 0, 0, 0);
+ }
+diff --git a/components/rpc/mm_communicate/endpoint/sp/test/test_mock_mm_service.cpp b/components/rpc/mm_communicate/endpoint/sp/test/test_mock_mm_service.cpp
+index 360a8fa..600386e 100644
+--- a/components/rpc/mm_communicate/endpoint/sp/test/test_mock_mm_service.cpp
++++ b/components/rpc/mm_communicate/endpoint/sp/test/test_mock_mm_service.cpp
+@@ -1,6 +1,6 @@
+ // SPDX-License-Identifier: BSD-3-Clause
+ /*
+- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
++ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+  */
+ 
+ #include <CppUTest/TestHarness.h>
+@@ -44,7 +44,7 @@ TEST(mock_mm_service, receive)
+ 			.data = (void *)0x2345
+ 		}
+ 	};
+-	int32_t result = -123456;
++	int64_t result = -123456;
+ 
+ 	expect_mock_mm_service_receive(&iface, &req, result);
+ 	LONGS_EQUAL(result, mock_mm_service_receive(&iface, &req));
+diff --git a/deployments/smm-gateway/common/smm_gateway_sp.c b/deployments/smm-gateway/common/smm_gateway_sp.c
+index 3697b7f..3062877 100644
+--- a/deployments/smm-gateway/common/smm_gateway_sp.c
++++ b/deployments/smm-gateway/common/smm_gateway_sp.c
+@@ -11,6 +11,7 @@
+ #include "components/rpc/mm_communicate/endpoint/sp/mm_communicate_call_ep.h"
+ #include "components/service/smm_variable/frontend/mm_communicate/smm_variable_mm_service.h"
+ #include "platform/interface/memory_region.h"
++#include "protocols/common/mm/mm_smc.h"
+ #include <ffa_api.h>
+ #include <sp_api.h>
+ #include <sp_messaging.h>
+@@ -68,12 +69,20 @@ void __noreturn sp_main(struct ffa_init_info *init_info)
+ 	ffa_msg_wait(&req_msg);
+ 
+ 	while (1) {
++		if (FFA_IS_32_BIT_FUNC(req_msg.function_id)) {
++			EMSG("MM communicate over 32 bit FF-A messages is not supported");
++			ffa_msg_send_direct_resp_32(req_msg.destination_id, req_msg.source_id,
++						    MM_RETURN_CODE_NOT_SUPPORTED, 0, 0, 0, 0,
++						    &req_msg);
++			continue;
++		}
++
+ 		mm_communicate_call_ep_receive(&mm_communicate_call_ep, &req_msg, &resp_msg);
+ 
+-		ffa_msg_send_direct_resp_32(req_msg.destination_id,
+-					 req_msg.source_id, resp_msg.args.args32[0],
+-					 resp_msg.args.args32[1], resp_msg.args.args32[2],
+-					 resp_msg.args.args32[3], resp_msg.args.args32[4],
++		ffa_msg_send_direct_resp_64(req_msg.destination_id,
++					 req_msg.source_id, resp_msg.args.args64[0],
++					 resp_msg.args.args64[1], resp_msg.args.args64[2],
++					 resp_msg.args.args64[3], resp_msg.args.args64[4],
+ 					 &req_msg);
+ 	}
+ 
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0023-Change-MM-communicate-RPC-protocol-of-MM-caller.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0023-Change-MM-communicate-RPC-protocol-of-MM-caller.patch
new file mode 100644
index 0000000..4244225
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0023-Change-MM-communicate-RPC-protocol-of-MM-caller.patch
@@ -0,0 +1,100 @@
+From 96d226e4e0ea9c633dbc5d05ae2a7a2f4ba0f39e Mon Sep 17 00:00:00 2001
+From: Imre Kis <imre.kis@arm.com>
+Date: Fri, 22 Jul 2022 17:22:05 +0200
+Subject: [PATCH 23/24] Change MM communicate RPC protocol of MM caller
+
+Replace buffer address and size parameter by offset in buffer parameter
+and move to 64 bit FF-A direct message call. This change requires an
+updated version of the debugfs driver which supports 64 bit direct
+messages.
+
+Signed-off-by: Imre Kis <imre.kis@arm.com>
+Change-Id: I003c1de7f9c3f45bbc52e4a51d622ec960fa7052
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ .../caller/linux/mm_communicate_caller.c      | 35 +++++++------------
+ .../LinuxFFAUserShim/LinuxFFAUserShim.cmake   |  2 +-
+ 2 files changed, 14 insertions(+), 23 deletions(-)
+
+diff --git a/components/rpc/mm_communicate/caller/linux/mm_communicate_caller.c b/components/rpc/mm_communicate/caller/linux/mm_communicate_caller.c
+index 0c505b4..0287acf 100644
+--- a/components/rpc/mm_communicate/caller/linux/mm_communicate_caller.c
++++ b/components/rpc/mm_communicate/caller/linux/mm_communicate_caller.c
+@@ -19,7 +19,7 @@
+ #include <string.h>
+ #include <errno.h>
+ 
+-#define KERNEL_MOD_REQ_VER_MAJOR 2
++#define KERNEL_MOD_REQ_VER_MAJOR 5
+ #define KERNEL_MOD_REQ_VER_MINOR 0
+ #define KERNEL_MOD_REQ_VER_PATCH 0
+ 
+@@ -294,37 +294,28 @@ static rpc_status_t call_invoke(
+ 
+ 		direct_msg.dst_id = s->dest_partition_id;
+ 
+-		direct_msg.args[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_ADDRESS] = (uintptr_t)s->comm_buffer;
+-		direct_msg.args[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_SIZE] = s->comm_buffer_size;
++		direct_msg.args[MM_COMMUNICATE_CALL_ARGS_COMM_BUFFER_OFFSET] = 0;
+ 
+ 		int kernel_op_status = ioctl(s->ffa_fd, FFA_IOC_MSG_SEND, &direct_msg);
+ 
+ 		if (kernel_op_status == 0) {
+-
+ 			/* Kernel send operation completed normally */
+-			uint32_t mm_return_id = direct_msg.args[MM_COMMUNICATE_CALL_ARGS_RETURN_ID];
+ 			int32_t mm_return_code = direct_msg.args[MM_COMMUNICATE_CALL_ARGS_RETURN_CODE];
+ 
+-			if (mm_return_id == ARM_SVC_ID_SP_EVENT_COMPLETE) {
+-
+-				if (mm_return_code == MM_RETURN_CODE_SUCCESS) {
+-
+-					mm_communicate_serializer_header_decode(s->serializer,
+-						s->comm_buffer, (efi_status_t*)opstatus, resp_buf, resp_len);
+-
+-					if (*resp_len > s->req_len) {
++			if (mm_return_code == MM_RETURN_CODE_SUCCESS) {
++				mm_communicate_serializer_header_decode(
++					s->serializer, s->comm_buffer, (efi_status_t *)opstatus,
++					resp_buf, resp_len);
+ 
+-						s->scrub_len =
+-							mm_communicate_serializer_header_size(s->serializer) +
+-							*resp_len;
+-					}
++				if (*resp_len > s->req_len)
++					s->scrub_len =
++						mm_communicate_serializer_header_size(
++							s->serializer) + *resp_len;
+ 
+-					rpc_status = TS_RPC_CALL_ACCEPTED;
+-				}
+-				else {
++				rpc_status = TS_RPC_CALL_ACCEPTED;
++			} else {
+ 
+-					rpc_status = mm_return_code_to_rpc_status(mm_return_code);
+-				}
++				rpc_status = mm_return_code_to_rpc_status(mm_return_code);
+ 			}
+ 		}
+ 	}
+diff --git a/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake b/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake
+index 7ba64af..9c2252c 100644
+--- a/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake
++++ b/external/LinuxFFAUserShim/LinuxFFAUserShim.cmake
+@@ -11,7 +11,7 @@
+ 
+ set(LINUX_FFA_USER_SHIM_URL "https://git.gitlab.arm.com/linux-arm/linux-trusted-services.git"
+ 	CACHE STRING "Linux FF-A user space shim repository URL")
+-set(LINUX_FFA_USER_SHIM_REFSPEC "v4.0.0"
++set(LINUX_FFA_USER_SHIM_REFSPEC "v5.0.0"
+ 	CACHE STRING "Linux FF-A user space shim git refspec")
+ 
+ set(LINUX_FFA_USER_SHIM_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/linux_ffa_user_shim-src"
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/files/0024-Deny-64-bit-FF-A-messages-in-FF-A-RPC-endpoint.patch b/meta-arm/meta-arm/recipes-security/trusted-services/files/0024-Deny-64-bit-FF-A-messages-in-FF-A-RPC-endpoint.patch
new file mode 100644
index 0000000..01cf523
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/files/0024-Deny-64-bit-FF-A-messages-in-FF-A-RPC-endpoint.patch
@@ -0,0 +1,70 @@
+From f173e99554512c982665c1d5d4b0543421177b09 Mon Sep 17 00:00:00 2001
+From: Imre Kis <imre.kis@arm.com>
+Date: Tue, 26 Jul 2022 17:06:46 +0200
+Subject: [PATCH 24/24] Deny 64 bit FF-A messages in FF-A RPC endpoint
+
+FF-A RPC protocol only allows 32 bit FF-A direct messages thus deny all
+64 bit messages in the RPC endpoint.
+
+Signed-off-by: Imre Kis <imre.kis@arm.com>
+Change-Id: I37c95425f80b6e2821b3f6b8649ceba8aa007bce
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ .../rpc/ffarpc/endpoint/ffarpc_call_ep.c      | 31 ++++++++++++-------
+ 1 file changed, 20 insertions(+), 11 deletions(-)
+
+diff --git a/components/rpc/ffarpc/endpoint/ffarpc_call_ep.c b/components/rpc/ffarpc/endpoint/ffarpc_call_ep.c
+index c024196..3035c16 100644
+--- a/components/rpc/ffarpc/endpoint/ffarpc_call_ep.c
++++ b/components/rpc/ffarpc/endpoint/ffarpc_call_ep.c
+@@ -12,6 +12,7 @@
+ #include <protocols/rpc/common/packed-c/status.h>
+ #include <trace.h>
+ #include <stddef.h>
++#include <string.h>
+ 
+ /* TODO: remove this when own ID will be available in libsp */
+ extern uint16_t own_id;
+@@ -260,17 +261,25 @@ void ffa_call_ep_receive(struct ffa_call_ep *call_ep,
+ 			 const struct sp_msg *req_msg,
+ 			 struct sp_msg *resp_msg)
+ {
+-	const uint32_t *req_args = req_msg->args.args32;
+-	uint32_t *resp_args = resp_msg->args.args32;
+-
+-	uint16_t source_id = req_msg->source_id;
+-	uint32_t ifaceid_opcode = req_args[SP_CALL_ARGS_IFACE_ID_OPCODE];
+-
+-	if (FFA_CALL_ARGS_EXTRACT_IFACE(ifaceid_opcode) == FFA_CALL_MGMT_IFACE_ID) {
+-		/* It's an RPC layer management request */
+-		handle_mgmt_msg(call_ep, source_id, req_args, resp_args);
++	resp_msg->is_64bit_message = req_msg->is_64bit_message;
++	memset(&resp_msg->args, 0x00, sizeof(resp_msg->args));
++
++	if (!req_msg->is_64bit_message) {
++		const uint32_t *req_args = req_msg->args.args32;
++		uint32_t *resp_args = resp_msg->args.args32;
++		uint16_t source_id = req_msg->source_id;
++		uint32_t ifaceid_opcode = req_args[SP_CALL_ARGS_IFACE_ID_OPCODE];
++
++		if (FFA_CALL_ARGS_EXTRACT_IFACE(ifaceid_opcode) == FFA_CALL_MGMT_IFACE_ID) {
++			/* It's an RPC layer management request */
++			handle_mgmt_msg(call_ep, source_id, req_args, resp_args);
++		} else {
++			/* Assume anything else is a service request */
++			handle_service_msg(call_ep, source_id, req_args, resp_args);
++		}
+ 	} else {
+-		/* Assume anything else is a service request */
+-		handle_service_msg(call_ep, source_id, req_args, resp_args);
++		EMSG("64 bit FF-A messages are not supported by the TS RPC layer");
++		resp_msg->args.args64[SP_CALL_ARGS_RESP_RPC_STATUS] =
++			TS_RPC_ERROR_INVALID_PARAMETER;
+ 	}
+ }
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/libts/0001-QEMU-MM-communication-buffer-address.patch b/meta-arm/meta-arm/recipes-security/trusted-services/libts/0001-QEMU-MM-communication-buffer-address.patch
new file mode 100644
index 0000000..2c21e6f
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/libts/0001-QEMU-MM-communication-buffer-address.patch
@@ -0,0 +1,29 @@
+From 1fe74d7d5008aed61feb34a8d5d8b5f9144a58b2 Mon Sep 17 00:00:00 2001
+From: Anton Antonov <Anton.Antonov@arm.com>
+Date: Wed, 31 Aug 2022 16:33:13 +0100
+Subject: [PATCH] Update MM communication buffer address for qemuarm64 machine
+
+Upstream-Status: Inappropriate [qemuarm64 specific change]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+---
+ components/rpc/mm_communicate/caller/linux/carveout.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/components/rpc/mm_communicate/caller/linux/carveout.c b/components/rpc/mm_communicate/caller/linux/carveout.c
+index e3cdf16f..62845d30 100644
+--- a/components/rpc/mm_communicate/caller/linux/carveout.c
++++ b/components/rpc/mm_communicate/caller/linux/carveout.c
+@@ -12,8 +12,8 @@
+ #include "carveout.h"
+ 
+ /* Need to be aligned with carve-out used by StMM or smm-gateway. */
+-static const off_t carveout_pa = 0x0000000881000000;
+-static const size_t carveout_len = 0x8000;
++static const off_t carveout_pa = 0x42000000;
++static const size_t carveout_len = 0x1000;
+ 
+ int carveout_claim(uint8_t **buf, size_t *buf_size)
+ {
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/libts/tee-udev.rules b/meta-arm/meta-arm/recipes-security/trusted-services/libts/tee-udev.rules
new file mode 100644
index 0000000..216fe99
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/libts/tee-udev.rules
@@ -0,0 +1,2 @@
+# tee devices can only be accessed by the teeclnt group members
+KERNEL=="tee[0-9]*", TAG+="systemd", MODE="0660", GROUP="teeclnt"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/libts_%.bbappend b/meta-arm/meta-arm/recipes-security/trusted-services/libts_%.bbappend
new file mode 100644
index 0000000..f987e40
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/libts_%.bbappend
@@ -0,0 +1,3 @@
+# Update MM communication buffer address for qemuarm64 machine
+SRC_URI:append:qemuarm64-secureboot = "file://0001-QEMU-MM-communication-buffer-address.patch \
+"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/libts_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/libts_git.bb
new file mode 100644
index 0000000..dfcf8ce
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/libts_git.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "Trusted Services libts library for the arm-linux enviroment. \
+               Used for locating and accessing services from a Linux userspace client"
+
+TS_ENV = "arm-linux"
+
+require trusted-services.inc
+
+SRC_URI += "file://tee-udev.rules \
+           "
+
+OECMAKE_SOURCEPATH="${S}/deployments/libts/${TS_ENV}"
+
+DEPENDS           += "arm-ffa-tee arm-ffa-user"
+RRECOMMENDS:${PN} += "arm-ffa-tee"
+
+# arm-ffa-user.h is installed by arm-ffa-user recipe
+EXTRA_OECMAKE += "-DLINUX_FFA_USER_SHIM_INCLUDE_DIR:PATH=/usr/include \
+                 "
+
+# Unix group name for dev/tee* ownership.
+TEE_GROUP_NAME ?= "teeclnt"
+
+do_install:append () {
+    if ${@oe.utils.conditional('VIRTUAL-RUNTIME_dev_manager', 'busybox-mdev', 'false', 'true', d)}; then
+        install -d ${D}${nonarch_base_libdir}/udev/rules.d/
+        install -m 755 ${WORKDIR}/tee-udev.rules ${D}${nonarch_base_libdir}/udev/rules.d/
+        sed -i -e "s/teeclnt/${TEE_GROUP_NAME}/" ${D}${nonarch_base_libdir}/udev/rules.d/tee-udev.rules
+    fi
+
+    # Move the dynamic libraries into the standard place.
+    # Update a cmake files to use correct paths.
+    install -d ${D}${libdir}
+    mv ${D}${TS_INSTALL}/lib/libts* ${D}${libdir}
+
+    sed -i -e "s#/${TS_ENV}##g" ${D}${TS_INSTALL}/lib/cmake/libtsTargets-noconfig.cmake
+    sed -i -e 's#INTERFACE_INCLUDE_DIRECTORIES.*$#INTERFACE_INCLUDE_DIRECTORIES "\${_IMPORT_PREFIX}/${TS_ENV}/include"#' ${D}${TS_INSTALL}/lib/cmake/libtsTargets.cmake
+}
+
+inherit ${@oe.utils.conditional('VIRTUAL-RUNTIME_dev_manager', 'busybox-mdev', '', 'useradd', d)}
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "--system ${TEE_GROUP_NAME}"
+
+FILES:${PN} = "${libdir}/libts.so.* ${nonarch_base_libdir}/udev/rules.d/"
+FILES:${PN}-dev = "${TS_INSTALL}/lib/cmake ${TS_INSTALL}/include ${libdir}/libts.so"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services-src.inc b/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services-src.inc
new file mode 100644
index 0000000..0251fef
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services-src.inc
@@ -0,0 +1,80 @@
+# Define sources of Trusted Service and all external dependencies
+
+LICENSE = "Apache-2.0 & BSD-3-Clause & BSD-2-Clause & Zlib"
+
+SRC_URI = "git://git.trustedfirmware.org/TS/trusted-services.git;protocol=https;branch=integration;name=trusted-services;destsuffix=git/trusted-services \
+           file://0004-correctly-find-headers-dir.patch \
+           file://0005-setting-sysroot-for-libgcc-lookup.patch \
+           file://0006-applying-lowercase-project-convention.patch \
+           file://0009-PSA-CRYPTO-API-INCLUDE.patch \
+           file://0010-change-libts-to-export-CMake-package.patch \
+           file://0011-Adapt-deployments-to-libts-changes.patch \
+           file://0017-Move-libsp-mocks-into-separate-component.patch \
+           file://0018-Add-mock-for-libsp-sp_discovery.patch \
+           file://0019-Add-mock-for-libsp-sp_memory_management.patch \
+           file://0020-Add-mock-for-libsp-sp_messaging.patch \
+           file://0021-Add-64-bit-direct-message-handling-to-libsp.patch \
+           file://0022-Change-MM-communicate-RPC-protocol-of-call-endpoint.patch \
+           file://0023-Change-MM-communicate-RPC-protocol-of-MM-caller.patch \
+           file://0024-Deny-64-bit-FF-A-messages-in-FF-A-RPC-endpoint.patch \
+"
+
+#latest on 05.07.22.
+SRCREV_trusted-services = "1b0c520279445fc4d85fc582eda5e5ff5f380c39"
+LIC_FILES_CHKSUM = "file://${S}/license.rst;md5=ea160bac7f690a069c608516b17997f4"
+
+S = "${WORKDIR}/git/trusted-services"
+PV ?= "0.0+git${SRCPV}"
+
+# DTC, tag "v1.6.1"
+SRC_URI += "git://github.com/dgibson/dtc;name=dtc;protocol=https;branch=main;destsuffix=git/dtc"
+SRCREV_dtc = "b6910bec11614980a21e46fbccc35934b671bd81"
+LIC_FILES_CHKSUM += "file://../dtc/README.license;md5=a1eb22e37f09df5b5511b8a278992d0e"
+
+# MbedTLS, tag "mbedtls-3.1.0"
+SRC_URI += "git://github.com/ARMmbed/mbedtls.git;name=mbedtls;protocol=https;branch=master;destsuffix=git/mbedtls"
+SRCREV_mbedtls = "d65aeb37349ad1a50e0f6c9b694d4b5290d60e49"
+LIC_FILES_CHKSUM += "file://../mbedtls/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+# Nanopb, tag "nanopb-0.4.6"
+SRC_URI += "git://github.com/nanopb/nanopb.git;name=nanopb;protocol=https;branch=master;destsuffix=git/nanopb"
+SRCREV_nanopb = "afc499f9a410fc9bbf6c9c48cdd8d8b199d49eb4"
+LIC_FILES_CHKSUM += "file://../nanopb/LICENSE.txt;md5=9db4b73a55a3994384112efcdb37c01f"
+
+# qcbor, tag "v1.0.0"
+SRC_URI += "git://github.com/laurencelundblade/QCBOR.git;name=qcbor;protocol=https;branch=master;destsuffix=git/qcbor"
+SRCREV_qcbor = "56b17bf9f74096774944bcac0829adcd887d391e"
+LIC_FILES_CHKSUM += "file://../qcbor/README.md;md5=e8ff2e88a722cdc55eddd0bb9aeca002"
+
+# T_Cose
+SRC_URI += "git://github.com/laurencelundblade/t_cose.git;name=tcose;protocol=https;branch=master;destsuffix=git/tcose"
+SRCREV_tcose = "fc3a4b2c7196ff582e8242de8bd4a1bc4eec577f"
+LIC_FILES_CHKSUM += "file://../tcose/LICENSE;md5=b2ebdbfb82602b97aa628f64cf4b65ad"
+
+# CppUTest,  tag "v3.8"
+SRC_URI += "git://github.com/cpputest/cpputest.git;name=cpputest;protocol=https;branch=master;destsuffix=git/cpputest"
+SRCREV_cpputest = "e25097614e1c4856036366877a02346c4b36bb5b"
+LIC_FILES_CHKSUM += "file://../cpputest/COPYING;md5=ce5d5f1fe02bcd1343ced64a06fd4177"
+
+# TS ships patches for external dependencies that needs to be applied
+apply_ts_patches() {
+    for p in ${S}/external/qcbor/*.patch; do
+        patch -p1 -N -d ${WORKDIR}/git/qcbor < ${p} || true
+    done
+    for p in ${S}/external/t_cose/*.patch; do
+        patch -p1 -N -d ${WORKDIR}/git/tcose < ${p} || true
+    done
+    for p in ${S}/external/CppUTest/*.patch; do
+        patch -p1 -d ${WORKDIR}/git/cpputest < ${p}
+    done
+}
+do_patch[postfuncs] += "apply_ts_patches"
+
+# Paths to dependencies required by some TS SPs/tools
+EXTRA_OECMAKE += "-DDTC_SOURCE_DIR=${WORKDIR}/git/dtc \
+                  -DCPPUTEST_SOURCE_DIR=${WORKDIR}/git/cpputest \
+                  -DNANOPB_SOURCE_DIR=${WORKDIR}/git/nanopb \
+                  -DT_COSE_SOURCE_DIR=${WORKDIR}/git/tcose \
+                  -DQCBOR_SOURCE_DIR=${WORKDIR}/git/qcbor \
+                  -DMBEDTLS_SOURCE_DIR=${WORKDIR}/git/mbedtls \
+                 "
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services.inc b/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services.inc
new file mode 100644
index 0000000..80c0849
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/trusted-services.inc
@@ -0,0 +1,52 @@
+SUMMARY ?= "The Trusted Services: framework for developing root-of-trust services"
+HOMEPAGE = "https://trusted-services.readthedocs.io/en/latest/index.html"
+
+LICENSE = "Apache-2.0 & BSD-3-Clause & Zlib"
+
+inherit python3native cmake
+
+COMPATIBLE_HOST = "aarch64.*-linux"
+
+require trusted-services-src.inc
+
+# By default bitbake includes only ${S} (i.e git/trusted-services) in the maps.
+# We also need to include the TS dependencies source trees.
+DEBUG_PREFIX_MAP:append = "-fmacro-prefix-map=${WORKDIR}/git=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
+ -fdebug-prefix-map=${WORKDIR}/git=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
+"
+
+TS_PLATFORM ?= "ts/mock"
+
+# SP images are embedded into optee-os image
+# FIP packaging is not supported yet
+SP_PACKAGING_METHOD ?= "embedded"
+
+SYSROOT_DIRS += "/usr/opteesp /usr/arm-linux"
+
+# TS cmake files use find_file() to search through source code and build dirs.
+# Yocto cmake class limits CMAKE_FIND_ROOT_PATH and find_file() fails.
+# Include the source tree and build dirs into searchable path.
+OECMAKE_EXTRA_ROOT_PATH = "${WORKDIR}/git/ ${WORKDIR}/build/"
+
+EXTRA_OECMAKE += '-DLIBGCC_LOCATE_CFLAGS="--sysroot=${STAGING_DIR_HOST}" \
+                  -DCROSS_COMPILE="${TARGET_PREFIX}" \
+                  -DSP_PACKAGING_METHOD="${SP_PACKAGING_METHOD}" \
+                  -DTS_PLATFORM="${TS_PLATFORM}" \
+                 '
+export CROSS_COMPILE="${TARGET_PREFIX}"
+
+# Default TS installation path
+TS_INSTALL = "/usr/${TS_ENV}"
+
+# Use the Yocto cmake toolchain for arm-linux TS deployments and
+# the TS opteesp toolchain for opteesp TS deployments
+EXTRA_OECMAKE += "${@oe.utils.conditional('TS_ENV', 'opteesp', \
+                    '-DCMAKE_TOOLCHAIN_FILE=${S}/environments/${TS_ENV}/default_toolchain_file.cmake', \
+                    '-DTS_EXTERNAL_LIB_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake', \
+                    d)} \
+                 "
+
+# Paths to pre-built dependencies required by some TS SPs/tools
+EXTRA_OECMAKE += "-Dlibts_DIR=${STAGING_DIR_HOST}${TS_INSTALL}/lib/cmake/ \
+                  -DNEWLIB_INSTALL_DIR=${STAGING_DIR_HOST}${TS_INSTALL}/newlib_install \
+                 "
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-demo_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-demo_git.bb
new file mode 100644
index 0000000..b0abb6f
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-demo_git.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Trusted Services ts-demo deployment for arm-linux. \
+               Used for running simple TS demo from Linux user-space \
+               on an Arm platform with real deployments of trusted services."
+
+TS_ENV = "arm-linux"
+
+require trusted-services.inc
+
+DEPENDS        += "libts"
+RDEPENDS:${PN} += "libts"
+
+OECMAKE_SOURCEPATH="${S}/deployments/ts-demo/${TS_ENV}"
+
+FILES:${PN} = "${bindir}/ts-demo"
+
+do_install:append () {
+    install -d ${D}${bindir}
+    mv ${D}${TS_INSTALL}/bin/ts-demo ${D}${bindir}
+
+    rm -r --one-file-system ${D}${TS_INSTALL}
+}
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-newlib/0003-Add-newlib-deployment.patch b/meta-arm/meta-arm/recipes-security/trusted-services/ts-newlib/0003-Add-newlib-deployment.patch
new file mode 100644
index 0000000..e43e7d2
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-newlib/0003-Add-newlib-deployment.patch
@@ -0,0 +1,85 @@
+From 03337e3a509eace9f55a46993cfaadee0e796f46 Mon Sep 17 00:00:00 2001
+From: Gyorgy Szing <Gyorgy.Szing@arm.com>
+Date: Fri, 14 Jan 2022 20:35:53 +0000
+Subject: [PATCH 1/1] Add newlib deployment
+
+This deployment allow building newlib directly and not part of SP
+builds. The resulting binary can be used as a pre-build binary for
+building SPs later.
+The intent is to help integration systems, where recursive build is
+problematic, and there is no direct support for building newlib.
+
+Change-Id: I770cdfd3c39eb7bf9764de74dfb191c321c49561
+Signed-off-by: Gyorgy Szing <Gyorgy.Szing@arm.com>
+
+Upstream-Status: Pending [In review]
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+---
+ deployments/newlib/opteesp/CMakeLists.txt | 38 +++++++++++++++++++++++
+ tools/b-test/test_data.yaml               |  4 +++
+ 2 files changed, 42 insertions(+)
+ create mode 100644 deployments/newlib/opteesp/CMakeLists.txt
+
+diff --git a/deployments/newlib/opteesp/CMakeLists.txt b/deployments/newlib/opteesp/CMakeLists.txt
+new file mode 100644
+index 00000000..593e0a96
+--- /dev/null
++++ b/deployments/newlib/opteesp/CMakeLists.txt
+@@ -0,0 +1,38 @@
++#-------------------------------------------------------------------------------
++# Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
++#
++# SPDX-License-Identifier: BSD-3-Clause
++#
++#-------------------------------------------------------------------------------
++cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
++include(../../deployment.cmake REQUIRED)
++
++#-------------------------------------------------------------------------------
++#  The CMakeLists.txt for building the newlib deployment for opteesp
++#
++#  Can be used to build the newlib library, which can be used to build SPs.
++#-------------------------------------------------------------------------------
++include(${TS_ROOT}/environments/opteesp/env.cmake)
++
++project(newlib C)
++
++# This is a dummy library not intended to be compiled ever. It is needed
++# to avoid opteesp specific newlib targeting files.
++add_library(dummy EXCLUDE_FROM_ALL)
++set(TGT dummy)
++# Build newlib as an external component.
++include(${TS_ROOT}/external/newlib/newlib.cmake)
++
++######################################## install
++if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
++	set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "location to install build output to." FORCE)
++endif()
++
++install(DIRECTORY ${NEWLIB_INSTALL_DIR} DESTINATION  ${TS_ENV})
++
++#get_property(_tmp_lib TARGET stdlib::c PROPERTY IMPORTED_LOCATION)
++#get_filename_component(_tmp_path ${_tmp_lib} DIRECTORY)
++#install(DIRECTORY ${_tmp_path} DESTINATION ${TS_ENV})
++
++#get_property(_tmp_path TARGET stdlib::c PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
++#install(DIRECTORY ${_tmp_path} DESTINATION ${TS_ENV})
+diff --git a/tools/b-test/test_data.yaml b/tools/b-test/test_data.yaml
+index 7caafa8b..6bfacc66 100644
+--- a/tools/b-test/test_data.yaml
++++ b/tools/b-test/test_data.yaml
+@@ -69,6 +69,10 @@ data:
+       os_id : "GNU/Linux"
+       params:
+             - "-GUnix Makefiles"
++    - name: "newlib-optee-arm"
++      src: "$TS_ROOT/deployments/newlib/opteesp"
++      params:
++          - "-GUnix Makefiles"
+     - name: "platform-inspect-arm-linux"
+       src: "$TS_ROOT/deployments/platform-inspect/arm-linux"
+       os_id : "GNU/Linux"
+-- 
+2.37.0
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-newlib/0021-newlib-configure.patch b/meta-arm/meta-arm/recipes-security/trusted-services/ts-newlib/0021-newlib-configure.patch
new file mode 100644
index 0000000..a9d291b
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-newlib/0021-newlib-configure.patch
@@ -0,0 +1,72 @@
+From df66efc0db9899c41632091db11bfe2c05eec1fa Mon Sep 17 00:00:00 2001
+From: Anton Antonov <Anton.Antonov@arm.com>
+Date: Wed, 31 Aug 2022 17:55:21 +0100
+Subject: [PATCH] Allow to define additional partameters for newlib configure.
+
+Do not skip newlib and libgloss when crosscompiling
+
+Upstream-Status: Pending
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+---
+ ...-aarch64-linux-gcc-to-compile-bare-metal-lib.patch | 11 ++++++++++-
+ external/newlib/newlib.cmake                          |  6 ++++++
+ 2 files changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/external/newlib/0001-Allow-aarch64-linux-gcc-to-compile-bare-metal-lib.patch b/external/newlib/0001-Allow-aarch64-linux-gcc-to-compile-bare-metal-lib.patch
+index f87ed5a..7533ed0 100644
+--- a/external/newlib/0001-Allow-aarch64-linux-gcc-to-compile-bare-metal-lib.patch
++++ b/external/newlib/0001-Allow-aarch64-linux-gcc-to-compile-bare-metal-lib.patch
+@@ -16,9 +16,18 @@ Signed-off-by: Gyorgy Szing <gyorgy.szing@arm.com>
+  2 files changed, 2 insertions(+), 2 deletions(-)
+ 
+ diff --git a/configure b/configure
+-index 5db52701..1eb71a80 100755
++index 5db527014..dce91609e 100755
+ --- a/configure
+ +++ b/configure
++@@ -2886,7 +2886,7 @@ esac
++
++ # Some are only suitable for cross toolchains.
++ # Remove these if host=target.
++-cross_only="target-libgloss target-newlib target-opcodes"
+++cross_only="target-opcodes"
++
++ case $is_cross_compiler in
++   no) skipdirs="${skipdirs} ${cross_only}" ;;
+ @@ -3659,7 +3659,7 @@ case "${target}" in
+    *-*-freebsd*)
+      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+diff --git a/external/newlib/newlib.cmake b/external/newlib/newlib.cmake
+index 13eb78c..5ee99a5 100644
+--- a/external/newlib/newlib.cmake
++++ b/external/newlib/newlib.cmake
+@@ -168,6 +168,10 @@ if (NOT NEWLIB_LIBC_PATH)
+ 	string(REPLACE ";" " -isystem " CFLAGS_FOR_TARGET "${_gcc_include_dirs}")
+ 	set(CFLAGS_FOR_TARGET "-isystem ${CFLAGS_FOR_TARGET} -fpic")
+ 
++	# Split a newlib extra build parameter into a list of parameters
++	set(NEWLIB_EXTRAS ${NEWLIB_EXTRA})
++	separate_arguments(NEWLIB_EXTRAS)
++
+ 	# Newlib configure step
+ 	# CC env var must be unset otherwise configure will assume the cross compiler is the host
+ 	# compiler.
+@@ -175,6 +179,7 @@ if (NOT NEWLIB_LIBC_PATH)
+ 	execute_process(COMMAND
+ 		${CMAKE_COMMAND} -E env --unset=CC PATH=${COMPILER_PATH}:$ENV{PATH} ./configure
+ 			--target=${COMPILER_PREFIX}
++			--host=${COMPILER_PREFIX}
+ 			--prefix=${NEWLIB_INSTALL_DIR}
+ 			--enable-newlib-nano-formatted-io
+ 			--enable-newlib-nano-malloc
+@@ -182,6 +187,7 @@ if (NOT NEWLIB_LIBC_PATH)
+ 			--enable-newlib-reent-small
+ 			--enable-newlib-global-atexit
+ 			--disable-multilib
++			${NEWLIB_EXTRAS}
+ 			CFLAGS_FOR_TARGET=${CFLAGS_FOR_TARGET}
+ 			LDFLAGS_FOR_TARGET=-fpie
+ 		WORKING_DIRECTORY
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-newlib_4.1.0.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-newlib_4.1.0.bb
new file mode 100644
index 0000000..94038b5
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-newlib_4.1.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Newlib static libraries built with Trusted Services opteesp deployment options"
+
+TS_ENV = "opteesp"
+
+require trusted-services.inc
+
+SRC_URI += "git://sourceware.org/git/newlib-cygwin.git;name=newlib;protocol=https;branch=master;destsuffix=git/newlib \
+            file://0003-Add-newlib-deployment.patch \
+            file://0021-newlib-configure.patch \
+"
+
+# tag "newlib-0.4.1"
+SRCREV_newlib = "415fdd4279b85eeec9d54775ce13c5c412451e08"
+LIC_FILES_CHKSUM += "file://../newlib/COPYING.NEWLIB;md5=b8dda70da54e0efb49b1074f349d7749"
+
+EXTRA_OECMAKE += '-DNEWLIB_SOURCE_DIR=${WORKDIR}/git/newlib \
+                  -DNEWLIB_EXTRA="CFLAGS=--sysroot=${STAGING_DIR_HOST}" \
+                 '
+
+OECMAKE_SOURCEPATH = "${S}/deployments/newlib/${TS_ENV}/"
+
+# TS ships a patch that needs to be applied to newlib
+apply_ts_patch() {
+    for p in ${S}/external/newlib/*.patch; do
+        patch -p1 -d ${WORKDIR}/git/newlib < ${p}
+    done
+}
+do_patch[postfuncs] += "apply_ts_patch"
+
+FILES:${PN}-dev = "${TS_INSTALL}/newlib_install"
+FILES:${PN}-staticdev = "${TS_INSTALL}/newlib_install/*/lib/*.a"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc
new file mode 100644
index 0000000..1e1be6a
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-api-test-common_git.inc
@@ -0,0 +1,36 @@
+SUMMARY = "Parts of PSA certification tests (psa-arch-test) for Trusted Services"
+
+TS_ENV = "arm-linux"
+
+require trusted-services.inc
+
+DEPENDS        += "libts"
+RDEPENDS:${PN} += "libts"
+
+SRC_URI += "git://github.com/ARM-software/psa-arch-tests.git;name=psatest;protocol=https;branch=main;destsuffix=git/psatest \
+            file://0012-psa-arch-test-toolchain.patch \
+           "
+
+SRCREV_psatest = "451aa087a40d02c7d04778235014c5619d126471"
+LIC_FILES_CHKSUM += "file://../psatest/LICENSE.md;md5=2a944942e1496af1886903d274dedb13"
+
+EXTRA_OECMAKE += "\
+                  -DPSA_ARCH_TESTS_SOURCE_DIR=${WORKDIR}/git/psatest \
+                 "
+
+# TS ships patches that need to be applied to psa-arch-tests
+apply_ts_patch() {
+    for p in ${S}/external/psa_arch_tests/*.patch; do
+        patch -p1 -d ${WORKDIR}/git/psatest < ${p}
+    done
+}
+do_patch[postfuncs] += "apply_ts_patch"
+
+FILES:${PN} = "${bindir}/${PSA_TEST}"
+
+do_install:append () {
+    install -d ${D}${bindir}
+    mv ${D}${TS_INSTALL}/bin/${PSA_TEST} ${D}${bindir}
+
+    rm -r --one-file-system ${D}${TS_INSTALL}
+}
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-crypto-api-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-crypto-api-test_git.bb
new file mode 100644
index 0000000..710d377
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-crypto-api-test_git.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Crypto PSA certification tests (psa-arch-test)"
+
+TS_ENV = "arm-linux"
+
+require ts-psa-api-test-common_${PV}.inc
+
+OECMAKE_SOURCEPATH = "${S}/deployments/psa-api-test/crypto/${TS_ENV}"
+
+PSA_TEST = "psa-crypto-api-test"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-iat-api-test/0012-PSA-TARGET-QCBOR.patch b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-iat-api-test/0012-PSA-TARGET-QCBOR.patch
new file mode 100644
index 0000000..3b28e80
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-iat-api-test/0012-PSA-TARGET-QCBOR.patch
@@ -0,0 +1,29 @@
+From 3229ca31e59933608f82001c1cdcca9d0a0aa0e0 Mon Sep 17 00:00:00 2001
+From: Anton Antonov <Anton.Antonov@arm.com>
+Date: Wed, 31 Aug 2022 17:19:08 +0100
+Subject: [PATCH] Subject: [PATCH] Pass PSA_TARGET_QCBOR to psa-arch-tests
+
+psa-arch-tests require they own version of qcbor library.
+Pass PSA_TARGET_QCBOR which defines where pre-fetched qcbor sources are.
+
+Upstream-Status: Pending
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+---
+ external/psa_arch_tests/pas-arch-test-init-cache.cmake.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/external/psa_arch_tests/pas-arch-test-init-cache.cmake.in b/external/psa_arch_tests/pas-arch-test-init-cache.cmake.in
+index 5c63596..64196c2 100644
+--- a/external/psa_arch_tests/pas-arch-test-init-cache.cmake.in
++++ b/external/psa_arch_tests/pas-arch-test-init-cache.cmake.in
+@@ -10,6 +10,7 @@ set(CMAKE_TOOLCHAIN_FILE "@TS_EXTERNAL_LIB_TOOLCHAIN_FILE@" CACHE STRING "")
+ 
+ set(TOOLCHAIN INHERIT CACHE STRING "")
+ set(PSA_INCLUDE_PATHS "@PSA_ARCH_TESTS_EXTERNAL_INCLUDE_PATHS@"  CACHE STRING "")
++set(PSA_TARGET_QCBOR "@PSA_TARGET_QCBOR@"  CACHE STRING "")
+ set(SUITE "@TS_ARCH_TEST_SUITE@"  CACHE STRING "")
+ set(ARCH_TEST_EXTERNAL_DEFS "@PSA_ARCH_TEST_EXTERNAL_DEFS@"  CACHE STRING "")
+ set(CMAKE_VERBOSE_MAKEFILE OFF CACHE BOOL "")
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-iat-api-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-iat-api-test_git.bb
new file mode 100644
index 0000000..73c5f61
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-iat-api-test_git.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Initial Attestation PSA certification tests (psa-arch-test) for Trusted Services"
+
+TS_ENV = "arm-linux"
+
+require ts-psa-api-test-common_${PV}.inc
+
+OECMAKE_SOURCEPATH = "${S}/deployments/psa-api-test/initial_attestation/${TS_ENV}"
+
+PSA_TEST = "psa-iat-api-test"
+
+# psa-arch-tests for INITIAL_ATTESTATION suite can't be built with pre-built qcbor
+# Fetch qcbor sources as a temp work-around and pass PSA_TARGET_QCBOR to psa-arch-tests
+SRC_URI += "git://github.com/laurencelundblade/QCBOR.git;name=psaqcbor;protocol=https;branch=master;destsuffix=git/psaqcbor \
+            file://0012-PSA-TARGET-QCBOR.patch \
+           "
+SRCREV_psaqcbor = "42272e466a8472948bf8fca076d113b81b99f0e0"
+
+EXTRA_OECMAKE += "-DPSA_TARGET_QCBOR=${WORKDIR}/git/psaqcbor \
+                 "
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-its-api-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-its-api-test_git.bb
new file mode 100644
index 0000000..32f2890
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-its-api-test_git.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Internal Trusted Storage PSA certification tests (psa-arch-test) for Trusted Services"
+
+TS_ENV = "arm-linux"
+
+require ts-psa-api-test-common_${PV}.inc
+
+OECMAKE_SOURCEPATH = "${S}/deployments/psa-api-test/internal_trusted_storage/${TS_ENV}"
+
+PSA_TEST = "psa-its-api-test"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-ps-api-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-ps-api-test_git.bb
new file mode 100644
index 0000000..bcf1671
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-psa-ps-api-test_git.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Protected Storage PSA certification tests (psa-arch-test) for Trusted Services"
+
+TS_ENV = "arm-linux"
+
+require ts-psa-api-test-common_${PV}.inc
+
+OECMAKE_SOURCEPATH = "${S}/deployments/psa-api-test/protected_storage/${TS_ENV}"
+
+PSA_TEST = "psa-ps-api-test"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-remote-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-remote-test_git.bb
new file mode 100644
index 0000000..203defe
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-remote-test_git.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Trusted Services ts-remote-test deployment for arm-linux."
+
+TS_ENV = "arm-linux"
+
+require trusted-services.inc
+
+DEPENDS        += "libts"
+RDEPENDS:${PN} += "libts"
+
+OECMAKE_SOURCEPATH = "${S}/deployments/ts-remote-test/${TS_ENV}"
+
+FILES:${PN} = "${bindir}/ts-remote-test"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-service-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-service-test_git.bb
new file mode 100644
index 0000000..3278c6c
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-service-test_git.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Trusted Services ts-service-test deployment for arm-linux. \
+               Used for running service level tests from Linux user-space \
+               on an Arm platform with real deployments of trusted services."
+
+TS_ENV = "arm-linux"
+
+require trusted-services.inc
+
+DEPENDS        += "libts python3-protobuf-native"
+RDEPENDS:${PN} += "libts"
+
+OECMAKE_SOURCEPATH = "${S}/deployments/ts-service-test/${TS_ENV}"
+
+FILES:${PN} = "${bindir}/ts-service-test"
+
+do_install:append () {
+    install -d ${D}${bindir}
+    mv ${D}${TS_INSTALL}/bin/ts-service-test ${D}${bindir}
+
+    rm -r --one-file-system ${D}${TS_INSTALL}
+}
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-attestation_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-attestation_git.bb
new file mode 100644
index 0000000..eef05fe
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-attestation_git.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "Trusted Services attestation service provider"
+
+require ts-sp-common.inc
+
+SP_UUID = "${ATTESTATION_UUID}"
+
+OECMAKE_SOURCEPATH="${S}/deployments/attestation/${TS_ENV}"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-common.inc b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-common.inc
new file mode 100644
index 0000000..e46cd6b
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-common.inc
@@ -0,0 +1,29 @@
+# Common part of all Trusted Services SPs recipes
+
+TS_ENV = "opteesp"
+
+require trusted-services.inc
+require ts-uuid.inc
+
+DEPENDS += "dtc-native ts-newlib"
+
+FILES:${PN}-dev = "${TS_INSTALL}"
+
+# Secure Partition DTS file might be updated in bbapend files
+SP_DTS_FILE ?= "${D}${TS_INSTALL}/manifest/${SP_UUID}.dts"
+
+do_install:append() {
+    # Generate SP DTB which will be included automatically by optee-os build process
+    dtc -I dts -O dtb -o ${D}${TS_INSTALL}/manifest/${SP_UUID}.dtb ${SP_DTS_FILE}
+
+    # We do not need libs and headers
+    rm -r --one-file-system ${D}${TS_INSTALL}/lib
+    rm -r --one-file-system ${D}${TS_INSTALL}/include
+}
+
+# Use Yocto debug prefix maps for compiling assembler.
+EXTRA_OECMAKE += '-DCMAKE_ASM_FLAGS="${DEBUG_PREFIX_MAP}"'
+
+# Ignore that SP stripped.elf does not have GNU_HASH
+# Older versions of optee support SYSV hash only.
+INSANE_SKIP:${PN}-dev += "ldflags"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-crypto_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-crypto_git.bb
new file mode 100644
index 0000000..77a2855
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-crypto_git.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Trusted Services crypto service provider"
+
+require ts-sp-common.inc
+
+SP_UUID = "${CRYPTO_UUID}"
+
+DEPENDS += "python3-protobuf-native"
+
+OECMAKE_SOURCEPATH="${S}/deployments/crypto/${TS_ENV}"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test/0013-env-test-no-std-libs.patch b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test/0013-env-test-no-std-libs.patch
new file mode 100644
index 0000000..f6269db
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test/0013-env-test-no-std-libs.patch
@@ -0,0 +1,33 @@
+From 7a0dcc40ea736dc20b25813dfc08e576c2615217 Mon Sep 17 00:00:00 2001
+From: Anton Antonov <Anton.Antonov@arm.com>
+Date: Wed, 31 Aug 2022 17:32:47 +0100
+Subject: [PATCH] Do not use standard libraries in env-test opteesp deployment
+
+In opteesp deployments newlib used used. The standard libraries should not be included.
+
+Upstream-Status: Pending
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+---
+ deployments/env-test/opteesp/CMakeLists.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/deployments/env-test/opteesp/CMakeLists.txt b/deployments/env-test/opteesp/CMakeLists.txt
+index cff00ff..60abc0d 100644
+--- a/deployments/env-test/opteesp/CMakeLists.txt
++++ b/deployments/env-test/opteesp/CMakeLists.txt
+@@ -56,9 +56,9 @@ include(../env-test.cmake REQUIRED)
+ #-------------------------------------------------------------------------------
+ add_platform(TARGET env-test)
+ 
+-if(CMAKE_CROSSCOMPILING)
+-	target_link_libraries(env-test PRIVATE stdc++ gcc m)
+-endif()
++#if(CMAKE_CROSSCOMPILING)
++#	target_link_libraries(env-test PRIVATE stdc++ gcc m)
++#endif()
+ 
+ #################################################################
+ 
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test_git.bb
new file mode 100644
index 0000000..9cd73cb
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-env-test_git.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Trusted Services test_runner service provider"
+
+require ts-sp-common.inc
+
+# Current version of env-test SP contains hard-coded values for FVP.
+COMPATIBLE_MACHINE ?= "invalid"
+
+SP_UUID = "${ENV_TEST_UUID}"
+
+OECMAKE_SOURCEPATH="${S}/deployments/env-test/${TS_ENV}"
+
+SRC_URI += "\
+            file://0013-env-test-no-std-libs.patch \
+"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-its_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-its_git.bb
new file mode 100644
index 0000000..4eb5dc5
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-its_git.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "Trusted Services internal secure storage service provider"
+
+require ts-sp-common.inc
+
+SP_UUID = "${ITS_UUID}"
+
+OECMAKE_SOURCEPATH="${S}/deployments/internal-trusted-storage/${TS_ENV}"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-se-proxy_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-se-proxy_git.bb
new file mode 100644
index 0000000..b924641
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-se-proxy_git.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "Trusted Services proxy service providers"
+
+require ts-sp-common.inc
+
+SP_UUID = "${SE_PROXY_UUID}"
+
+DEPENDS += "python3-protobuf-native"
+
+OECMAKE_SOURCEPATH="${S}/deployments/se-proxy/${TS_ENV}"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-smm-gateway_%.bbappend b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-smm-gateway_%.bbappend
new file mode 100644
index 0000000..c485a56
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-smm-gateway_%.bbappend
@@ -0,0 +1,5 @@
+
+# Update MM communication buffer address for qemuarm64 machine
+EXTRA_OECMAKE:append:qemuarm64-secureboot = "-DMM_COMM_BUFFER_ADDRESS="0x00000000 0x42000000" \
+                                             -DMM_COMM_BUFFER_PAGE_COUNT="1" \
+"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-smm-gateway_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-smm-gateway_git.bb
new file mode 100644
index 0000000..06ca6bd
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-smm-gateway_git.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "Trusted Services service provider for UEFI SMM services"
+
+require ts-sp-common.inc
+
+SP_UUID = "${SMM_GATEWAY_UUID}"
+
+OECMAKE_SOURCEPATH="${S}/deployments/smm-gateway/${TS_ENV}"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-storage_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-storage_git.bb
new file mode 100644
index 0000000..c893754
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-sp-storage_git.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "Trusted Services secure storage service provider"
+
+require ts-sp-common.inc
+
+SP_UUID = "${STORAGE_UUID}"
+
+OECMAKE_SOURCEPATH="${S}/deployments/protected-storage/${TS_ENV}"
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-uefi-test_git.bb b/meta-arm/meta-arm/recipes-security/trusted-services/ts-uefi-test_git.bb
new file mode 100644
index 0000000..5be436b
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-uefi-test_git.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Trusted Services uefi-test deployment for arm-linux. \
+               Used for running service level tests from Linux user-space \
+               on an Arm platform with real deployments of UEFI SMM services."
+
+TS_ENV = "arm-linux"
+
+require trusted-services.inc
+
+DEPENDS        += "libts python3-protobuf-native"
+RDEPENDS:${PN} += "libts arm-ffa-user"
+
+OECMAKE_SOURCEPATH = "${S}/deployments/uefi-test/${TS_ENV}"
+
+FILES:${PN} = "${bindir}/uefi-test"
+
+do_install:append () {
+    install -d ${D}${bindir}
+    mv ${D}${TS_INSTALL}/bin/uefi-test ${D}${bindir}
+
+    rm -r --one-file-system ${D}${TS_INSTALL}
+}
diff --git a/meta-arm/meta-arm/recipes-security/trusted-services/ts-uuid.inc b/meta-arm/meta-arm/recipes-security/trusted-services/ts-uuid.inc
new file mode 100644
index 0000000..7a39f73
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-security/trusted-services/ts-uuid.inc
@@ -0,0 +1,9 @@
+# Trusted Services SPs canonical UUIDs
+
+ATTESTATION_UUID = "a1baf155-8876-4695-8f7c-54955e8db974"
+CRYPTO_UUID      = "d9df52d5-16a2-4bb2-9aa4-d26d3b84e8c0"
+ENV_TEST_UUID    = "33c75baf-ac6a-4fe4-8ac7-e9909bee2d17"
+ITS_UUID         = "dc1eef48-b17a-4ccf-ac8b-dfcff7711b14"
+SE_PROXY_UUID    = "46bb39d1-b4d9-45b5-88ff-040027dab249"
+SMM_GATEWAY_UUID = "ed32d533-99e6-4209-9cc0-2d72cdd998a7"
+STORAGE_UUID     = "751bf801-3dde-4768-a514-0f10aeed1790"
diff --git a/meta-arm/meta-atp/recipes-kernel/atp/atp-test_3.1.bb b/meta-arm/meta-atp/recipes-kernel/atp/atp-test_3.1.bb
index 5a3097e..e98e13c 100644
--- a/meta-arm/meta-atp/recipes-kernel/atp/atp-test_3.1.bb
+++ b/meta-arm/meta-atp/recipes-kernel/atp/atp-test_3.1.bb
@@ -1,5 +1,4 @@
 require recipes-devtools/atp/atp-source_3.1.inc
-inherit package
 
 SUMMARY = "End-to-end tests evaluating ATP kernel modules service correctness"
 SECTION = "kernel/userland"
diff --git a/meta-arm/meta-atp/recipes-kernel/atp/atp-uapi_3.1.bb b/meta-arm/meta-atp/recipes-kernel/atp/atp-uapi_3.1.bb
index 8c793a3..140105f 100644
--- a/meta-arm/meta-atp/recipes-kernel/atp/atp-uapi_3.1.bb
+++ b/meta-arm/meta-atp/recipes-kernel/atp/atp-uapi_3.1.bb
@@ -1,5 +1,4 @@
 require recipes-devtools/atp/atp-source_3.1.inc
-inherit package
 
 SUMMARY = "User API for accessing services from ATP kernel modules"
 SECTION = "kernel/userland"
diff --git a/meta-arm/meta-gem5/recipes-devtools/gem5/gem5-m5ops_20.bb b/meta-arm/meta-gem5/recipes-devtools/gem5/gem5-m5ops_20.bb
index 8ff4826..d55ed85 100644
--- a/meta-arm/meta-gem5/recipes-devtools/gem5/gem5-m5ops_20.bb
+++ b/meta-arm/meta-gem5/recipes-devtools/gem5/gem5-m5ops_20.bb
@@ -1,5 +1,5 @@
 require gem5-source_20.inc
-inherit scons package
+inherit scons
 
 HOMEPAGE = "https://www.gem5.org/documentation/general_docs/m5ops"
 SUMMARY = "m5ops provide pseudo-instructions to trigger gem5 functionality"
diff --git a/meta-arm/meta-gem5/recipes-kernel/linux/files/init_disassemble_info-signature-changes-causes-compile-failures.patch b/meta-arm/meta-gem5/recipes-kernel/linux/files/init_disassemble_info-signature-changes-causes-compile-failures.patch
new file mode 100644
index 0000000..3d7ac92
--- /dev/null
+++ b/meta-arm/meta-gem5/recipes-kernel/linux/files/init_disassemble_info-signature-changes-causes-compile-failures.patch
@@ -0,0 +1,99 @@
+From 4af28e8e58b6c461a3b85960b222dade8b6891ce Mon Sep 17 00:00:00 2001
+From: Andres Freund <andres@anarazel.de>
+Date: Wed, 22 Jun 2022 11:19:18 -0700
+Subject: [PATCH] init_disassemble_info() signature changes causes compile
+ failures
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Hi,
+
+binutils changed the signature of init_disassemble_info(), which now causes
+perf and bpftool to fail to compile (e.g. on debian unstable).
+
+Relevant binutils commit: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=60a3da00bd5407f07d64dff82a4dae98230dfaac
+
+util/annotate.c: In function ‘symbol__disassemble_bpf’:
+util/annotate.c:1765:9: error: too few arguments to function ‘init_disassemble_info’
+ 1765 |         init_disassemble_info(&info, s,
+      |         ^~~~~~~~~~~~~~~~~~~~~
+In file included from util/annotate.c:1718:
+/usr/include/dis-asm.h:472:13: note: declared here
+  472 | extern void init_disassemble_info (struct disassemble_info *dinfo, void *stream,
+      |             ^~~~~~~~~~~~~~~~~~~~~
+
+with equivalent failures in
+
+tools/bpf/bpf_jit_disasm.c
+tools/bpf/bpftool/jit_disasm.c
+
+The fix is easy enough, add a wrapper around fprintf() that conforms to the
+new signature.
+
+However I assume the necessary feature test and wrapper should only be added
+once? I don't know the kernel stuff well enough to choose the right structure
+here.
+
+Attached is my local fix for perf. Obviously would need work to be a real
+solution.
+
+Greetings,
+
+Andres Freund
+---
+
+binutils 2.39 changed the signature of init_disassemble_info(),
+which now causes perf and bpftool to fail to compile.
+
+Relevant binutils commit: [1]
+
+There is a proper fix in development upstream[2].
+This is a work-around for older kernels.
+
+[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=60a3da00bd5407f07d64dff82a4dae98230dfaac
+[2] https://patchwork.kernel.org/project/netdevbpf/cover/20220801013834.156015-1-andres@anarazel.de/
+
+Upstream-Status: Pending
+Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
+
+
+ tools/perf/util/annotate.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
+index 0c5e4ce390ef..1151c029f714 100644
+--- a/tools/perf/util/annotate.c
++++ b/tools/perf/util/annotate.c
+@@ -1708,6 +1708,18 @@ static int dso__disassemble_filename(struct dso *dso, char *filename, size_t fil
+ #include <bfd.h>
+ #include <dis-asm.h>
+ 
++static int fprintf_styled(void *, enum disassembler_style, const char* fmt, ...)
++{
++  va_list args;
++  int r;
++
++  va_start(args, fmt);
++  r = vprintf(fmt, args);
++  va_end(args);
++
++  return r;
++}
++
+ static int symbol__disassemble_bpf(struct symbol *sym,
+ 				   struct annotate_args *args)
+ {
+@@ -1750,7 +1762,8 @@ static int symbol__disassemble_bpf(struct symbol *sym,
+ 		goto out;
+ 	}
+ 	init_disassemble_info(&info, s,
+-			      (fprintf_ftype) fprintf);
++			      (fprintf_ftype) fprintf,
++			      fprintf_styled);
+ 
+ 	info.arch = bfd_get_arch(bfdf);
+ 	info.mach = bfd_get_mach(bfdf);
+-- 
+2.30.2
+
diff --git a/meta-arm/meta-gem5/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-arm/meta-gem5/recipes-kernel/linux/linux-yocto_%.bbappend
index b36ea06..e66dd21 100644
--- a/meta-arm/meta-gem5/recipes-kernel/linux/linux-yocto_%.bbappend
+++ b/meta-arm/meta-gem5/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -3,7 +3,8 @@
 COMPATIBLE_MACHINE:gem5-arm64 = "gem5-arm64"
 KMACHINE:gem5-arm64 = "gem5-arm64"
 SRC_URI:append:gem5-arm64 = " file://gem5-kmeta;type=kmeta;name=gem5-kmeta;destsuffix=gem5-kmeta \
-                              file://dts/gem5-arm64;subdir=add-files"
+                              file://dts/gem5-arm64;subdir=add-files \
+                              file://init_disassemble_info-signature-changes-causes-compile-failures.patch"
 
 do_patch:append:gem5-arm64() {
     tar -C ${WORKDIR}/add-files/dts -cf - gem5-arm64 | \
