summaryrefslogtreecommitdiff
path: root/meta-arm/meta-arm-bsp
diff options
context:
space:
mode:
Diffstat (limited to 'meta-arm/meta-arm-bsp')
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/corstone500.conf2
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/fvp-base.conf2
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc4
-rw-r--r--meta-arm/meta-arm-bsp/conf/machine/n1sdp.conf3
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/bl_size.patch40
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc28
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-cmd-load-add-load-command-for-memory-mapped.patch26
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-arm-add-support-to-corstone1000-platform.patch32
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-usb-common-move-urb-code-to-common.patch6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-usb-add-isp1760-family-driver.patch10
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-corstone1000-enable-isp1763-usb-controller.patch6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-arm_ffa-introducing-Arm-FF-A-low-level-driver.patch38
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-arm_ffa-introducing-armffa-command.patch16
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-arm_ffa-introducing-MM-communication-with-FF-A.patch18
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-arm_ffa-introducing-test-module-for-UCLASS_FFA.patch12
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-arm_ffa-corstone1000-enable-FF-A-and-MM-support.patch6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-introduce-EFI-capsule-update.patch32
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0012-corstone1000-Update-FFA-shared-buffer-address.patch6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-corstone1000-Make-sure-shared-buffer-contents-are-no.patch6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-arm-corstone1000-fix-unrecognized-filesystem-type.patch10
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_capsule-corstone1000-pass-interface-id-and-buffe.patch12
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_boottime-corstone1000-pass-interface-id-and-kern.patch10
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-efi_loader-corstone1000-remove-guid-check-from-corst.patch12
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-arm_ffa-removing-the-cast-when-using-binary-OR-on-FI.patch6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Return-proper-error-code-when-rx-buffer-is-larger.patch31
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Use-correct-buffer-size.patch (renamed from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-Use-correct-buffer-size.patch)6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch (renamed 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)10
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-Update-comm_buf-when-EFI_BUFFER_TOO_SMALL.patch30
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-efi_firmware-add-get_image_info-for-corstone1000.patch (renamed from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-efi_firmware-add-get_image_info-for-corstone1000.patch)67
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-efi_loader-send-bootcomplete-message-to-secure-encla.patch (renamed from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-efi_loader-send-bootcomplete-message-to-secure-encla.patch)18
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-efi_loader-fix-null-pointer-exception-with-get_image.patch (renamed from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-efi_loader-fix-null-pointer-exception-with-get_image.patch)10
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-Comment-mm_communicate-failure-log.patch34
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-arm-corstone1000-add-mmc-for-fvp.patch (renamed from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-arm-corstone1000-add-mmc-for-fvp.patch)8
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-use-a-compressed-kernel.patch32
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0001-armv7-adding-generic-timer-access-through-MMIO.patch16
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0002-board-arm-add-corstone500-board.patch22
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend16
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/arm-platforms-kmeta/bsp/arm-platforms/juno.scc1
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/fvp-base-arm32/0001-ARM-vexpress-enable-GICv3.patch20
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/juno/juno-dts-mhu-doorbell.patch616
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc2
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm64-ack-5.10/tc/init_disassemble_info-signature-changes-causes-compile-failures.patch99
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0001-core-arm-add-MPIDR-affinity-shift-and-mask-for-32-bi.patch29
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0002-plat-n1sdp-add-N1SDP-platform-support.patch233
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0003-HACK-disable-instruction-cache-and-data-cache.patch46
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch33
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/optee-os-n1sdp.inc22
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend6
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/trusted-services/secure-partitions/corstone1000/0048-Fix-UEFI-get_variable-with-small-buffer.patch407
-rw-r--r--meta-arm/meta-arm-bsp/recipes-security/trusted-services/ts-corstone1000.inc1
-rw-r--r--meta-arm/meta-arm-bsp/wic/corstone1000-image.corstone1000.wks2
51 files changed, 1171 insertions, 989 deletions
diff --git a/meta-arm/meta-arm-bsp/conf/machine/corstone500.conf b/meta-arm/meta-arm-bsp/conf/machine/corstone500.conf
index 1d25471c68..adcfddd0d0 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 @@ SERIAL_CONSOLES = "115200;ttyAMA0"
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 434812b3f9..04ec112053 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 @@ require conf/machine/include/arm/arch-armv8a.inc
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 91dbbfdb1f..ec48222956 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 @@ TFM_SIGN_PRIVATE_KEY = "${S}/bl2/ext/mcuboot/root-RSA-3072_1.pem"
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 @@ EXTRA_IMAGEDEPENDS += "secure-partitions"
# 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 5e87e61dfd..5d1be823bb 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 @@ EXTRA_IMAGEDEPENDS += "virtual/control-processor-firmware"
#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 a5b30195d4..0000000000
--- 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 f8a0b8d517..034dac30f4 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_MBEDTLS = "1"
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 d0ae964f1b..dc64e3cf6c 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index f51f392111f9..049bcd108980 100644
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 @@ index 5e25e45fd288..ff50102a89c7 100644
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 @@ index 7e4a552d90ef..1224a7f85bb3 100644
+);
+#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 @@ index af36639ec6a7..126db279dd3e 100644
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 @@ index 0542aaae16c7..d8dc59b2c95c 100644
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 @@ index 0542aaae16c7..d8dc59b2c95c 100644
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 e0caaa44b9..186362907e 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index 4567c183fb84..d64051b533a7 100644
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 @@ index 4567c183fb84..d64051b533a7 100644
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 @@ index 000000000000..77a82c28929b
+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 @@ index 000000000000..eff1739f0b02
+
+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 @@ index 000000000000..cf166f107efd
+ "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 9974915a0b..1cebd07279 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 @@ index 6dd2c997f9b3..ec00161710a5 100644
/*
* 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 5940f06d4d..1dd6f2597e 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index 000000000000..2486de6f9e27
+
+#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 2ce03b6401..c4654557c0 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 @@ index cf166f107efd..8ba0effb0ab2 100644
"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 8cc848fec3..617aaf77e2 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index 22fd541f9a28..45eca83a473c 100644
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 @@ index b26ca8cf70c9..e83c23789d1b 100644
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 @@ index 000000000000..0e143e54511e
+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 @@ index 7f2be2339475..54980a130fdb 100644
#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 @@ index 3c6fa99b1a6a..473821b882e2 100644
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 @@ index 000000000000..623899d38044
+ 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 @@ index 5bcb8253edba..cffa2c69d621 100644
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 @@ index 5bcb8253edba..cffa2c69d621 100644
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 @@ index 5bcb8253edba..cffa2c69d621 100644
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 83f0547ea9..582bc3e5aa 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index 14307e6da644..f3fd559da54a 100644
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 @@ index ff50102a89c7..ff124bf4bad0 100644
#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 @@ index 000000000000..71a6ebb656d1
+ "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 9b1383ebe4..3b82b416a8 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index e5e35fe51f65..6827b821545e 100644
+ 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 @@ index e5e35fe51f65..6827b821545e 100644
+ 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 @@ index dfef18435dfa..9cb8cfb9c779 100644
/*
--
-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 4fb317ba85..ae4bb02f18 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index f3fd559da54a..6510f844fe09 100644
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 @@ index 000000000000..a0802bd6928a
+
+#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 bc96fc4619..8cab40c200 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 @@ index 8ba0effb0ab2..afc9ccfc192b 100644
#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 cb24ec3e14..0a829c410a 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 @@ index afc9ccfc192b..a400cdef69d0 100644
#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 @@ index 126db279dd3e..01b432e6184b 100644
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 @@ index cffa2c69d621..5c77a40c3ebe 100644
/**
* 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 @@ index cffa2c69d621..5c77a40c3ebe 100644
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 @@ index f00440163d41..c100c1b95298 100644
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 @@ index f00440163d41..c100c1b95298 100644
/**
* 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 @@ index f00440163d41..c100c1b95298 100644
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 @@ index f00440163d41..c100c1b95298 100644
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 @@ index f00440163d41..c100c1b95298 100644
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 @@ index f00440163d41..c100c1b95298 100644
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 @@ index eee54e48784f..989380d4f8cd 100644
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 60dc8501b4..d1e13f68cf 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 @@ index a400cdef69d0..db0f91335cef 100644
#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 2495538d91..2caeb58b82 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 @@ index 9cb8cfb9c779..b6be2b54a030 100644
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 fa201eb9c8..3151741027 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index c9e2d7343ce2..ae72338323ba 100644
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 0d1912c880..4e3f237f63 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 @@ index db0f91335cef..a7445e61348b 100644
#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 @@ index c100c1b95298..17d769803b2a 100644
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 @@ index c100c1b95298..17d769803b2a 100644
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 f460fad8ec..e134f23a66 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index 5c77a40c3ebe..b58a8c98fd05 100644
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 @@ index 5c77a40c3ebe..b58a8c98fd05 100644
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 fa6ab326ad..b5a17156e0 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index 17d769803b2a..939040d2755e 100644
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 @@ index 17d769803b2a..939040d2755e 100644
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 4ee10a0be1..f858a26ebc 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 @@ index 38ea4ba83efc..d0db3ef508a1 100644
/* 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 21a89a4001..0000000000
--- 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
index 54328a73d8..af857f4147 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 @@ index e65fbde60d0a..bb9919095649 100644
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
index aaea20e632..1204f2a428 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index 939040d2755e..790d2ba8fe19 100644
#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 c7ac38f77c..0000000000
--- 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
index c86b658158..8f86b653bf 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: Vishnu Banavath <vishnu.banavath@arm.com>
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 @@ index a5ff32f121f4..9eb89849b28d 100644
+ 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 @@ index a5ff32f121f4..9eb89849b28d 100644
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
index d5a0ec0b1b..1dc04553d7 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 @@ index a7445e61348b..06b605e43bdf 100644
#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 @@ index b58a8c98fd05..d0703060491b 100644
/**
* 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 @@ index b58a8c98fd05..d0703060491b 100644
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 @@ index 9eb89849b28d..477ad072070e 100644
}
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 @@ index 989380d4f8cd..515a0bdf74ef 100644
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
index 532e872677..165fac5fa0 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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index 477ad072070e..f99c57fde576 100644
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 c6a1aed2e6..0000000000
--- 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
index bf95ed7273..2b9ca780e6 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 @@ index 1fcc137a493c..26b0f1b3cea6 100644
+ };
};
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 @@ index 06b605e43bdf..d9855bf91ebf 100644
#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 0000000000..4cc2498bf0
--- /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 8a98f9dedc..9a2997569f 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: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
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 @@ index bfbd85ae64..1a0a24e531 100644
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 @@ index 0000000000..edd806e06e
+ 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 29b29438c8..c389a64c87 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 @@ makefile for this system.
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 @@ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
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 @@ index 4567c183fb..66f99fdf4f 100644
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 @@ index 4567c183fb..66f99fdf4f 100644
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 @@ index 0000000000..8e689bd1fd
+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 @@ index 0000000000..6598fdd3ae
+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 @@ index 0000000000..e878f5c6a5
+
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 @@ index 0000000000..d3161a4b40
+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 @@ index 0000000000..93c397d2f5
+#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 e254d41b4c..a0a7284554 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 @@ SRC_URI:append:corstone1000 = " \
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 2980b39338..240ecf5e48 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 d0a05c2462..184a763176 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 @@ ARMv7 kernel. And these targets often contain GICv3.
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 81f641c478..0000000000
--- 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 f05c5ffc46..7bb4a92556 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 @@ COMPATIBLE_MACHINE:juno = "juno"
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 @@ SRC_URI:append:tc = " \
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 0000000000..aa33bb7f1b
--- /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 0000000000..f249e526a8
--- /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 0000000000..db195ab337
--- /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 0000000000..e8f4cc44dc
--- /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 0000000000..356be9e04f
--- /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 0000000000..219f08bfd7
--- /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 0000000000..f80e09f82d
--- /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 0000000000..e4573a5196
--- /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 88c46a74b9..b04863fcfa 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 @@ SRC_URI:append = " \
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 c58d7d6848..762567970a 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=tfm_s_signed.bin" --align 1 --no-tabl
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