All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] arm-bsp/tc: upgrade version of trusted-firmware-a
@ 2022-09-09  6:59 Davidson K
  2022-09-09  6:59 ` [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium Davidson K
  2022-09-20 22:36 ` [PATCH 1/3] arm-bsp/tc: upgrade version of trusted-firmware-a Jon Mason
  0 siblings, 2 replies; 6+ messages in thread
From: Davidson K @ 2022-09-09  6:59 UTC (permalink / raw)
  To: meta-arm; +Cc: Davidson K

Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
Change-Id: I2100b5f0f7af23f59611f4e591efb09d3bcd6942
---
 ...ate-trusty-load-address-in-dts-files.patch | 44 +++++++++++++
 .../tc/0007-fix-plat-tc-disable-smmu.patch    | 64 -------------------
 .../trusted-firmware-a-tc.inc                 |  7 +-
 3 files changed, 50 insertions(+), 65 deletions(-)
 create mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/tc/0007-feat-arm-tc-Update-trusty-load-address-in-dts-files.patch
 delete mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/tc/0007-fix-plat-tc-disable-smmu.patch

diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/tc/0007-feat-arm-tc-Update-trusty-load-address-in-dts-files.patch b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/tc/0007-feat-arm-tc-Update-trusty-load-address-in-dts-files.patch
new file mode 100644
index 00000000..c5a25e9a
--- /dev/null
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/tc/0007-feat-arm-tc-Update-trusty-load-address-in-dts-files.patch
@@ -0,0 +1,44 @@
+From ea9556a14bec0249ac6e01e4a55cbb04fd15b51a Mon Sep 17 00:00:00 2001
+From: Rupinderjit Singh <rupinderjit.singh@arm.com>
+Date: Wed, 27 Jul 2022 09:23:58 +0100
+Subject: [PATCH] feat(arm/tc): Update trusty load-address in dts files.
+
+Change is required to align with sp header size change from 0x1000 to 0x4000
+
+Signed-off-by: Rupinderjit Singh <rupinderjit.singh@arm.com>
+Change-Id: Ieeaa7450196b33ecff1612cf3b55cf173a7941e0
+Upstream-Status: Pending [Not submitted to upstream yet]
+---
+ plat/arm/board/tc/fdts/tc_spmc_trusty_sp_manifest.dts | 2 +-
+ plat/arm/board/tc/fdts/tc_tb_fw_config.dts            | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plat/arm/board/tc/fdts/tc_spmc_trusty_sp_manifest.dts b/plat/arm/board/tc/fdts/tc_spmc_trusty_sp_manifest.dts
+index e2ea7b811..66a686c9a 100644
+--- a/plat/arm/board/tc/fdts/tc_spmc_trusty_sp_manifest.dts
++++ b/plat/arm/board/tc/fdts/tc_spmc_trusty_sp_manifest.dts
+@@ -25,7 +25,7 @@
+ 		vm1 {
+ 			is_ffa_partition;
+ 			debug_name = "trusty";
+-			load_address = <0xf901f000>;
++			load_address = <0xf901c000>;
+ 			vcpu_count = <8>;
+ 			mem_size = <0x3f00000>; /* 64MB TZC DRAM - 1MB align */
+ 		};
+diff --git a/plat/arm/board/tc/fdts/tc_tb_fw_config.dts b/plat/arm/board/tc/fdts/tc_tb_fw_config.dts
+index a72772fb3..a5bb520fe 100644
+--- a/plat/arm/board/tc/fdts/tc_tb_fw_config.dts
++++ b/plat/arm/board/tc/fdts/tc_tb_fw_config.dts
+@@ -50,7 +50,7 @@
+ #elif TRUSTY_SP_FW_CONFIG
+ 		trusty {
+ 		       uuid = "40ee25f0-a2bc-304c-8c4c-a173c57d8af1";
+-		       load-address = <0xf901f000>;
++		       load-address = <0xf901c000>;
+ 		};
+ #else
+ 		cactus-primary {
+-- 
+2.25.1
+
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/tc/0007-fix-plat-tc-disable-smmu.patch b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/tc/0007-fix-plat-tc-disable-smmu.patch
deleted file mode 100644
index 91f5a9ef..00000000
--- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/tc/0007-fix-plat-tc-disable-smmu.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 1a051bef6c63f6871edd8d87e969460f073820a7 Mon Sep 17 00:00:00 2001
-From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
-Date: Wed, 27 Apr 2022 18:15:47 +0100
-Subject: [PATCH 7/7] fix(plat/tc): disable smmu
-
-Reserve static shared-dma-pool below 4GB. This removes dependency on
-SMMU driver. As there are stability issues in SMMU driver, it is
-disabled. This change is temporary and will be reverted upon proper
-fix and testing.
-
-Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
-Change-Id: I6b1b4c2a0acdf62df8c26007c7ca596774e13710
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- fdts/tc.dts | 16 +++-------------
- 1 file changed, 3 insertions(+), 13 deletions(-)
-
-diff --git a/fdts/tc.dts b/fdts/tc.dts
-index dc86958bf..fbae3e3e8 100644
---- a/fdts/tc.dts
-+++ b/fdts/tc.dts
-@@ -209,12 +209,12 @@
- 		linux,cma {
- 			compatible = "shared-dma-pool";
- 			reusable;
--			size = <0x0 0x8000000>;
-+			reg = <0x0 0xf1000000 0x0 0x8000000>;
- 			linux,cma-default;
- 		};
- 
--		optee@0xf8e00000 {
--			reg = <0x00000000 0xf8e00000 0 0x00200000>;
-+		optee@0xf0e00000 {
-+			reg = <0x0 0xf0e00000 0 0x00200000>;
- 			no-map;
- 		};
- 	};
-@@ -460,13 +460,6 @@
- 		>;
- 	};
- 
--	smmu: smmu@2ce00000 {
--		#iommu-cells = <1>;
--		compatible = "arm,smmu-v3";
--		reg = <0x0 0x2ce00000 0x0 0x20000>;
--		status = "okay";
--	};
--
- 	dp0: display@2cc00000 {
- 		#address-cells = <1>;
- 		#size-cells = <0>;
-@@ -476,9 +469,6 @@
- 		interrupt-names = "DPU";
- 		clocks = <&scmi_clk 0>;
- 		clock-names = "aclk";
--		iommus = <&smmu 0>, <&smmu 1>, <&smmu 2>, <&smmu 3>,
--			<&smmu 4>, <&smmu 5>, <&smmu 6>, <&smmu 7>,
--			<&smmu 8>, <&smmu 9>;
- 		pl0: pipeline@0 {
- 			reg = <0>;
- 			clocks = <&scmi_clk 1>;
--- 
-2.30.2
-
diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-tc.inc b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-tc.inc
index 8cb53dec..ee316418 100644
--- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-tc.inc
+++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-tc.inc
@@ -1,5 +1,9 @@
 # TC0 specific TFA configuration
 
+# Intermediate SHA with 2.7 baseline version
+SRCREV_tfa = "e95abc4c01822ef43e9e874d63d6596dc0b57279"
+PV = "2.7+git${SRCPV}"
+
 DEPENDS += "scp-firmware util-linux-native gptfdisk-native"
 
 FILESEXTRAPATHS:prepend := "${THISDIR}/files/tc:"
@@ -10,7 +14,7 @@ SRC_URI:append = " \
     file://0004-fix-plat-tc-increase-tc_tzc_dram1_size.patch \
     file://0005-feat-plat-tc-add-spmc-manifest-with-trusty-sp.patch \
     file://0006-feat-plat-tc-update-dts-with-trusty-compatible-strin.patch \
-    file://0007-fix-plat-tc-disable-smmu.patch \
+    file://0007-feat-arm-tc-Update-trusty-load-address-in-dts-files.patch \
     file://generate_metadata.py \
     "
 
@@ -41,6 +45,7 @@ EXTRA_OEMAKE += "SCP_BL2=${RECIPE_SYSROOT}/firmware/scp_ramfw.bin"
 EXTRA_OEMAKE += "TRUSTED_BOARD_BOOT=1 GENERATE_COT=1 ARM_ROTPK_LOCATION=devel_rsa \
                      ROT_KEY=plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem"
 EXTRA_OEMAKE += "PSA_FWU_SUPPORT=1 ARM_GPT_SUPPORT=1"
+EXTRA_OEMAKE += "CTX_INCLUDE_MTE_REGS=1"
 
 do_generate_gpt() {
     gpt_image="${BUILD_DIR}/fip_gpt.bin"
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium
  2022-09-09  6:59 [PATCH 1/3] arm-bsp/tc: upgrade version of trusted-firmware-a Davidson K
@ 2022-09-09  6:59 ` Davidson K
  2022-09-09  6:59   ` [PATCH 3/3] arm-bsp/tc: upgrade version of optee Davidson K
  2022-09-09 19:53   ` [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium Jon Mason
  2022-09-20 22:36 ` [PATCH 1/3] arm-bsp/tc: upgrade version of trusted-firmware-a Jon Mason
  1 sibling, 2 replies; 6+ messages in thread
From: Davidson K @ 2022-09-09  6:59 UTC (permalink / raw)
  To: meta-arm; +Cc: Davidson K

Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
Change-Id: I7ccc2ab23955291bcf7d87384ba1ac94c1568443
---
 ...nterrupt-controller-register-access.patch} |   0
 ..._INTERRUPT-to-signal-an-interrupted-.patch | 152 ---------
 ..._SECONDARY_EP_REGISTER_64-to-list-of.patch |  28 --
 ...atch => 0003-tc-increase-heap-pages.patch} |   0
 ...check-receiver-s-attributes-on-memor.patch | 318 ------------------
 .../recipes-bsp/hafnium/hafnium-tc.inc        |  12 +-
 .../hafnium/hafnium/pkg-config-native.patch   |  16 +-
 7 files changed, 14 insertions(+), 512 deletions(-)
 rename meta-arm-bsp/recipes-bsp/hafnium/files/tc/{0004-feat-emulate-interrupt-controller-register-access.patch => 0002-feat-emulate-interrupt-controller-register-access.patch} (100%)
 delete mode 100644 meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch
 delete mode 100644 meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch
 rename meta-arm-bsp/recipes-bsp/hafnium/files/tc/{0006-tc-increase-heap-pages.patch => 0003-tc-increase-heap-pages.patch} (100%)
 delete mode 100644 meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch

diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0004-feat-emulate-interrupt-controller-register-access.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-feat-emulate-interrupt-controller-register-access.patch
similarity index 100%
rename from meta-arm-bsp/recipes-bsp/hafnium/files/tc/0004-feat-emulate-interrupt-controller-register-access.patch
rename to meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-feat-emulate-interrupt-controller-register-access.patch
diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch
deleted file mode 100644
index 2b57b239..00000000
--- a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-From e6bcc390749f0560b3bc92507ecbaaabc7145200 Mon Sep 17 00:00:00 2001
-From: Lucian Paul-Trifu <lucian.paul-trifu@arm.com>
-Date: Wed, 10 Mar 2021 11:31:02 +0000
-Subject: [PATCH 2/5] fix(ff-a): Use FFA_INTERRUPT to signal an interrupted
- FFA_MSG_WAIT
-
-Rather than FFA_ERROR(INTERRUPTED).
-
-Change-Id: I6b23a442714852b6183e0e46af6f0504ec0ee8f4
-Signed-off-by: Ben Horgan <ben.horgan@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- src/api.c                                                  | 2 +-
- test/inc/test/vmapi/ffa.h                                  | 7 +++++++
- test/vmapi/arch/aarch64/gicv3/services/common.c            | 3 +--
- test/vmapi/arch/aarch64/gicv3/services/timer.c             | 2 +-
- test/vmapi/el0_partitions/services/interruptible.c         | 3 +--
- test/vmapi/el0_partitions/services/interruptible_echo.c    | 3 +--
- test/vmapi/el0_partitions/services/receive_block.c         | 2 +-
- .../primary_with_secondaries/services/interruptible.c      | 3 +--
- .../primary_with_secondaries/services/receive_block.c      | 2 +-
- 9 files changed, 15 insertions(+), 12 deletions(-)
-
-diff --git a/src/api.c b/src/api.c
-index b713b7c..00c4d44 100644
---- a/src/api.c
-+++ b/src/api.c
-@@ -1588,7 +1588,7 @@ struct ffa_value api_ffa_msg_recv(bool block, struct vcpu *current,
- 	 * received. If a message is received the return value will be set at
- 	 * that time to FFA_SUCCESS.
- 	 */
--	return_code = ffa_error(FFA_INTERRUPTED);
-+	return_code = (struct ffa_value){.func = FFA_INTERRUPT_32};
- 	if (api_ffa_msg_recv_block_interrupted(current)) {
- 		goto out;
- 	}
-diff --git a/test/inc/test/vmapi/ffa.h b/test/inc/test/vmapi/ffa.h
-index 8fc1223..f0f3e75 100644
---- a/test/inc/test/vmapi/ffa.h
-+++ b/test/inc/test/vmapi/ffa.h
-@@ -24,6 +24,13 @@
- 		EXPECT_EQ(ffa_error_code(v), (ffa_error)); \
- 	} while (0)
- 
-+#define EXPECT_FFA_INTERRUPT(value)                        \
-+	do {                                               \
-+		struct ffa_value v = (value);              \
-+		EXPECT_EQ(v.func, FFA_INTERRUPT_32);       \
-+	} while (0)
-+
-+
- /*
-  * The bit 15 of the FF-A ID indicates whether the partition is executing
-  * in the normal world, in case it is a Virtual Machine (VM); or in the
-diff --git a/test/vmapi/arch/aarch64/gicv3/services/common.c b/test/vmapi/arch/aarch64/gicv3/services/common.c
-index 06df28d..4ada9e2 100644
---- a/test/vmapi/arch/aarch64/gicv3/services/common.c
-+++ b/test/vmapi/arch/aarch64/gicv3/services/common.c
-@@ -22,8 +22,7 @@ struct ffa_value mailbox_receive_retry(void)
- 
- 	do {
- 		received = ffa_msg_wait();
--	} while (received.func == FFA_ERROR_32 &&
--		 received.arg2 == FFA_INTERRUPTED);
-+	} while (received.func == FFA_INTERRUPT_32);
- 
- 	return received;
- }
-diff --git a/test/vmapi/arch/aarch64/gicv3/services/timer.c b/test/vmapi/arch/aarch64/gicv3/services/timer.c
-index 156f160..d5d2816 100644
---- a/test/vmapi/arch/aarch64/gicv3/services/timer.c
-+++ b/test/vmapi/arch/aarch64/gicv3/services/timer.c
-@@ -104,7 +104,7 @@ TEST_SERVICE(timer)
- 		} else if (receive) {
- 			struct ffa_value res = ffa_msg_wait();
- 
--			EXPECT_FFA_ERROR(res, FFA_INTERRUPTED);
-+			EXPECT_FFA_INTERRUPT(res);
- 		} else {
- 			/* Busy wait until the timer fires. */
- 			while (!timer_fired) {
-diff --git a/test/vmapi/el0_partitions/services/interruptible.c b/test/vmapi/el0_partitions/services/interruptible.c
-index 0d00b16..4c9f099 100644
---- a/test/vmapi/el0_partitions/services/interruptible.c
-+++ b/test/vmapi/el0_partitions/services/interruptible.c
-@@ -50,8 +50,7 @@ static struct ffa_value mailbox_receive_retry()
- 	do {
- 		irq();
- 		received = ffa_msg_wait();
--	} while (received.func == FFA_ERROR_32 &&
--		 ffa_error_code(received) == FFA_INTERRUPTED);
-+	} while (received.func == FFA_INTERRUPT_32);
- 
- 	return received;
- }
-diff --git a/test/vmapi/el0_partitions/services/interruptible_echo.c b/test/vmapi/el0_partitions/services/interruptible_echo.c
-index b618cf2..a857783 100644
---- a/test/vmapi/el0_partitions/services/interruptible_echo.c
-+++ b/test/vmapi/el0_partitions/services/interruptible_echo.c
-@@ -39,8 +39,7 @@ static struct ffa_value mailbox_receive_retry()
- 	do {
- 		irq();
- 		received = ffa_msg_wait();
--	} while (received.func == FFA_ERROR_32 &&
--		 received.arg2 == FFA_INTERRUPTED);
-+	} while (received.func == FFA_INTERRUPT_32);
- 
- 	return received;
- }
-diff --git a/test/vmapi/el0_partitions/services/receive_block.c b/test/vmapi/el0_partitions/services/receive_block.c
-index 05a22f3..60da28b 100644
---- a/test/vmapi/el0_partitions/services/receive_block.c
-+++ b/test/vmapi/el0_partitions/services/receive_block.c
-@@ -27,7 +27,7 @@ TEST_SERVICE(receive_block)
- 
- 	for (i = 0; i < 10; ++i) {
- 		struct ffa_value res = ffa_msg_wait();
--		EXPECT_FFA_ERROR(res, FFA_INTERRUPTED);
-+		EXPECT_FFA_INTERRUPT(res);
- 	}
- 
- 	memcpy_s(SERVICE_SEND_BUFFER(), FFA_MSG_PAYLOAD_MAX, message,
-diff --git a/test/vmapi/primary_with_secondaries/services/interruptible.c b/test/vmapi/primary_with_secondaries/services/interruptible.c
-index cc1c1f9..005d1ff 100644
---- a/test/vmapi/primary_with_secondaries/services/interruptible.c
-+++ b/test/vmapi/primary_with_secondaries/services/interruptible.c
-@@ -46,8 +46,7 @@ struct ffa_value mailbox_receive_retry()
- 
- 	do {
- 		received = ffa_msg_wait();
--	} while (received.func == FFA_ERROR_32 &&
--		 ffa_error_code(received) == FFA_INTERRUPTED);
-+	} while (received.func == FFA_INTERRUPT_32);
- 
- 	return received;
- }
-diff --git a/test/vmapi/primary_with_secondaries/services/receive_block.c b/test/vmapi/primary_with_secondaries/services/receive_block.c
-index edb4e3c..a6805ae 100644
---- a/test/vmapi/primary_with_secondaries/services/receive_block.c
-+++ b/test/vmapi/primary_with_secondaries/services/receive_block.c
-@@ -40,7 +40,7 @@ TEST_SERVICE(receive_block)
- 
- 	for (i = 0; i < 10; ++i) {
- 		struct ffa_value res = ffa_msg_wait();
--		EXPECT_FFA_ERROR(res, FFA_INTERRUPTED);
-+		EXPECT_FFA_INTERRUPT(res);
- 	}
- 
- 	memcpy_s(SERVICE_SEND_BUFFER(), FFA_MSG_PAYLOAD_MAX, message,
--- 
-2.17.1
-
diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch
deleted file mode 100644
index 8d2cc139..00000000
--- a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From a6f466c2594b2f56d34fee72494fbd29ea9c7d21 Mon Sep 17 00:00:00 2001
-From: Ben Horgan <ben.horgan@arm.com>
-Date: Tue, 26 Apr 2022 12:59:42 +0000
-Subject: [PATCH 3/5] fix(ff-a): Add FFA_SECONDARY_EP_REGISTER_64 to list of
- features
-
-Signed-off-by: Ben Horgan <ben.horgan@arm.com>
-Change-Id: Ic1344eb2c982c195210dc2c86aa6845f3e037077
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- src/api.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/api.c b/src/api.c
-index 00c4d44..33a9b42 100644
---- a/src/api.c
-+++ b/src/api.c
-@@ -2021,6 +2021,7 @@ struct ffa_value api_ffa_features(uint32_t feature_function_id)
- 	case FFA_MEM_PERM_SET_32:
- 	case FFA_MEM_PERM_GET_64:
- 	case FFA_MEM_PERM_SET_64:
-+	case FFA_SECONDARY_EP_REGISTER_64:
- #endif
- 		return (struct ffa_value){.func = FFA_SUCCESS_32};
- 
--- 
-2.17.1
-
diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0006-tc-increase-heap-pages.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-tc-increase-heap-pages.patch
similarity index 100%
rename from meta-arm-bsp/recipes-bsp/hafnium/files/tc/0006-tc-increase-heap-pages.patch
rename to meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-tc-increase-heap-pages.patch
diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch
deleted file mode 100644
index e5f9489e..00000000
--- a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch
+++ /dev/null
@@ -1,318 +0,0 @@
-From 64d5628c8439e4649e9c1da9b9e02ebd5c7fb8cf Mon Sep 17 00:00:00 2001
-From: Ben Horgan <ben.horgan@arm.com>
-Date: Thu, 28 Apr 2022 15:53:31 +0000
-Subject: [PATCH 5/5] Revert "fix(ff-a): check receiver's attributes on memory
- retrieve"
-
-This reverts commit a98603aa965e3ff3ca5383249213e2fd1a96d850.
-
-Change-Id: Ia71ce3ac52e9b2e85578372c24eb8d593b62435f
-Signed-off-by: Ben Horgan <ben.horgan@arm.com>
----
- src/ffa_memory.c                              | 76 ++++++-----------
- test/vmapi/el0_partitions/memory_sharing.c    | 81 -------------------
- .../primary_with_secondaries/memory_sharing.c | 81 -------------------
- 3 files changed, 25 insertions(+), 213 deletions(-)
-
-diff --git a/src/ffa_memory.c b/src/ffa_memory.c
-index ab47929..2fcc386 100644
---- a/src/ffa_memory.c
-+++ b/src/ffa_memory.c
-@@ -1344,42 +1344,6 @@ static struct ffa_value ffa_memory_send_complete(
- 	return ffa_mem_success(share_state->memory_region->handle);
- }
- 
--/**
-- * Check that the memory attributes match Hafnium expectations:
-- * Normal Memory, Inner shareable, Write-Back Read-Allocate
-- * Write-Allocate Cacheable.
-- */
--static struct ffa_value ffa_memory_attributes_validate(
--	ffa_memory_access_permissions_t attributes)
--{
--	enum ffa_memory_type memory_type;
--	enum ffa_memory_cacheability cacheability;
--	enum ffa_memory_shareability shareability;
--
--	memory_type = ffa_get_memory_type_attr(attributes);
--	if (memory_type != FFA_MEMORY_NORMAL_MEM) {
--		dlog_verbose("Invalid memory type %#x, expected %#x.\n",
--			     memory_type, FFA_MEMORY_NORMAL_MEM);
--		return ffa_error(FFA_DENIED);
--	}
--
--	cacheability = ffa_get_memory_cacheability_attr(attributes);
--	if (cacheability != FFA_MEMORY_CACHE_WRITE_BACK) {
--		dlog_verbose("Invalid cacheability %#x, expected %#x.\n",
--			     cacheability, FFA_MEMORY_CACHE_WRITE_BACK);
--		return ffa_error(FFA_DENIED);
--	}
--
--	shareability = ffa_get_memory_shareability_attr(attributes);
--	if (shareability != FFA_MEMORY_INNER_SHAREABLE) {
--		dlog_verbose("Invalid shareability %#x, expected #%x.\n",
--			     shareability, FFA_MEMORY_INNER_SHAREABLE);
--		return ffa_error(FFA_DENIED);
--	}
--
--	return (struct ffa_value){.func = FFA_SUCCESS_32};
--}
--
- /**
-  * Check that the given `memory_region` represents a valid memory send request
-  * of the given `share_func` type, return the clear flag and permissions via the
-@@ -1400,7 +1364,10 @@ static struct ffa_value ffa_memory_send_validate(
- 	uint32_t constituents_length;
- 	enum ffa_data_access data_access;
- 	enum ffa_instruction_access instruction_access;
--	struct ffa_value ret;
-+	ffa_memory_access_permissions_t attributes;
-+	enum ffa_memory_type memory_type;
-+	enum ffa_memory_cacheability memory_cacheability;
-+	enum ffa_memory_shareability memory_shareability;
- 
- 	assert(permissions != NULL);
- 
-@@ -1536,9 +1503,26 @@ static struct ffa_value ffa_memory_send_validate(
- 	 * Normal Memory, Inner shareable, Write-Back Read-Allocate
- 	 * Write-Allocate Cacheable.
- 	 */
--	ret = ffa_memory_attributes_validate(memory_region->attributes);
--	if (ret.func != FFA_SUCCESS_32) {
--		return ret;
-+	attributes = memory_region->attributes;
-+	memory_type = ffa_get_memory_type_attr(attributes);
-+	if (memory_type != FFA_MEMORY_NORMAL_MEM) {
-+		dlog_verbose("Invalid memory type %#x, expected %#x.\n",
-+			     memory_type, FFA_MEMORY_NORMAL_MEM);
-+		return ffa_error(FFA_INVALID_PARAMETERS);
-+	}
-+
-+	memory_cacheability = ffa_get_memory_cacheability_attr(attributes);
-+	if (memory_cacheability != FFA_MEMORY_CACHE_WRITE_BACK) {
-+		dlog_verbose("Invalid cacheability %#x, expected %#x.\n",
-+			     memory_cacheability, FFA_MEMORY_CACHE_WRITE_BACK);
-+		return ffa_error(FFA_INVALID_PARAMETERS);
-+	}
-+
-+	memory_shareability = ffa_get_memory_shareability_attr(attributes);
-+	if (memory_shareability != FFA_MEMORY_INNER_SHAREABLE) {
-+		dlog_verbose("Invalid shareability %#x, expected %#x.\n",
-+			     memory_shareability, FFA_MEMORY_INNER_SHAREABLE);
-+		return ffa_error(FFA_INVALID_PARAMETERS);
- 	}
- 
- 	return (struct ffa_value){.func = FFA_SUCCESS_32};
-@@ -2376,6 +2360,7 @@ struct ffa_value ffa_memory_retrieve(struct vm_locked to_locked,
- 	 * Check permissions from sender against permissions requested by
- 	 * receiver.
- 	 */
-+	/* TODO: Check attributes too. */
- 	sent_permissions =
- 		memory_region->receivers[0].receiver_permissions.permissions;
- 	sent_data_access = ffa_get_data_access_attr(sent_permissions);
-@@ -2453,17 +2438,6 @@ struct ffa_value ffa_memory_retrieve(struct vm_locked to_locked,
- 		panic("Got unexpected FFA_INSTRUCTION_ACCESS_RESERVED. Should "
- 		      "be checked before this point.");
- 	}
--
--	/*
--	 * Ensure receiver's attributes are compatible with how Hafnium maps
--	 * memory: Normal Memory, Inner shareable, Write-Back Read-Allocate
--	 * Write-Allocate Cacheable.
--	 */
--	ret = ffa_memory_attributes_validate(retrieve_request->attributes);
--	if (ret.func != FFA_SUCCESS_32) {
--		goto out;
--	}
--
- 	memory_to_attributes = ffa_memory_permissions_to_mode(
- 		permissions, share_state->sender_orig_mode);
- 	ret = ffa_retrieve_check_update(
-diff --git a/test/vmapi/el0_partitions/memory_sharing.c b/test/vmapi/el0_partitions/memory_sharing.c
-index 3756d7d..c29f029 100644
---- a/test/vmapi/el0_partitions/memory_sharing.c
-+++ b/test/vmapi/el0_partitions/memory_sharing.c
-@@ -2160,87 +2160,6 @@ TEST(memory_sharing, ffa_validate_retrieve_req_mbz)
- 	}
- }
- 
--/**
-- * Memory can't be shared with arbitrary attributes because Hafnium maps pages
-- * with hardcoded values and doesn't support custom mappings.
-- */
--TEST(memory_sharing, ffa_validate_retrieve_req_attributes)
--{
--	struct ffa_value ret;
--	struct mailbox_buffers mb = set_up_mailbox();
--	uint32_t msg_size;
--	ffa_memory_handle_t handle;
--
--	struct ffa_value (*send_function[])(uint32_t, uint32_t) = {
--		ffa_mem_share,
--		ffa_mem_lend,
--	};
--
--	struct ffa_memory_region_constituent constituents[] = {
--		{.address = (uint64_t)pages, .page_count = 2},
--		{.address = (uint64_t)pages + PAGE_SIZE * 3, .page_count = 1},
--	};
--
--	SERVICE_SELECT(SERVICE_VM1, "ffa_memory_share_fail", mb.send);
--
--	struct {
--		enum ffa_memory_type memory_type;
--		enum ffa_memory_cacheability memory_cacheability;
--		enum ffa_memory_shareability memory_shareability;
--	} invalid_attributes[] = {
--		/* Invalid memory type */
--		{FFA_MEMORY_DEVICE_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
--		 FFA_MEMORY_INNER_SHAREABLE},
--		/* Invalid cacheability */
--		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_NON_CACHEABLE,
--		 FFA_MEMORY_INNER_SHAREABLE},
--		/* Invalid shareability */
--		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
--		 FFA_MEMORY_SHARE_NON_SHAREABLE},
--		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
--		 FFA_MEMORY_OUTER_SHAREABLE}};
--
--	for (uint32_t i = 0; i < ARRAY_SIZE(send_function); i++) {
--		/* Prepare memory region, and set all flags */
--		EXPECT_EQ(ffa_memory_region_init(
--				  mb.send, HF_MAILBOX_SIZE, HF_PRIMARY_VM_ID,
--				  SERVICE_VM1, constituents,
--				  ARRAY_SIZE(constituents), 0, 0,
--				  FFA_DATA_ACCESS_RW,
--				  FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
--				  FFA_MEMORY_NORMAL_MEM,
--				  FFA_MEMORY_CACHE_WRITE_BACK,
--				  FFA_MEMORY_INNER_SHAREABLE, NULL, &msg_size),
--			  0);
--
--		ret = send_function[i](msg_size, msg_size);
--		EXPECT_EQ(ret.func, FFA_SUCCESS_32);
--
--		handle = ffa_mem_success_handle(ret);
--
--		for (uint32_t j = 0; j < ARRAY_SIZE(invalid_attributes); ++j) {
--			msg_size = ffa_memory_retrieve_request_init(
--				mb.send, handle, HF_PRIMARY_VM_ID, SERVICE_VM1,
--				0, 0, FFA_DATA_ACCESS_RW,
--				FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
--				invalid_attributes[j].memory_type,
--				invalid_attributes[j].memory_cacheability,
--				invalid_attributes[j].memory_shareability);
--
--			EXPECT_LE(msg_size, HF_MAILBOX_SIZE);
--
--			EXPECT_EQ(ffa_msg_send(HF_PRIMARY_VM_ID, SERVICE_VM1,
--					       msg_size, 0)
--					  .func,
--				  FFA_SUCCESS_32);
--
--			ffa_run(SERVICE_VM1, 0);
--		}
--
--		EXPECT_EQ(ffa_mem_reclaim(handle, 0).func, FFA_SUCCESS_32);
--	}
--}
--
- /**
-  * If memory is shared can't request zeroing of memory at both send and
-  * relinquish.
-diff --git a/test/vmapi/primary_with_secondaries/memory_sharing.c b/test/vmapi/primary_with_secondaries/memory_sharing.c
-index 6080709..4bcf252 100644
---- a/test/vmapi/primary_with_secondaries/memory_sharing.c
-+++ b/test/vmapi/primary_with_secondaries/memory_sharing.c
-@@ -2307,87 +2307,6 @@ TEST(memory_sharing, ffa_validate_retrieve_req_mbz)
- 	}
- }
- 
--/**
-- * Memory can't be shared with arbitrary attributes because Hafnium maps pages
-- * with hardcoded values and doesn't support custom mappings.
-- */
--TEST(memory_sharing, ffa_validate_retrieve_req_attributes)
--{
--	struct ffa_value ret;
--	struct mailbox_buffers mb = set_up_mailbox();
--	uint32_t msg_size;
--	ffa_memory_handle_t handle;
--
--	struct ffa_value (*send_function[])(uint32_t, uint32_t) = {
--		ffa_mem_share,
--		ffa_mem_lend,
--	};
--
--	struct ffa_memory_region_constituent constituents[] = {
--		{.address = (uint64_t)pages, .page_count = 2},
--		{.address = (uint64_t)pages + PAGE_SIZE * 3, .page_count = 1},
--	};
--
--	SERVICE_SELECT(SERVICE_VM1, "ffa_memory_share_fail_denied", mb.send);
--
--	struct {
--		enum ffa_memory_type memory_type;
--		enum ffa_memory_cacheability memory_cacheability;
--		enum ffa_memory_shareability memory_shareability;
--	} invalid_attributes[] = {
--		/* Invalid memory type */
--		{FFA_MEMORY_DEVICE_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
--		 FFA_MEMORY_INNER_SHAREABLE},
--		/* Invalid cacheability */
--		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_NON_CACHEABLE,
--		 FFA_MEMORY_INNER_SHAREABLE},
--		/* Invalid shareability */
--		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
--		 FFA_MEMORY_SHARE_NON_SHAREABLE},
--		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
--		 FFA_MEMORY_OUTER_SHAREABLE}};
--
--	for (uint32_t i = 0; i < ARRAY_SIZE(send_function); i++) {
--		/* Prepare memory region, and set all flags */
--		EXPECT_EQ(ffa_memory_region_init(
--				  mb.send, HF_MAILBOX_SIZE, HF_PRIMARY_VM_ID,
--				  SERVICE_VM1, constituents,
--				  ARRAY_SIZE(constituents), 0, 0,
--				  FFA_DATA_ACCESS_RW,
--				  FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
--				  FFA_MEMORY_NORMAL_MEM,
--				  FFA_MEMORY_CACHE_WRITE_BACK,
--				  FFA_MEMORY_INNER_SHAREABLE, NULL, &msg_size),
--			  0);
--
--		ret = send_function[i](msg_size, msg_size);
--		EXPECT_EQ(ret.func, FFA_SUCCESS_32);
--
--		handle = ffa_mem_success_handle(ret);
--
--		for (uint32_t j = 0; j < ARRAY_SIZE(invalid_attributes); ++j) {
--			msg_size = ffa_memory_retrieve_request_init(
--				mb.send, handle, HF_PRIMARY_VM_ID, SERVICE_VM1,
--				0, 0, FFA_DATA_ACCESS_RW,
--				FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
--				invalid_attributes[j].memory_type,
--				invalid_attributes[j].memory_cacheability,
--				invalid_attributes[j].memory_shareability);
--
--			EXPECT_LE(msg_size, HF_MAILBOX_SIZE);
--
--			EXPECT_EQ(ffa_msg_send(HF_PRIMARY_VM_ID, SERVICE_VM1,
--					       msg_size, 0)
--					  .func,
--				  FFA_SUCCESS_32);
--
--			ffa_run(SERVICE_VM1, 0);
--		}
--
--		EXPECT_EQ(ffa_mem_reclaim(handle, 0).func, FFA_SUCCESS_32);
--	}
--}
--
- /**
-  * If memory is shared can't request zeroing of memory at both send and
-  * relinquish.
--- 
-2.17.1
-
diff --git a/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc b/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc
index c8f77dc6..9da9c117 100644
--- a/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc
+++ b/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc
@@ -3,7 +3,10 @@
 COMPATIBLE_MACHINE = "(tc?)"
 HAFNIUM_PLATFORM = "secure_tc"
 
-SRCREV = "4eb7b54348234d7f4bbac64bac28f683d6574ba9"
+# Intermediate SHA with 2.7 baseline version
+SRCREV = "dd0561820946fe23bcd57cc129140437f72102a5"
+PV = "2.7+git${SRCPV}"
+
 FILESEXTRAPATHS:prepend:tc := "${THISDIR}/files/tc:"
 
 SRC_URI:remove = " \
@@ -12,11 +15,8 @@ SRC_URI:remove = " \
 
 SRC_URI:append = " \
         file://0001-feat-emulate-cntp-timer-register-accesses-using-cnth.patch \
-        file://0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch \
-        file://0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch \
-        file://0004-feat-emulate-interrupt-controller-register-access.patch \
-        file://0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch \
-        file://0006-tc-increase-heap-pages.patch \
+        file://0002-feat-emulate-interrupt-controller-register-access.patch \
+        file://0003-tc-increase-heap-pages.patch \
         "
 
 do_compile() {
diff --git a/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch b/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
index bc031956..cccf28a1 100644
--- a/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
+++ b/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
@@ -4,17 +4,17 @@ Upstream-Status: Inappropriate
 Signed-off-by: Ross Burton <ross.burton@arm.com>
 
 diff --git a/scripts/Makefile b/scripts/Makefile
-index b4b7d8b58..26a5160ee 100644
+index 9adb6d247..5fe371c7d 100644
 --- a/third_party/linux/scripts/Makefile
 +++ b/third_party/linux/scripts/Makefile
-@@ -10,8 +10,8 @@
-
- HOST_EXTRACFLAGS += -I$(srctree)/tools/include
-
+@@ -3,8 +3,8 @@
+ # scripts contains sources for various helper programs used throughout
+ # the kernel for the build process.
+ 
 -CRYPTO_LIBS = $(shell pkg-config --libs libcrypto 2> /dev/null || echo -lcrypto)
 -CRYPTO_CFLAGS = $(shell pkg-config --cflags libcrypto 2> /dev/null)
 +CRYPTO_LIBS = $(shell pkg-config-native --libs libcrypto 2> /dev/null || echo -lcrypto)
 +CRYPTO_CFLAGS = $(shell pkg-config-native --cflags libcrypto 2> /dev/null)
-
- hostprogs-$(CONFIG_BUILD_BIN2C)  += bin2c
- hostprogs-$(CONFIG_KALLSYMS)     += kallsyms
+ 
+ hostprogs-always-$(CONFIG_BUILD_BIN2C)			+= bin2c
+ hostprogs-always-$(CONFIG_KALLSYMS)			+= kallsyms
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] arm-bsp/tc: upgrade version of optee
  2022-09-09  6:59 ` [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium Davidson K
@ 2022-09-09  6:59   ` Davidson K
  2022-09-09 19:53   ` [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium Jon Mason
  1 sibling, 0 replies; 6+ messages in thread
From: Davidson K @ 2022-09-09  6:59 UTC (permalink / raw)
  To: meta-arm; +Cc: Davidson K

Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
Change-Id: Iacd32d18d5d2804e4050e4d1f8075efe0dd545fe
---
 meta-arm-bsp/conf/machine/include/tc.inc      |  6 +-
 .../tc/0001-WIP-Enable-managed-exit.patch     | 36 ++++++-----
 ...nction-ID-according-to-FFA-v1.1-spec.patch | 29 ---------
 ...talcompute-fix-TZDRAM-start-and-size.patch | 50 ++++++++++++++++
 .../optee-os/tc/0003-Fix-optee-UUID.patch     | 27 ---------
 ...lcompute-add-support-for-higher-DRAM.patch | 60 -------------------
 .../optee/optee-os-generic-tc.inc             |  9 +--
 .../optee/optee-os-tadevkit_3.18.0.bbappend   |  6 ++
 .../optee/optee-os_3.18.0.bbappend            |  1 +
 .../optee/optee-test_3.18.0.bbappend          |  6 ++
 10 files changed, 84 insertions(+), 146 deletions(-)
 delete mode 100644 meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0002-ffa-Update-function-ID-according-to-FFA-v1.1-spec.patch
 create mode 100644 meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0002-plat-totalcompute-fix-TZDRAM-start-and-size.patch
 delete mode 100644 meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0003-Fix-optee-UUID.patch
 delete mode 100644 meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0004-plat-totalcompute-add-support-for-higher-DRAM.patch
 create mode 100644 meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.18.0.bbappend
 create mode 100644 meta-arm-bsp/recipes-security/optee/optee-test_3.18.0.bbappend

diff --git a/meta-arm-bsp/conf/machine/include/tc.inc b/meta-arm-bsp/conf/machine/include/tc.inc
index 88eda556..d1fe97d8 100644
--- a/meta-arm-bsp/conf/machine/include/tc.inc
+++ b/meta-arm-bsp/conf/machine/include/tc.inc
@@ -26,9 +26,9 @@ PREFERRED_PROVIDER_virtual/kernel ?= "linux-arm64-ack"
 PREFERRED_VERSION_linux-arm64-ack ?= "5.10"
 
 # OP-TEE
-PREFERRED_VERSION_optee-os ?= "3.14%"
-PREFERRED_VERSION_optee-client ?= "3.14%"
-PREFERRED_VERSION_optee-test ?= "3.14%"
+PREFERRED_VERSION_optee-os ?= "3.18%"
+PREFERRED_VERSION_optee-client ?= "3.18%"
+PREFERRED_VERSION_optee-test ?= "3.18%"
 
 # Cannot use the default zImage on arm64
 KERNEL_IMAGETYPE = "Image"
diff --git a/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0001-WIP-Enable-managed-exit.patch b/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0001-WIP-Enable-managed-exit.patch
index 3a21b39a..0f0a76e4 100644
--- a/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0001-WIP-Enable-managed-exit.patch
+++ b/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0001-WIP-Enable-managed-exit.patch
@@ -1,7 +1,7 @@
-From 14b84786e85483bf3c737ef8b392204e307c0ff1 Mon Sep 17 00:00:00 2001
+From 34db1357ab3192f18629ceadf4ea33b948513fec Mon Sep 17 00:00:00 2001
 From: Olivier Deprez <olivier.deprez@arm.com>
 Date: Mon, 16 Nov 2020 10:14:02 +0100
-Subject: [PATCH] WIP: Enable managed exit
+Subject: [PATCH 1/2] WIP: Enable managed exit
 
 This change declares OP-TEE SP as supporting managed exit in response to
 a NS interrupt triggering while the SWd runs.
@@ -27,14 +27,14 @@ Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
  core/arch/arm/kernel/boot.c                          | 12 ++++++++++++
  core/arch/arm/kernel/thread_a64.S                    | 11 ++++++++++-
  core/arch/arm/kernel/thread_spmc.c                   | 11 +++++++++++
- .../arm/plat-totalcompute/fdts/optee_sp_manifest.dts |  2 +-
- 4 files changed, 34 insertions(+), 2 deletions(-)
+ .../arm/plat-totalcompute/fdts/optee_sp_manifest.dts |  1 +
+ 4 files changed, 34 insertions(+), 1 deletion(-)
 
 diff --git a/core/arch/arm/kernel/boot.c b/core/arch/arm/kernel/boot.c
-index 09c1b811..d130107f 100644
+index f173384d..466c042e 100644
 --- a/core/arch/arm/kernel/boot.c
 +++ b/core/arch/arm/kernel/boot.c
-@@ -1279,6 +1279,18 @@ static void init_secondary_helper(unsigned long nsec_entry)
+@@ -1350,6 +1350,18 @@ static void init_secondary_helper(unsigned long nsec_entry)
  	init_vfp_sec();
  	init_vfp_nsec();
  
@@ -54,10 +54,10 @@ index 09c1b811..d130107f 100644
  }
  
 diff --git a/core/arch/arm/kernel/thread_a64.S b/core/arch/arm/kernel/thread_a64.S
-index 3e0f5115..63bf396a 100644
+index d6baee4d..1b0c8f37 100644
 --- a/core/arch/arm/kernel/thread_a64.S
 +++ b/core/arch/arm/kernel/thread_a64.S
-@@ -904,6 +904,14 @@ END_FUNC el0_sync_abort
+@@ -1087,6 +1087,14 @@ END_FUNC el0_sync_abort
  	bl	dcache_op_louis
  	ic	iallu
  #endif
@@ -72,7 +72,7 @@ index 3e0f5115..63bf396a 100644
  	/*
  	 * Mark current thread as suspended
  	 */
-@@ -1021,8 +1029,9 @@ LOCAL_FUNC elx_irq , :
+@@ -1204,8 +1212,9 @@ LOCAL_FUNC elx_irq , :
  #endif
  END_FUNC elx_irq
  
@@ -84,10 +84,10 @@ index 3e0f5115..63bf396a 100644
  #else
  	native_intr_handler	fiq
 diff --git a/core/arch/arm/kernel/thread_spmc.c b/core/arch/arm/kernel/thread_spmc.c
-index bd7930e7..89ff82bc 100644
+index ea9e8f03..15577e7e 100644
 --- a/core/arch/arm/kernel/thread_spmc.c
 +++ b/core/arch/arm/kernel/thread_spmc.c
-@@ -1394,6 +1394,17 @@ static TEE_Result spmc_init(void)
+@@ -1518,6 +1518,17 @@ static TEE_Result spmc_init(void)
  	my_endpoint_id = spmc_get_id();
  	DMSG("My endpoint ID %#x", my_endpoint_id);
  
@@ -104,21 +104,19 @@ index bd7930e7..89ff82bc 100644
 +
  	return TEE_SUCCESS;
  }
- #endif /*CFG_CORE_SEL2_SPMC*/
+ #endif /* !defined(CFG_CORE_SEL1_SPMC) */
 diff --git a/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts b/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
-index 4b8b3681..04847c4d 100644
+index 0bfe33f3..00cfa5b2 100644
 --- a/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
 +++ b/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
-@@ -23,7 +23,8 @@
- 	entrypoint-offset = <0x1000>;
+@@ -24,6 +24,7 @@
  	xlat-granule = <0>; /* 4KiB */
  	boot-order = <0>;
--	messaging-method = <0>; /* Direct messaging only */
-+	messaging-method = <3>; /* Direct request/response supported */
+ 	messaging-method = <0x3>; /* Direct request/response supported */
 +	managed-exit; /* Managed exit supported */
-
+ 
  	device-regions {
  		compatible = "arm,ffa-manifest-device-regions";
 -- 
-2.29.2
+2.34.1
 
diff --git a/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0002-ffa-Update-function-ID-according-to-FFA-v1.1-spec.patch b/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0002-ffa-Update-function-ID-according-to-FFA-v1.1-spec.patch
deleted file mode 100644
index 44138cbe..00000000
--- a/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0002-ffa-Update-function-ID-according-to-FFA-v1.1-spec.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 3a240f6b6c58d70471fd0752b8854c43c7c4df72 Mon Sep 17 00:00:00 2001
-From: Usama Arif <usama.arif@arm.com>
-Date: Wed, 11 Aug 2021 11:00:52 +0100
-Subject: [PATCH 2/2] ffa: Update function ID according to FFA v1.1 spec
-
-This updates function ID FFA_SECONDARY_EP_REGISTER_64.
-
-Upstream-Status: Pending [Not submitted to upstream yet]
-Signed-off-by: Usama Arif <usama.arif@arm.com>
----
- core/arch/arm/include/ffa.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/core/arch/arm/include/ffa.h b/core/arch/arm/include/ffa.h
-index 20a009ca..b0d68173 100644
---- a/core/arch/arm/include/ffa.h
-+++ b/core/arch/arm/include/ffa.h
-@@ -69,7 +69,7 @@
- #define FFA_MEM_RECLAIM			U(0x84000077)
- #define FFA_MEM_FRAG_RX			U(0x8400007A)
- #define FFA_MEM_FRAG_TX			U(0x8400007B)
--#define FFA_SECONDARY_EP_REGISTER_64	U(0xC4000084)
-+#define FFA_SECONDARY_EP_REGISTER_64	U(0xC4000087)
- 
- /* Special value for traffic targeted to the Hypervisor or SPM */
- #define FFA_TARGET_INFO_MBZ		U(0x0)
--- 
-2.17.1
-
diff --git a/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0002-plat-totalcompute-fix-TZDRAM-start-and-size.patch b/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0002-plat-totalcompute-fix-TZDRAM-start-and-size.patch
new file mode 100644
index 00000000..ff7f5133
--- /dev/null
+++ b/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0002-plat-totalcompute-fix-TZDRAM-start-and-size.patch
@@ -0,0 +1,50 @@
+From 35dba075593cb32c62b881e7763fcf0ea37908f7 Mon Sep 17 00:00:00 2001
+From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
+Date: Mon, 23 May 2022 11:32:41 +0100
+Subject: [PATCH 2/2] plat-totalcompute: fix TZDRAM start and size
+
+- Fix TZDRAM_SIZE in TC platform
+- For CFG_CORE_SEL2_SPMC, manifest size is increased from 0x1000 to
+  0x4000 for boot protocol support.
+
+Upstream-Status: Pending [Not submitted to upstream yet]
+
+Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
+Change-Id: Iff19c498e9edae961f469604d69419c1a32145f5
+---
+ core/arch/arm/plat-totalcompute/conf.mk                    | 5 +++--
+ core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts | 2 +-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/core/arch/arm/plat-totalcompute/conf.mk b/core/arch/arm/plat-totalcompute/conf.mk
+index b39ac0f0..2f6c0ee1 100644
+--- a/core/arch/arm/plat-totalcompute/conf.mk
++++ b/core/arch/arm/plat-totalcompute/conf.mk
+@@ -32,8 +32,9 @@ ifeq ($(CFG_CORE_SEL1_SPMC),y)
+ CFG_TZDRAM_START ?= 0xfd000000
+ CFG_TZDRAM_SIZE  ?= 0x02000000
+ else ifeq ($(CFG_CORE_SEL2_SPMC),y)
+-CFG_TZDRAM_START ?= 0xfd281000
+-CFG_TZDRAM_SIZE  ?= 0x01d7f000
++CFG_TZDRAM_START ?= 0xfd284000
++# TZDRAM size 0x1980000 - 0x4000 manifest size
++CFG_TZDRAM_SIZE  ?= 0x0197c000
+ else
+ CFG_TZDRAM_START ?= 0xff000000
+ CFG_TZDRAM_SIZE  ?= 0x01000000
+diff --git a/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts b/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
+index 00cfa5b2..56e69f37 100644
+--- a/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
++++ b/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
+@@ -20,7 +20,7 @@
+ 	exception-level = <2>; /* S-EL1 */
+ 	execution-state = <0>; /* AARCH64 */
+ 	load-address = <0xfd280000>;
+-	entrypoint-offset = <0x1000>;
++	entrypoint-offset = <0x4000>;
+ 	xlat-granule = <0>; /* 4KiB */
+ 	boot-order = <0>;
+ 	messaging-method = <0x3>; /* Direct request/response supported */
+-- 
+2.34.1
+
diff --git a/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0003-Fix-optee-UUID.patch b/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0003-Fix-optee-UUID.patch
deleted file mode 100644
index 5374c021..00000000
--- a/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0003-Fix-optee-UUID.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 37fd6f3c18015bcad2c099bf9269e72140e55557 Mon Sep 17 00:00:00 2001
-From: Davidson K <davidson.kumaresan@arm.com>
-Date: Wed, 12 Jan 2022 17:14:03 +0530
-Subject: [PATCH] Fix optee UUID
-
-Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/commit/a9a8e483b6ff7f6e40c5ed95310a18e0bd1993c3#diff-2a310f8cc43d961b2efc05ac1619521653ba8977ff5e6dc5bb89754fd60fe954]
-Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
----
- core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts b/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
-index 04847c4d..3b76fc7d 100644
---- a/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
-+++ b/core/arch/arm/plat-totalcompute/fdts/optee_sp_manifest.dts
-@@ -14,7 +14,7 @@
- 	/* Properties */
- 	description = "op-tee";
- 	ffa-version = <0x00010000>; /* 31:16 - Major, 15:0 - Minor */
--	uuid = <0x486178e0 0xe7f811e3 0xbc5e0002 0xa5d5c51b>;
-+	uuid = <0xe0786148 0xe311f8e7 0x02005ebc 0x1bc5d5a5>;
- 	id = <1>;
- 	execution-ctx-count = <8>;
- 	exception-level = <2>; /* S-EL1 */
--- 
-2.17.1
-
diff --git a/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0004-plat-totalcompute-add-support-for-higher-DRAM.patch b/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0004-plat-totalcompute-add-support-for-higher-DRAM.patch
deleted file mode 100644
index 293ea7d0..00000000
--- a/meta-arm-bsp/recipes-security/optee/files/optee-os/tc/0004-plat-totalcompute-add-support-for-higher-DRAM.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 7fb6d720a285b6135a9247b2adde833ea90e2549 Mon Sep 17 00:00:00 2001
-From: Usama Arif <usama.arif@arm.com>
-Date: Mon, 27 Sep 2021 19:58:56 +0100
-Subject: [PATCH] plat-totalcompute: add support for higher DRAM
-
-The new 6GB DRAM bank starts at 0x8080000000.
-
-Signed-off-by: Usama Arif <usama.arif@arm.com>
-Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
-
-Upstream-Status: Backport [https://github.com/OP-TEE/optee_os/commit/6d8430f943e091282849b188fbc0847c159e5de4]
-Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
----
- core/arch/arm/plat-totalcompute/conf.mk           | 2 ++
- core/arch/arm/plat-totalcompute/main.c            | 1 +
- core/arch/arm/plat-totalcompute/platform_config.h | 3 +++
- 3 files changed, 6 insertions(+)
-
-diff --git a/core/arch/arm/plat-totalcompute/conf.mk b/core/arch/arm/plat-totalcompute/conf.mk
-index 558b7889..e894b1e1 100644
---- a/core/arch/arm/plat-totalcompute/conf.mk
-+++ b/core/arch/arm/plat-totalcompute/conf.mk
-@@ -24,6 +24,8 @@ platform-cflags-debug-info = -gdwarf-2
- platform-aflags-debug-info = -gdwarf-2
- endif
- 
-+$(call force,CFG_CORE_ARM64_PA_BITS,40)
-+
- ifneq (,$(filter ${PLATFORM_FLAVOR},tc0 tc1))
- CFG_TEE_CORE_NB_CORE = 8
- 
-diff --git a/core/arch/arm/plat-totalcompute/main.c b/core/arch/arm/plat-totalcompute/main.c
-index 42acf8dd..eab237bf 100644
---- a/core/arch/arm/plat-totalcompute/main.c
-+++ b/core/arch/arm/plat-totalcompute/main.c
-@@ -27,6 +27,7 @@ register_phys_mem_pgdir(MEM_AREA_IO_SEC, GICD_BASE, GIC_DIST_REG_SIZE);
- #endif
- 
- register_ddr(DRAM0_BASE, DRAM0_SIZE);
-+register_ddr(DRAM1_BASE, DRAM1_SIZE);
- 
- #ifndef CFG_CORE_SEL2_SPMC
- void main_init_gic(void)
-diff --git a/core/arch/arm/plat-totalcompute/platform_config.h b/core/arch/arm/plat-totalcompute/platform_config.h
-index 4255abca..b474a899 100644
---- a/core/arch/arm/plat-totalcompute/platform_config.h
-+++ b/core/arch/arm/plat-totalcompute/platform_config.h
-@@ -26,6 +26,9 @@
- #define DRAM0_BASE		0x80000000
- #define DRAM0_SIZE		0x7d000000
- 
-+#define DRAM1_BASE		0x8080000000ULL
-+#define DRAM1_SIZE		0x180000000ULL
-+
- #define TZCDRAM_BASE		0xff000000
- #define TZCDRAM_SIZE		0x01000000
- 
--- 
-2.30.2
-
diff --git a/meta-arm-bsp/recipes-security/optee/optee-os-generic-tc.inc b/meta-arm-bsp/recipes-security/optee/optee-os-generic-tc.inc
index eeaa59a0..31f19158 100644
--- a/meta-arm-bsp/recipes-security/optee/optee-os-generic-tc.inc
+++ b/meta-arm-bsp/recipes-security/optee/optee-os-generic-tc.inc
@@ -1,17 +1,10 @@
 # Total Compute (tc) specific configuration for optee-os and optee-os-tadevkit
 
-# Intermediate SHA with 3.14 baseline version
-# This has TC0 and TC1 platform support
-SRCREV = "e4f34e786135079160697d88212591105a65fbce"
-PV = "3.14.0+git${SRCPV}"
-
 FILESEXTRAPATHS:prepend := "${THISDIR}/files/optee-os/tc:"
 SRC_URI:append:tc = " \
     file://sp_layout.json \
     file://0001-WIP-Enable-managed-exit.patch \
-    file://0002-ffa-Update-function-ID-according-to-FFA-v1.1-spec.patch \
-    file://0003-Fix-optee-UUID.patch \
-    file://0004-plat-totalcompute-add-support-for-higher-DRAM.patch \
+    file://0002-plat-totalcompute-fix-TZDRAM-start-and-size.patch \
     "
 
 COMPATIBLE_MACHINE = "(tc?)"
diff --git a/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.18.0.bbappend b/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.18.0.bbappend
new file mode 100644
index 00000000..6a22d47e
--- /dev/null
+++ b/meta-arm-bsp/recipes-security/optee/optee-os-tadevkit_3.18.0.bbappend
@@ -0,0 +1,6 @@
+# Machine specific configurations
+
+MACHINE_OPTEE_OS_TADEVKIT_REQUIRE ?= ""
+MACHINE_OPTEE_OS_TADEVKIT_REQUIRE:tc = "optee-os-generic-tc.inc"
+
+require ${MACHINE_OPTEE_OS_TADEVKIT_REQUIRE}
diff --git a/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend b/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend
index f80e09f8..bc933dd5 100644
--- a/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend
+++ b/meta-arm-bsp/recipes-security/optee/optee-os_3.18.0.bbappend
@@ -2,5 +2,6 @@
 
 MACHINE_OPTEE_OS_REQUIRE ?= ""
 MACHINE_OPTEE_OS_REQUIRE:n1sdp = "optee-os-n1sdp.inc"
+MACHINE_OPTEE_OS_REQUIRE:tc = "optee-os-tc.inc"
 
 require ${MACHINE_OPTEE_OS_REQUIRE}
diff --git a/meta-arm-bsp/recipes-security/optee/optee-test_3.18.0.bbappend b/meta-arm-bsp/recipes-security/optee/optee-test_3.18.0.bbappend
new file mode 100644
index 00000000..490b3500
--- /dev/null
+++ b/meta-arm-bsp/recipes-security/optee/optee-test_3.18.0.bbappend
@@ -0,0 +1,6 @@
+# Machine specific configurations
+
+MACHINE_OPTEE_TEST_REQUIRE ?= ""
+MACHINE_OPTEE_TEST_REQUIRE:tc = "optee-test-tc.inc"
+
+require ${MACHINE_OPTEE_TEST_REQUIRE}
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium
  2022-09-09  6:59 ` [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium Davidson K
  2022-09-09  6:59   ` [PATCH 3/3] arm-bsp/tc: upgrade version of optee Davidson K
@ 2022-09-09 19:53   ` Jon Mason
  2022-09-20 14:36     ` Jon Mason
  1 sibling, 1 reply; 6+ messages in thread
From: Jon Mason @ 2022-09-09 19:53 UTC (permalink / raw)
  To: Davidson K; +Cc: meta-arm

On Fri, Sep 09, 2022 at 12:29:26PM +0530, Davidson K wrote:
> Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
> Change-Id: I7ccc2ab23955291bcf7d87384ba1ac94c1568443

I'm seeing issues with hafium not building.  See
https://gitlab.com/jonmason00/meta-arm/-/jobs/3005738154

Thanks,
Jon


> ---
>  ...nterrupt-controller-register-access.patch} |   0
>  ..._INTERRUPT-to-signal-an-interrupted-.patch | 152 ---------
>  ..._SECONDARY_EP_REGISTER_64-to-list-of.patch |  28 --
>  ...atch => 0003-tc-increase-heap-pages.patch} |   0
>  ...check-receiver-s-attributes-on-memor.patch | 318 ------------------
>  .../recipes-bsp/hafnium/hafnium-tc.inc        |  12 +-
>  .../hafnium/hafnium/pkg-config-native.patch   |  16 +-
>  7 files changed, 14 insertions(+), 512 deletions(-)
>  rename meta-arm-bsp/recipes-bsp/hafnium/files/tc/{0004-feat-emulate-interrupt-controller-register-access.patch => 0002-feat-emulate-interrupt-controller-register-access.patch} (100%)
>  delete mode 100644 meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch
>  delete mode 100644 meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch
>  rename meta-arm-bsp/recipes-bsp/hafnium/files/tc/{0006-tc-increase-heap-pages.patch => 0003-tc-increase-heap-pages.patch} (100%)
>  delete mode 100644 meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch
> 
> diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0004-feat-emulate-interrupt-controller-register-access.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-feat-emulate-interrupt-controller-register-access.patch
> similarity index 100%
> rename from meta-arm-bsp/recipes-bsp/hafnium/files/tc/0004-feat-emulate-interrupt-controller-register-access.patch
> rename to meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-feat-emulate-interrupt-controller-register-access.patch
> diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch
> deleted file mode 100644
> index 2b57b239..00000000
> --- a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch
> +++ /dev/null
> @@ -1,152 +0,0 @@
> -From e6bcc390749f0560b3bc92507ecbaaabc7145200 Mon Sep 17 00:00:00 2001
> -From: Lucian Paul-Trifu <lucian.paul-trifu@arm.com>
> -Date: Wed, 10 Mar 2021 11:31:02 +0000
> -Subject: [PATCH 2/5] fix(ff-a): Use FFA_INTERRUPT to signal an interrupted
> - FFA_MSG_WAIT
> -
> -Rather than FFA_ERROR(INTERRUPTED).
> -
> -Change-Id: I6b23a442714852b6183e0e46af6f0504ec0ee8f4
> -Signed-off-by: Ben Horgan <ben.horgan@arm.com>
> -Upstream-Status: Pending [Not submitted to upstream yet]
> ----
> - src/api.c                                                  | 2 +-
> - test/inc/test/vmapi/ffa.h                                  | 7 +++++++
> - test/vmapi/arch/aarch64/gicv3/services/common.c            | 3 +--
> - test/vmapi/arch/aarch64/gicv3/services/timer.c             | 2 +-
> - test/vmapi/el0_partitions/services/interruptible.c         | 3 +--
> - test/vmapi/el0_partitions/services/interruptible_echo.c    | 3 +--
> - test/vmapi/el0_partitions/services/receive_block.c         | 2 +-
> - .../primary_with_secondaries/services/interruptible.c      | 3 +--
> - .../primary_with_secondaries/services/receive_block.c      | 2 +-
> - 9 files changed, 15 insertions(+), 12 deletions(-)
> -
> -diff --git a/src/api.c b/src/api.c
> -index b713b7c..00c4d44 100644
> ---- a/src/api.c
> -+++ b/src/api.c
> -@@ -1588,7 +1588,7 @@ struct ffa_value api_ffa_msg_recv(bool block, struct vcpu *current,
> - 	 * received. If a message is received the return value will be set at
> - 	 * that time to FFA_SUCCESS.
> - 	 */
> --	return_code = ffa_error(FFA_INTERRUPTED);
> -+	return_code = (struct ffa_value){.func = FFA_INTERRUPT_32};
> - 	if (api_ffa_msg_recv_block_interrupted(current)) {
> - 		goto out;
> - 	}
> -diff --git a/test/inc/test/vmapi/ffa.h b/test/inc/test/vmapi/ffa.h
> -index 8fc1223..f0f3e75 100644
> ---- a/test/inc/test/vmapi/ffa.h
> -+++ b/test/inc/test/vmapi/ffa.h
> -@@ -24,6 +24,13 @@
> - 		EXPECT_EQ(ffa_error_code(v), (ffa_error)); \
> - 	} while (0)
> - 
> -+#define EXPECT_FFA_INTERRUPT(value)                        \
> -+	do {                                               \
> -+		struct ffa_value v = (value);              \
> -+		EXPECT_EQ(v.func, FFA_INTERRUPT_32);       \
> -+	} while (0)
> -+
> -+
> - /*
> -  * The bit 15 of the FF-A ID indicates whether the partition is executing
> -  * in the normal world, in case it is a Virtual Machine (VM); or in the
> -diff --git a/test/vmapi/arch/aarch64/gicv3/services/common.c b/test/vmapi/arch/aarch64/gicv3/services/common.c
> -index 06df28d..4ada9e2 100644
> ---- a/test/vmapi/arch/aarch64/gicv3/services/common.c
> -+++ b/test/vmapi/arch/aarch64/gicv3/services/common.c
> -@@ -22,8 +22,7 @@ struct ffa_value mailbox_receive_retry(void)
> - 
> - 	do {
> - 		received = ffa_msg_wait();
> --	} while (received.func == FFA_ERROR_32 &&
> --		 received.arg2 == FFA_INTERRUPTED);
> -+	} while (received.func == FFA_INTERRUPT_32);
> - 
> - 	return received;
> - }
> -diff --git a/test/vmapi/arch/aarch64/gicv3/services/timer.c b/test/vmapi/arch/aarch64/gicv3/services/timer.c
> -index 156f160..d5d2816 100644
> ---- a/test/vmapi/arch/aarch64/gicv3/services/timer.c
> -+++ b/test/vmapi/arch/aarch64/gicv3/services/timer.c
> -@@ -104,7 +104,7 @@ TEST_SERVICE(timer)
> - 		} else if (receive) {
> - 			struct ffa_value res = ffa_msg_wait();
> - 
> --			EXPECT_FFA_ERROR(res, FFA_INTERRUPTED);
> -+			EXPECT_FFA_INTERRUPT(res);
> - 		} else {
> - 			/* Busy wait until the timer fires. */
> - 			while (!timer_fired) {
> -diff --git a/test/vmapi/el0_partitions/services/interruptible.c b/test/vmapi/el0_partitions/services/interruptible.c
> -index 0d00b16..4c9f099 100644
> ---- a/test/vmapi/el0_partitions/services/interruptible.c
> -+++ b/test/vmapi/el0_partitions/services/interruptible.c
> -@@ -50,8 +50,7 @@ static struct ffa_value mailbox_receive_retry()
> - 	do {
> - 		irq();
> - 		received = ffa_msg_wait();
> --	} while (received.func == FFA_ERROR_32 &&
> --		 ffa_error_code(received) == FFA_INTERRUPTED);
> -+	} while (received.func == FFA_INTERRUPT_32);
> - 
> - 	return received;
> - }
> -diff --git a/test/vmapi/el0_partitions/services/interruptible_echo.c b/test/vmapi/el0_partitions/services/interruptible_echo.c
> -index b618cf2..a857783 100644
> ---- a/test/vmapi/el0_partitions/services/interruptible_echo.c
> -+++ b/test/vmapi/el0_partitions/services/interruptible_echo.c
> -@@ -39,8 +39,7 @@ static struct ffa_value mailbox_receive_retry()
> - 	do {
> - 		irq();
> - 		received = ffa_msg_wait();
> --	} while (received.func == FFA_ERROR_32 &&
> --		 received.arg2 == FFA_INTERRUPTED);
> -+	} while (received.func == FFA_INTERRUPT_32);
> - 
> - 	return received;
> - }
> -diff --git a/test/vmapi/el0_partitions/services/receive_block.c b/test/vmapi/el0_partitions/services/receive_block.c
> -index 05a22f3..60da28b 100644
> ---- a/test/vmapi/el0_partitions/services/receive_block.c
> -+++ b/test/vmapi/el0_partitions/services/receive_block.c
> -@@ -27,7 +27,7 @@ TEST_SERVICE(receive_block)
> - 
> - 	for (i = 0; i < 10; ++i) {
> - 		struct ffa_value res = ffa_msg_wait();
> --		EXPECT_FFA_ERROR(res, FFA_INTERRUPTED);
> -+		EXPECT_FFA_INTERRUPT(res);
> - 	}
> - 
> - 	memcpy_s(SERVICE_SEND_BUFFER(), FFA_MSG_PAYLOAD_MAX, message,
> -diff --git a/test/vmapi/primary_with_secondaries/services/interruptible.c b/test/vmapi/primary_with_secondaries/services/interruptible.c
> -index cc1c1f9..005d1ff 100644
> ---- a/test/vmapi/primary_with_secondaries/services/interruptible.c
> -+++ b/test/vmapi/primary_with_secondaries/services/interruptible.c
> -@@ -46,8 +46,7 @@ struct ffa_value mailbox_receive_retry()
> - 
> - 	do {
> - 		received = ffa_msg_wait();
> --	} while (received.func == FFA_ERROR_32 &&
> --		 ffa_error_code(received) == FFA_INTERRUPTED);
> -+	} while (received.func == FFA_INTERRUPT_32);
> - 
> - 	return received;
> - }
> -diff --git a/test/vmapi/primary_with_secondaries/services/receive_block.c b/test/vmapi/primary_with_secondaries/services/receive_block.c
> -index edb4e3c..a6805ae 100644
> ---- a/test/vmapi/primary_with_secondaries/services/receive_block.c
> -+++ b/test/vmapi/primary_with_secondaries/services/receive_block.c
> -@@ -40,7 +40,7 @@ TEST_SERVICE(receive_block)
> - 
> - 	for (i = 0; i < 10; ++i) {
> - 		struct ffa_value res = ffa_msg_wait();
> --		EXPECT_FFA_ERROR(res, FFA_INTERRUPTED);
> -+		EXPECT_FFA_INTERRUPT(res);
> - 	}
> - 
> - 	memcpy_s(SERVICE_SEND_BUFFER(), FFA_MSG_PAYLOAD_MAX, message,
> --- 
> -2.17.1
> -
> diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch
> deleted file mode 100644
> index 8d2cc139..00000000
> --- a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -From a6f466c2594b2f56d34fee72494fbd29ea9c7d21 Mon Sep 17 00:00:00 2001
> -From: Ben Horgan <ben.horgan@arm.com>
> -Date: Tue, 26 Apr 2022 12:59:42 +0000
> -Subject: [PATCH 3/5] fix(ff-a): Add FFA_SECONDARY_EP_REGISTER_64 to list of
> - features
> -
> -Signed-off-by: Ben Horgan <ben.horgan@arm.com>
> -Change-Id: Ic1344eb2c982c195210dc2c86aa6845f3e037077
> -Upstream-Status: Pending [Not submitted to upstream yet]
> ----
> - src/api.c | 1 +
> - 1 file changed, 1 insertion(+)
> -
> -diff --git a/src/api.c b/src/api.c
> -index 00c4d44..33a9b42 100644
> ---- a/src/api.c
> -+++ b/src/api.c
> -@@ -2021,6 +2021,7 @@ struct ffa_value api_ffa_features(uint32_t feature_function_id)
> - 	case FFA_MEM_PERM_SET_32:
> - 	case FFA_MEM_PERM_GET_64:
> - 	case FFA_MEM_PERM_SET_64:
> -+	case FFA_SECONDARY_EP_REGISTER_64:
> - #endif
> - 		return (struct ffa_value){.func = FFA_SUCCESS_32};
> - 
> --- 
> -2.17.1
> -
> diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0006-tc-increase-heap-pages.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-tc-increase-heap-pages.patch
> similarity index 100%
> rename from meta-arm-bsp/recipes-bsp/hafnium/files/tc/0006-tc-increase-heap-pages.patch
> rename to meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-tc-increase-heap-pages.patch
> diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch
> deleted file mode 100644
> index e5f9489e..00000000
> --- a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch
> +++ /dev/null
> @@ -1,318 +0,0 @@
> -From 64d5628c8439e4649e9c1da9b9e02ebd5c7fb8cf Mon Sep 17 00:00:00 2001
> -From: Ben Horgan <ben.horgan@arm.com>
> -Date: Thu, 28 Apr 2022 15:53:31 +0000
> -Subject: [PATCH 5/5] Revert "fix(ff-a): check receiver's attributes on memory
> - retrieve"
> -
> -This reverts commit a98603aa965e3ff3ca5383249213e2fd1a96d850.
> -
> -Change-Id: Ia71ce3ac52e9b2e85578372c24eb8d593b62435f
> -Signed-off-by: Ben Horgan <ben.horgan@arm.com>
> ----
> - src/ffa_memory.c                              | 76 ++++++-----------
> - test/vmapi/el0_partitions/memory_sharing.c    | 81 -------------------
> - .../primary_with_secondaries/memory_sharing.c | 81 -------------------
> - 3 files changed, 25 insertions(+), 213 deletions(-)
> -
> -diff --git a/src/ffa_memory.c b/src/ffa_memory.c
> -index ab47929..2fcc386 100644
> ---- a/src/ffa_memory.c
> -+++ b/src/ffa_memory.c
> -@@ -1344,42 +1344,6 @@ static struct ffa_value ffa_memory_send_complete(
> - 	return ffa_mem_success(share_state->memory_region->handle);
> - }
> - 
> --/**
> -- * Check that the memory attributes match Hafnium expectations:
> -- * Normal Memory, Inner shareable, Write-Back Read-Allocate
> -- * Write-Allocate Cacheable.
> -- */
> --static struct ffa_value ffa_memory_attributes_validate(
> --	ffa_memory_access_permissions_t attributes)
> --{
> --	enum ffa_memory_type memory_type;
> --	enum ffa_memory_cacheability cacheability;
> --	enum ffa_memory_shareability shareability;
> --
> --	memory_type = ffa_get_memory_type_attr(attributes);
> --	if (memory_type != FFA_MEMORY_NORMAL_MEM) {
> --		dlog_verbose("Invalid memory type %#x, expected %#x.\n",
> --			     memory_type, FFA_MEMORY_NORMAL_MEM);
> --		return ffa_error(FFA_DENIED);
> --	}
> --
> --	cacheability = ffa_get_memory_cacheability_attr(attributes);
> --	if (cacheability != FFA_MEMORY_CACHE_WRITE_BACK) {
> --		dlog_verbose("Invalid cacheability %#x, expected %#x.\n",
> --			     cacheability, FFA_MEMORY_CACHE_WRITE_BACK);
> --		return ffa_error(FFA_DENIED);
> --	}
> --
> --	shareability = ffa_get_memory_shareability_attr(attributes);
> --	if (shareability != FFA_MEMORY_INNER_SHAREABLE) {
> --		dlog_verbose("Invalid shareability %#x, expected #%x.\n",
> --			     shareability, FFA_MEMORY_INNER_SHAREABLE);
> --		return ffa_error(FFA_DENIED);
> --	}
> --
> --	return (struct ffa_value){.func = FFA_SUCCESS_32};
> --}
> --
> - /**
> -  * Check that the given `memory_region` represents a valid memory send request
> -  * of the given `share_func` type, return the clear flag and permissions via the
> -@@ -1400,7 +1364,10 @@ static struct ffa_value ffa_memory_send_validate(
> - 	uint32_t constituents_length;
> - 	enum ffa_data_access data_access;
> - 	enum ffa_instruction_access instruction_access;
> --	struct ffa_value ret;
> -+	ffa_memory_access_permissions_t attributes;
> -+	enum ffa_memory_type memory_type;
> -+	enum ffa_memory_cacheability memory_cacheability;
> -+	enum ffa_memory_shareability memory_shareability;
> - 
> - 	assert(permissions != NULL);
> - 
> -@@ -1536,9 +1503,26 @@ static struct ffa_value ffa_memory_send_validate(
> - 	 * Normal Memory, Inner shareable, Write-Back Read-Allocate
> - 	 * Write-Allocate Cacheable.
> - 	 */
> --	ret = ffa_memory_attributes_validate(memory_region->attributes);
> --	if (ret.func != FFA_SUCCESS_32) {
> --		return ret;
> -+	attributes = memory_region->attributes;
> -+	memory_type = ffa_get_memory_type_attr(attributes);
> -+	if (memory_type != FFA_MEMORY_NORMAL_MEM) {
> -+		dlog_verbose("Invalid memory type %#x, expected %#x.\n",
> -+			     memory_type, FFA_MEMORY_NORMAL_MEM);
> -+		return ffa_error(FFA_INVALID_PARAMETERS);
> -+	}
> -+
> -+	memory_cacheability = ffa_get_memory_cacheability_attr(attributes);
> -+	if (memory_cacheability != FFA_MEMORY_CACHE_WRITE_BACK) {
> -+		dlog_verbose("Invalid cacheability %#x, expected %#x.\n",
> -+			     memory_cacheability, FFA_MEMORY_CACHE_WRITE_BACK);
> -+		return ffa_error(FFA_INVALID_PARAMETERS);
> -+	}
> -+
> -+	memory_shareability = ffa_get_memory_shareability_attr(attributes);
> -+	if (memory_shareability != FFA_MEMORY_INNER_SHAREABLE) {
> -+		dlog_verbose("Invalid shareability %#x, expected %#x.\n",
> -+			     memory_shareability, FFA_MEMORY_INNER_SHAREABLE);
> -+		return ffa_error(FFA_INVALID_PARAMETERS);
> - 	}
> - 
> - 	return (struct ffa_value){.func = FFA_SUCCESS_32};
> -@@ -2376,6 +2360,7 @@ struct ffa_value ffa_memory_retrieve(struct vm_locked to_locked,
> - 	 * Check permissions from sender against permissions requested by
> - 	 * receiver.
> - 	 */
> -+	/* TODO: Check attributes too. */
> - 	sent_permissions =
> - 		memory_region->receivers[0].receiver_permissions.permissions;
> - 	sent_data_access = ffa_get_data_access_attr(sent_permissions);
> -@@ -2453,17 +2438,6 @@ struct ffa_value ffa_memory_retrieve(struct vm_locked to_locked,
> - 		panic("Got unexpected FFA_INSTRUCTION_ACCESS_RESERVED. Should "
> - 		      "be checked before this point.");
> - 	}
> --
> --	/*
> --	 * Ensure receiver's attributes are compatible with how Hafnium maps
> --	 * memory: Normal Memory, Inner shareable, Write-Back Read-Allocate
> --	 * Write-Allocate Cacheable.
> --	 */
> --	ret = ffa_memory_attributes_validate(retrieve_request->attributes);
> --	if (ret.func != FFA_SUCCESS_32) {
> --		goto out;
> --	}
> --
> - 	memory_to_attributes = ffa_memory_permissions_to_mode(
> - 		permissions, share_state->sender_orig_mode);
> - 	ret = ffa_retrieve_check_update(
> -diff --git a/test/vmapi/el0_partitions/memory_sharing.c b/test/vmapi/el0_partitions/memory_sharing.c
> -index 3756d7d..c29f029 100644
> ---- a/test/vmapi/el0_partitions/memory_sharing.c
> -+++ b/test/vmapi/el0_partitions/memory_sharing.c
> -@@ -2160,87 +2160,6 @@ TEST(memory_sharing, ffa_validate_retrieve_req_mbz)
> - 	}
> - }
> - 
> --/**
> -- * Memory can't be shared with arbitrary attributes because Hafnium maps pages
> -- * with hardcoded values and doesn't support custom mappings.
> -- */
> --TEST(memory_sharing, ffa_validate_retrieve_req_attributes)
> --{
> --	struct ffa_value ret;
> --	struct mailbox_buffers mb = set_up_mailbox();
> --	uint32_t msg_size;
> --	ffa_memory_handle_t handle;
> --
> --	struct ffa_value (*send_function[])(uint32_t, uint32_t) = {
> --		ffa_mem_share,
> --		ffa_mem_lend,
> --	};
> --
> --	struct ffa_memory_region_constituent constituents[] = {
> --		{.address = (uint64_t)pages, .page_count = 2},
> --		{.address = (uint64_t)pages + PAGE_SIZE * 3, .page_count = 1},
> --	};
> --
> --	SERVICE_SELECT(SERVICE_VM1, "ffa_memory_share_fail", mb.send);
> --
> --	struct {
> --		enum ffa_memory_type memory_type;
> --		enum ffa_memory_cacheability memory_cacheability;
> --		enum ffa_memory_shareability memory_shareability;
> --	} invalid_attributes[] = {
> --		/* Invalid memory type */
> --		{FFA_MEMORY_DEVICE_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> --		 FFA_MEMORY_INNER_SHAREABLE},
> --		/* Invalid cacheability */
> --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_NON_CACHEABLE,
> --		 FFA_MEMORY_INNER_SHAREABLE},
> --		/* Invalid shareability */
> --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> --		 FFA_MEMORY_SHARE_NON_SHAREABLE},
> --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> --		 FFA_MEMORY_OUTER_SHAREABLE}};
> --
> --	for (uint32_t i = 0; i < ARRAY_SIZE(send_function); i++) {
> --		/* Prepare memory region, and set all flags */
> --		EXPECT_EQ(ffa_memory_region_init(
> --				  mb.send, HF_MAILBOX_SIZE, HF_PRIMARY_VM_ID,
> --				  SERVICE_VM1, constituents,
> --				  ARRAY_SIZE(constituents), 0, 0,
> --				  FFA_DATA_ACCESS_RW,
> --				  FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
> --				  FFA_MEMORY_NORMAL_MEM,
> --				  FFA_MEMORY_CACHE_WRITE_BACK,
> --				  FFA_MEMORY_INNER_SHAREABLE, NULL, &msg_size),
> --			  0);
> --
> --		ret = send_function[i](msg_size, msg_size);
> --		EXPECT_EQ(ret.func, FFA_SUCCESS_32);
> --
> --		handle = ffa_mem_success_handle(ret);
> --
> --		for (uint32_t j = 0; j < ARRAY_SIZE(invalid_attributes); ++j) {
> --			msg_size = ffa_memory_retrieve_request_init(
> --				mb.send, handle, HF_PRIMARY_VM_ID, SERVICE_VM1,
> --				0, 0, FFA_DATA_ACCESS_RW,
> --				FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
> --				invalid_attributes[j].memory_type,
> --				invalid_attributes[j].memory_cacheability,
> --				invalid_attributes[j].memory_shareability);
> --
> --			EXPECT_LE(msg_size, HF_MAILBOX_SIZE);
> --
> --			EXPECT_EQ(ffa_msg_send(HF_PRIMARY_VM_ID, SERVICE_VM1,
> --					       msg_size, 0)
> --					  .func,
> --				  FFA_SUCCESS_32);
> --
> --			ffa_run(SERVICE_VM1, 0);
> --		}
> --
> --		EXPECT_EQ(ffa_mem_reclaim(handle, 0).func, FFA_SUCCESS_32);
> --	}
> --}
> --
> - /**
> -  * If memory is shared can't request zeroing of memory at both send and
> -  * relinquish.
> -diff --git a/test/vmapi/primary_with_secondaries/memory_sharing.c b/test/vmapi/primary_with_secondaries/memory_sharing.c
> -index 6080709..4bcf252 100644
> ---- a/test/vmapi/primary_with_secondaries/memory_sharing.c
> -+++ b/test/vmapi/primary_with_secondaries/memory_sharing.c
> -@@ -2307,87 +2307,6 @@ TEST(memory_sharing, ffa_validate_retrieve_req_mbz)
> - 	}
> - }
> - 
> --/**
> -- * Memory can't be shared with arbitrary attributes because Hafnium maps pages
> -- * with hardcoded values and doesn't support custom mappings.
> -- */
> --TEST(memory_sharing, ffa_validate_retrieve_req_attributes)
> --{
> --	struct ffa_value ret;
> --	struct mailbox_buffers mb = set_up_mailbox();
> --	uint32_t msg_size;
> --	ffa_memory_handle_t handle;
> --
> --	struct ffa_value (*send_function[])(uint32_t, uint32_t) = {
> --		ffa_mem_share,
> --		ffa_mem_lend,
> --	};
> --
> --	struct ffa_memory_region_constituent constituents[] = {
> --		{.address = (uint64_t)pages, .page_count = 2},
> --		{.address = (uint64_t)pages + PAGE_SIZE * 3, .page_count = 1},
> --	};
> --
> --	SERVICE_SELECT(SERVICE_VM1, "ffa_memory_share_fail_denied", mb.send);
> --
> --	struct {
> --		enum ffa_memory_type memory_type;
> --		enum ffa_memory_cacheability memory_cacheability;
> --		enum ffa_memory_shareability memory_shareability;
> --	} invalid_attributes[] = {
> --		/* Invalid memory type */
> --		{FFA_MEMORY_DEVICE_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> --		 FFA_MEMORY_INNER_SHAREABLE},
> --		/* Invalid cacheability */
> --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_NON_CACHEABLE,
> --		 FFA_MEMORY_INNER_SHAREABLE},
> --		/* Invalid shareability */
> --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> --		 FFA_MEMORY_SHARE_NON_SHAREABLE},
> --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> --		 FFA_MEMORY_OUTER_SHAREABLE}};
> --
> --	for (uint32_t i = 0; i < ARRAY_SIZE(send_function); i++) {
> --		/* Prepare memory region, and set all flags */
> --		EXPECT_EQ(ffa_memory_region_init(
> --				  mb.send, HF_MAILBOX_SIZE, HF_PRIMARY_VM_ID,
> --				  SERVICE_VM1, constituents,
> --				  ARRAY_SIZE(constituents), 0, 0,
> --				  FFA_DATA_ACCESS_RW,
> --				  FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
> --				  FFA_MEMORY_NORMAL_MEM,
> --				  FFA_MEMORY_CACHE_WRITE_BACK,
> --				  FFA_MEMORY_INNER_SHAREABLE, NULL, &msg_size),
> --			  0);
> --
> --		ret = send_function[i](msg_size, msg_size);
> --		EXPECT_EQ(ret.func, FFA_SUCCESS_32);
> --
> --		handle = ffa_mem_success_handle(ret);
> --
> --		for (uint32_t j = 0; j < ARRAY_SIZE(invalid_attributes); ++j) {
> --			msg_size = ffa_memory_retrieve_request_init(
> --				mb.send, handle, HF_PRIMARY_VM_ID, SERVICE_VM1,
> --				0, 0, FFA_DATA_ACCESS_RW,
> --				FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
> --				invalid_attributes[j].memory_type,
> --				invalid_attributes[j].memory_cacheability,
> --				invalid_attributes[j].memory_shareability);
> --
> --			EXPECT_LE(msg_size, HF_MAILBOX_SIZE);
> --
> --			EXPECT_EQ(ffa_msg_send(HF_PRIMARY_VM_ID, SERVICE_VM1,
> --					       msg_size, 0)
> --					  .func,
> --				  FFA_SUCCESS_32);
> --
> --			ffa_run(SERVICE_VM1, 0);
> --		}
> --
> --		EXPECT_EQ(ffa_mem_reclaim(handle, 0).func, FFA_SUCCESS_32);
> --	}
> --}
> --
> - /**
> -  * If memory is shared can't request zeroing of memory at both send and
> -  * relinquish.
> --- 
> -2.17.1
> -
> diff --git a/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc b/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc
> index c8f77dc6..9da9c117 100644
> --- a/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc
> +++ b/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc
> @@ -3,7 +3,10 @@
>  COMPATIBLE_MACHINE = "(tc?)"
>  HAFNIUM_PLATFORM = "secure_tc"
>  
> -SRCREV = "4eb7b54348234d7f4bbac64bac28f683d6574ba9"
> +# Intermediate SHA with 2.7 baseline version
> +SRCREV = "dd0561820946fe23bcd57cc129140437f72102a5"
> +PV = "2.7+git${SRCPV}"
> +
>  FILESEXTRAPATHS:prepend:tc := "${THISDIR}/files/tc:"
>  
>  SRC_URI:remove = " \
> @@ -12,11 +15,8 @@ SRC_URI:remove = " \
>  
>  SRC_URI:append = " \
>          file://0001-feat-emulate-cntp-timer-register-accesses-using-cnth.patch \
> -        file://0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch \
> -        file://0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch \
> -        file://0004-feat-emulate-interrupt-controller-register-access.patch \
> -        file://0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch \
> -        file://0006-tc-increase-heap-pages.patch \
> +        file://0002-feat-emulate-interrupt-controller-register-access.patch \
> +        file://0003-tc-increase-heap-pages.patch \
>          "
>  
>  do_compile() {
> diff --git a/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch b/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
> index bc031956..cccf28a1 100644
> --- a/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
> +++ b/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
> @@ -4,17 +4,17 @@ Upstream-Status: Inappropriate
>  Signed-off-by: Ross Burton <ross.burton@arm.com>
>  
>  diff --git a/scripts/Makefile b/scripts/Makefile
> -index b4b7d8b58..26a5160ee 100644
> +index 9adb6d247..5fe371c7d 100644
>  --- a/third_party/linux/scripts/Makefile
>  +++ b/third_party/linux/scripts/Makefile
> -@@ -10,8 +10,8 @@
> -
> - HOST_EXTRACFLAGS += -I$(srctree)/tools/include
> -
> +@@ -3,8 +3,8 @@
> + # scripts contains sources for various helper programs used throughout
> + # the kernel for the build process.
> + 
>  -CRYPTO_LIBS = $(shell pkg-config --libs libcrypto 2> /dev/null || echo -lcrypto)
>  -CRYPTO_CFLAGS = $(shell pkg-config --cflags libcrypto 2> /dev/null)
>  +CRYPTO_LIBS = $(shell pkg-config-native --libs libcrypto 2> /dev/null || echo -lcrypto)
>  +CRYPTO_CFLAGS = $(shell pkg-config-native --cflags libcrypto 2> /dev/null)
> -
> - hostprogs-$(CONFIG_BUILD_BIN2C)  += bin2c
> - hostprogs-$(CONFIG_KALLSYMS)     += kallsyms
> + 
> + hostprogs-always-$(CONFIG_BUILD_BIN2C)			+= bin2c
> + hostprogs-always-$(CONFIG_KALLSYMS)			+= kallsyms
> -- 
> 2.34.1
> 
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium
  2022-09-09 19:53   ` [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium Jon Mason
@ 2022-09-20 14:36     ` Jon Mason
  0 siblings, 0 replies; 6+ messages in thread
From: Jon Mason @ 2022-09-20 14:36 UTC (permalink / raw)
  To: Davidson K; +Cc: meta-arm

On Fri, Sep 09, 2022 at 03:53:35PM -0400, Jon Mason wrote:
> On Fri, Sep 09, 2022 at 12:29:26PM +0530, Davidson K wrote:
> > Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
> > Change-Id: I7ccc2ab23955291bcf7d87384ba1ac94c1568443
> 
> I'm seeing issues with hafium not building.  See
> https://gitlab.com/jonmason00/meta-arm/-/jobs/3005738154
> 
> Thanks,
> Jon

The issue appears to be with my system.  It is working now.

> 
> 
> > ---
> >  ...nterrupt-controller-register-access.patch} |   0
> >  ..._INTERRUPT-to-signal-an-interrupted-.patch | 152 ---------
> >  ..._SECONDARY_EP_REGISTER_64-to-list-of.patch |  28 --
> >  ...atch => 0003-tc-increase-heap-pages.patch} |   0
> >  ...check-receiver-s-attributes-on-memor.patch | 318 ------------------
> >  .../recipes-bsp/hafnium/hafnium-tc.inc        |  12 +-
> >  .../hafnium/hafnium/pkg-config-native.patch   |  16 +-
> >  7 files changed, 14 insertions(+), 512 deletions(-)
> >  rename meta-arm-bsp/recipes-bsp/hafnium/files/tc/{0004-feat-emulate-interrupt-controller-register-access.patch => 0002-feat-emulate-interrupt-controller-register-access.patch} (100%)
> >  delete mode 100644 meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch
> >  delete mode 100644 meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch
> >  rename meta-arm-bsp/recipes-bsp/hafnium/files/tc/{0006-tc-increase-heap-pages.patch => 0003-tc-increase-heap-pages.patch} (100%)
> >  delete mode 100644 meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch
> > 
> > diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0004-feat-emulate-interrupt-controller-register-access.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-feat-emulate-interrupt-controller-register-access.patch
> > similarity index 100%
> > rename from meta-arm-bsp/recipes-bsp/hafnium/files/tc/0004-feat-emulate-interrupt-controller-register-access.patch
> > rename to meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-feat-emulate-interrupt-controller-register-access.patch
> > diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch
> > deleted file mode 100644
> > index 2b57b239..00000000
> > --- a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch
> > +++ /dev/null
> > @@ -1,152 +0,0 @@
> > -From e6bcc390749f0560b3bc92507ecbaaabc7145200 Mon Sep 17 00:00:00 2001
> > -From: Lucian Paul-Trifu <lucian.paul-trifu@arm.com>
> > -Date: Wed, 10 Mar 2021 11:31:02 +0000
> > -Subject: [PATCH 2/5] fix(ff-a): Use FFA_INTERRUPT to signal an interrupted
> > - FFA_MSG_WAIT
> > -
> > -Rather than FFA_ERROR(INTERRUPTED).
> > -
> > -Change-Id: I6b23a442714852b6183e0e46af6f0504ec0ee8f4
> > -Signed-off-by: Ben Horgan <ben.horgan@arm.com>
> > -Upstream-Status: Pending [Not submitted to upstream yet]
> > ----
> > - src/api.c                                                  | 2 +-
> > - test/inc/test/vmapi/ffa.h                                  | 7 +++++++
> > - test/vmapi/arch/aarch64/gicv3/services/common.c            | 3 +--
> > - test/vmapi/arch/aarch64/gicv3/services/timer.c             | 2 +-
> > - test/vmapi/el0_partitions/services/interruptible.c         | 3 +--
> > - test/vmapi/el0_partitions/services/interruptible_echo.c    | 3 +--
> > - test/vmapi/el0_partitions/services/receive_block.c         | 2 +-
> > - .../primary_with_secondaries/services/interruptible.c      | 3 +--
> > - .../primary_with_secondaries/services/receive_block.c      | 2 +-
> > - 9 files changed, 15 insertions(+), 12 deletions(-)
> > -
> > -diff --git a/src/api.c b/src/api.c
> > -index b713b7c..00c4d44 100644
> > ---- a/src/api.c
> > -+++ b/src/api.c
> > -@@ -1588,7 +1588,7 @@ struct ffa_value api_ffa_msg_recv(bool block, struct vcpu *current,
> > - 	 * received. If a message is received the return value will be set at
> > - 	 * that time to FFA_SUCCESS.
> > - 	 */
> > --	return_code = ffa_error(FFA_INTERRUPTED);
> > -+	return_code = (struct ffa_value){.func = FFA_INTERRUPT_32};
> > - 	if (api_ffa_msg_recv_block_interrupted(current)) {
> > - 		goto out;
> > - 	}
> > -diff --git a/test/inc/test/vmapi/ffa.h b/test/inc/test/vmapi/ffa.h
> > -index 8fc1223..f0f3e75 100644
> > ---- a/test/inc/test/vmapi/ffa.h
> > -+++ b/test/inc/test/vmapi/ffa.h
> > -@@ -24,6 +24,13 @@
> > - 		EXPECT_EQ(ffa_error_code(v), (ffa_error)); \
> > - 	} while (0)
> > - 
> > -+#define EXPECT_FFA_INTERRUPT(value)                        \
> > -+	do {                                               \
> > -+		struct ffa_value v = (value);              \
> > -+		EXPECT_EQ(v.func, FFA_INTERRUPT_32);       \
> > -+	} while (0)
> > -+
> > -+
> > - /*
> > -  * The bit 15 of the FF-A ID indicates whether the partition is executing
> > -  * in the normal world, in case it is a Virtual Machine (VM); or in the
> > -diff --git a/test/vmapi/arch/aarch64/gicv3/services/common.c b/test/vmapi/arch/aarch64/gicv3/services/common.c
> > -index 06df28d..4ada9e2 100644
> > ---- a/test/vmapi/arch/aarch64/gicv3/services/common.c
> > -+++ b/test/vmapi/arch/aarch64/gicv3/services/common.c
> > -@@ -22,8 +22,7 @@ struct ffa_value mailbox_receive_retry(void)
> > - 
> > - 	do {
> > - 		received = ffa_msg_wait();
> > --	} while (received.func == FFA_ERROR_32 &&
> > --		 received.arg2 == FFA_INTERRUPTED);
> > -+	} while (received.func == FFA_INTERRUPT_32);
> > - 
> > - 	return received;
> > - }
> > -diff --git a/test/vmapi/arch/aarch64/gicv3/services/timer.c b/test/vmapi/arch/aarch64/gicv3/services/timer.c
> > -index 156f160..d5d2816 100644
> > ---- a/test/vmapi/arch/aarch64/gicv3/services/timer.c
> > -+++ b/test/vmapi/arch/aarch64/gicv3/services/timer.c
> > -@@ -104,7 +104,7 @@ TEST_SERVICE(timer)
> > - 		} else if (receive) {
> > - 			struct ffa_value res = ffa_msg_wait();
> > - 
> > --			EXPECT_FFA_ERROR(res, FFA_INTERRUPTED);
> > -+			EXPECT_FFA_INTERRUPT(res);
> > - 		} else {
> > - 			/* Busy wait until the timer fires. */
> > - 			while (!timer_fired) {
> > -diff --git a/test/vmapi/el0_partitions/services/interruptible.c b/test/vmapi/el0_partitions/services/interruptible.c
> > -index 0d00b16..4c9f099 100644
> > ---- a/test/vmapi/el0_partitions/services/interruptible.c
> > -+++ b/test/vmapi/el0_partitions/services/interruptible.c
> > -@@ -50,8 +50,7 @@ static struct ffa_value mailbox_receive_retry()
> > - 	do {
> > - 		irq();
> > - 		received = ffa_msg_wait();
> > --	} while (received.func == FFA_ERROR_32 &&
> > --		 ffa_error_code(received) == FFA_INTERRUPTED);
> > -+	} while (received.func == FFA_INTERRUPT_32);
> > - 
> > - 	return received;
> > - }
> > -diff --git a/test/vmapi/el0_partitions/services/interruptible_echo.c b/test/vmapi/el0_partitions/services/interruptible_echo.c
> > -index b618cf2..a857783 100644
> > ---- a/test/vmapi/el0_partitions/services/interruptible_echo.c
> > -+++ b/test/vmapi/el0_partitions/services/interruptible_echo.c
> > -@@ -39,8 +39,7 @@ static struct ffa_value mailbox_receive_retry()
> > - 	do {
> > - 		irq();
> > - 		received = ffa_msg_wait();
> > --	} while (received.func == FFA_ERROR_32 &&
> > --		 received.arg2 == FFA_INTERRUPTED);
> > -+	} while (received.func == FFA_INTERRUPT_32);
> > - 
> > - 	return received;
> > - }
> > -diff --git a/test/vmapi/el0_partitions/services/receive_block.c b/test/vmapi/el0_partitions/services/receive_block.c
> > -index 05a22f3..60da28b 100644
> > ---- a/test/vmapi/el0_partitions/services/receive_block.c
> > -+++ b/test/vmapi/el0_partitions/services/receive_block.c
> > -@@ -27,7 +27,7 @@ TEST_SERVICE(receive_block)
> > - 
> > - 	for (i = 0; i < 10; ++i) {
> > - 		struct ffa_value res = ffa_msg_wait();
> > --		EXPECT_FFA_ERROR(res, FFA_INTERRUPTED);
> > -+		EXPECT_FFA_INTERRUPT(res);
> > - 	}
> > - 
> > - 	memcpy_s(SERVICE_SEND_BUFFER(), FFA_MSG_PAYLOAD_MAX, message,
> > -diff --git a/test/vmapi/primary_with_secondaries/services/interruptible.c b/test/vmapi/primary_with_secondaries/services/interruptible.c
> > -index cc1c1f9..005d1ff 100644
> > ---- a/test/vmapi/primary_with_secondaries/services/interruptible.c
> > -+++ b/test/vmapi/primary_with_secondaries/services/interruptible.c
> > -@@ -46,8 +46,7 @@ struct ffa_value mailbox_receive_retry()
> > - 
> > - 	do {
> > - 		received = ffa_msg_wait();
> > --	} while (received.func == FFA_ERROR_32 &&
> > --		 ffa_error_code(received) == FFA_INTERRUPTED);
> > -+	} while (received.func == FFA_INTERRUPT_32);
> > - 
> > - 	return received;
> > - }
> > -diff --git a/test/vmapi/primary_with_secondaries/services/receive_block.c b/test/vmapi/primary_with_secondaries/services/receive_block.c
> > -index edb4e3c..a6805ae 100644
> > ---- a/test/vmapi/primary_with_secondaries/services/receive_block.c
> > -+++ b/test/vmapi/primary_with_secondaries/services/receive_block.c
> > -@@ -40,7 +40,7 @@ TEST_SERVICE(receive_block)
> > - 
> > - 	for (i = 0; i < 10; ++i) {
> > - 		struct ffa_value res = ffa_msg_wait();
> > --		EXPECT_FFA_ERROR(res, FFA_INTERRUPTED);
> > -+		EXPECT_FFA_INTERRUPT(res);
> > - 	}
> > - 
> > - 	memcpy_s(SERVICE_SEND_BUFFER(), FFA_MSG_PAYLOAD_MAX, message,
> > --- 
> > -2.17.1
> > -
> > diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch
> > deleted file mode 100644
> > index 8d2cc139..00000000
> > --- a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch
> > +++ /dev/null
> > @@ -1,28 +0,0 @@
> > -From a6f466c2594b2f56d34fee72494fbd29ea9c7d21 Mon Sep 17 00:00:00 2001
> > -From: Ben Horgan <ben.horgan@arm.com>
> > -Date: Tue, 26 Apr 2022 12:59:42 +0000
> > -Subject: [PATCH 3/5] fix(ff-a): Add FFA_SECONDARY_EP_REGISTER_64 to list of
> > - features
> > -
> > -Signed-off-by: Ben Horgan <ben.horgan@arm.com>
> > -Change-Id: Ic1344eb2c982c195210dc2c86aa6845f3e037077
> > -Upstream-Status: Pending [Not submitted to upstream yet]
> > ----
> > - src/api.c | 1 +
> > - 1 file changed, 1 insertion(+)
> > -
> > -diff --git a/src/api.c b/src/api.c
> > -index 00c4d44..33a9b42 100644
> > ---- a/src/api.c
> > -+++ b/src/api.c
> > -@@ -2021,6 +2021,7 @@ struct ffa_value api_ffa_features(uint32_t feature_function_id)
> > - 	case FFA_MEM_PERM_SET_32:
> > - 	case FFA_MEM_PERM_GET_64:
> > - 	case FFA_MEM_PERM_SET_64:
> > -+	case FFA_SECONDARY_EP_REGISTER_64:
> > - #endif
> > - 		return (struct ffa_value){.func = FFA_SUCCESS_32};
> > - 
> > --- 
> > -2.17.1
> > -
> > diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0006-tc-increase-heap-pages.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-tc-increase-heap-pages.patch
> > similarity index 100%
> > rename from meta-arm-bsp/recipes-bsp/hafnium/files/tc/0006-tc-increase-heap-pages.patch
> > rename to meta-arm-bsp/recipes-bsp/hafnium/files/tc/0003-tc-increase-heap-pages.patch
> > diff --git a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch b/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch
> > deleted file mode 100644
> > index e5f9489e..00000000
> > --- a/meta-arm-bsp/recipes-bsp/hafnium/files/tc/0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch
> > +++ /dev/null
> > @@ -1,318 +0,0 @@
> > -From 64d5628c8439e4649e9c1da9b9e02ebd5c7fb8cf Mon Sep 17 00:00:00 2001
> > -From: Ben Horgan <ben.horgan@arm.com>
> > -Date: Thu, 28 Apr 2022 15:53:31 +0000
> > -Subject: [PATCH 5/5] Revert "fix(ff-a): check receiver's attributes on memory
> > - retrieve"
> > -
> > -This reverts commit a98603aa965e3ff3ca5383249213e2fd1a96d850.
> > -
> > -Change-Id: Ia71ce3ac52e9b2e85578372c24eb8d593b62435f
> > -Signed-off-by: Ben Horgan <ben.horgan@arm.com>
> > ----
> > - src/ffa_memory.c                              | 76 ++++++-----------
> > - test/vmapi/el0_partitions/memory_sharing.c    | 81 -------------------
> > - .../primary_with_secondaries/memory_sharing.c | 81 -------------------
> > - 3 files changed, 25 insertions(+), 213 deletions(-)
> > -
> > -diff --git a/src/ffa_memory.c b/src/ffa_memory.c
> > -index ab47929..2fcc386 100644
> > ---- a/src/ffa_memory.c
> > -+++ b/src/ffa_memory.c
> > -@@ -1344,42 +1344,6 @@ static struct ffa_value ffa_memory_send_complete(
> > - 	return ffa_mem_success(share_state->memory_region->handle);
> > - }
> > - 
> > --/**
> > -- * Check that the memory attributes match Hafnium expectations:
> > -- * Normal Memory, Inner shareable, Write-Back Read-Allocate
> > -- * Write-Allocate Cacheable.
> > -- */
> > --static struct ffa_value ffa_memory_attributes_validate(
> > --	ffa_memory_access_permissions_t attributes)
> > --{
> > --	enum ffa_memory_type memory_type;
> > --	enum ffa_memory_cacheability cacheability;
> > --	enum ffa_memory_shareability shareability;
> > --
> > --	memory_type = ffa_get_memory_type_attr(attributes);
> > --	if (memory_type != FFA_MEMORY_NORMAL_MEM) {
> > --		dlog_verbose("Invalid memory type %#x, expected %#x.\n",
> > --			     memory_type, FFA_MEMORY_NORMAL_MEM);
> > --		return ffa_error(FFA_DENIED);
> > --	}
> > --
> > --	cacheability = ffa_get_memory_cacheability_attr(attributes);
> > --	if (cacheability != FFA_MEMORY_CACHE_WRITE_BACK) {
> > --		dlog_verbose("Invalid cacheability %#x, expected %#x.\n",
> > --			     cacheability, FFA_MEMORY_CACHE_WRITE_BACK);
> > --		return ffa_error(FFA_DENIED);
> > --	}
> > --
> > --	shareability = ffa_get_memory_shareability_attr(attributes);
> > --	if (shareability != FFA_MEMORY_INNER_SHAREABLE) {
> > --		dlog_verbose("Invalid shareability %#x, expected #%x.\n",
> > --			     shareability, FFA_MEMORY_INNER_SHAREABLE);
> > --		return ffa_error(FFA_DENIED);
> > --	}
> > --
> > --	return (struct ffa_value){.func = FFA_SUCCESS_32};
> > --}
> > --
> > - /**
> > -  * Check that the given `memory_region` represents a valid memory send request
> > -  * of the given `share_func` type, return the clear flag and permissions via the
> > -@@ -1400,7 +1364,10 @@ static struct ffa_value ffa_memory_send_validate(
> > - 	uint32_t constituents_length;
> > - 	enum ffa_data_access data_access;
> > - 	enum ffa_instruction_access instruction_access;
> > --	struct ffa_value ret;
> > -+	ffa_memory_access_permissions_t attributes;
> > -+	enum ffa_memory_type memory_type;
> > -+	enum ffa_memory_cacheability memory_cacheability;
> > -+	enum ffa_memory_shareability memory_shareability;
> > - 
> > - 	assert(permissions != NULL);
> > - 
> > -@@ -1536,9 +1503,26 @@ static struct ffa_value ffa_memory_send_validate(
> > - 	 * Normal Memory, Inner shareable, Write-Back Read-Allocate
> > - 	 * Write-Allocate Cacheable.
> > - 	 */
> > --	ret = ffa_memory_attributes_validate(memory_region->attributes);
> > --	if (ret.func != FFA_SUCCESS_32) {
> > --		return ret;
> > -+	attributes = memory_region->attributes;
> > -+	memory_type = ffa_get_memory_type_attr(attributes);
> > -+	if (memory_type != FFA_MEMORY_NORMAL_MEM) {
> > -+		dlog_verbose("Invalid memory type %#x, expected %#x.\n",
> > -+			     memory_type, FFA_MEMORY_NORMAL_MEM);
> > -+		return ffa_error(FFA_INVALID_PARAMETERS);
> > -+	}
> > -+
> > -+	memory_cacheability = ffa_get_memory_cacheability_attr(attributes);
> > -+	if (memory_cacheability != FFA_MEMORY_CACHE_WRITE_BACK) {
> > -+		dlog_verbose("Invalid cacheability %#x, expected %#x.\n",
> > -+			     memory_cacheability, FFA_MEMORY_CACHE_WRITE_BACK);
> > -+		return ffa_error(FFA_INVALID_PARAMETERS);
> > -+	}
> > -+
> > -+	memory_shareability = ffa_get_memory_shareability_attr(attributes);
> > -+	if (memory_shareability != FFA_MEMORY_INNER_SHAREABLE) {
> > -+		dlog_verbose("Invalid shareability %#x, expected %#x.\n",
> > -+			     memory_shareability, FFA_MEMORY_INNER_SHAREABLE);
> > -+		return ffa_error(FFA_INVALID_PARAMETERS);
> > - 	}
> > - 
> > - 	return (struct ffa_value){.func = FFA_SUCCESS_32};
> > -@@ -2376,6 +2360,7 @@ struct ffa_value ffa_memory_retrieve(struct vm_locked to_locked,
> > - 	 * Check permissions from sender against permissions requested by
> > - 	 * receiver.
> > - 	 */
> > -+	/* TODO: Check attributes too. */
> > - 	sent_permissions =
> > - 		memory_region->receivers[0].receiver_permissions.permissions;
> > - 	sent_data_access = ffa_get_data_access_attr(sent_permissions);
> > -@@ -2453,17 +2438,6 @@ struct ffa_value ffa_memory_retrieve(struct vm_locked to_locked,
> > - 		panic("Got unexpected FFA_INSTRUCTION_ACCESS_RESERVED. Should "
> > - 		      "be checked before this point.");
> > - 	}
> > --
> > --	/*
> > --	 * Ensure receiver's attributes are compatible with how Hafnium maps
> > --	 * memory: Normal Memory, Inner shareable, Write-Back Read-Allocate
> > --	 * Write-Allocate Cacheable.
> > --	 */
> > --	ret = ffa_memory_attributes_validate(retrieve_request->attributes);
> > --	if (ret.func != FFA_SUCCESS_32) {
> > --		goto out;
> > --	}
> > --
> > - 	memory_to_attributes = ffa_memory_permissions_to_mode(
> > - 		permissions, share_state->sender_orig_mode);
> > - 	ret = ffa_retrieve_check_update(
> > -diff --git a/test/vmapi/el0_partitions/memory_sharing.c b/test/vmapi/el0_partitions/memory_sharing.c
> > -index 3756d7d..c29f029 100644
> > ---- a/test/vmapi/el0_partitions/memory_sharing.c
> > -+++ b/test/vmapi/el0_partitions/memory_sharing.c
> > -@@ -2160,87 +2160,6 @@ TEST(memory_sharing, ffa_validate_retrieve_req_mbz)
> > - 	}
> > - }
> > - 
> > --/**
> > -- * Memory can't be shared with arbitrary attributes because Hafnium maps pages
> > -- * with hardcoded values and doesn't support custom mappings.
> > -- */
> > --TEST(memory_sharing, ffa_validate_retrieve_req_attributes)
> > --{
> > --	struct ffa_value ret;
> > --	struct mailbox_buffers mb = set_up_mailbox();
> > --	uint32_t msg_size;
> > --	ffa_memory_handle_t handle;
> > --
> > --	struct ffa_value (*send_function[])(uint32_t, uint32_t) = {
> > --		ffa_mem_share,
> > --		ffa_mem_lend,
> > --	};
> > --
> > --	struct ffa_memory_region_constituent constituents[] = {
> > --		{.address = (uint64_t)pages, .page_count = 2},
> > --		{.address = (uint64_t)pages + PAGE_SIZE * 3, .page_count = 1},
> > --	};
> > --
> > --	SERVICE_SELECT(SERVICE_VM1, "ffa_memory_share_fail", mb.send);
> > --
> > --	struct {
> > --		enum ffa_memory_type memory_type;
> > --		enum ffa_memory_cacheability memory_cacheability;
> > --		enum ffa_memory_shareability memory_shareability;
> > --	} invalid_attributes[] = {
> > --		/* Invalid memory type */
> > --		{FFA_MEMORY_DEVICE_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> > --		 FFA_MEMORY_INNER_SHAREABLE},
> > --		/* Invalid cacheability */
> > --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_NON_CACHEABLE,
> > --		 FFA_MEMORY_INNER_SHAREABLE},
> > --		/* Invalid shareability */
> > --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> > --		 FFA_MEMORY_SHARE_NON_SHAREABLE},
> > --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> > --		 FFA_MEMORY_OUTER_SHAREABLE}};
> > --
> > --	for (uint32_t i = 0; i < ARRAY_SIZE(send_function); i++) {
> > --		/* Prepare memory region, and set all flags */
> > --		EXPECT_EQ(ffa_memory_region_init(
> > --				  mb.send, HF_MAILBOX_SIZE, HF_PRIMARY_VM_ID,
> > --				  SERVICE_VM1, constituents,
> > --				  ARRAY_SIZE(constituents), 0, 0,
> > --				  FFA_DATA_ACCESS_RW,
> > --				  FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
> > --				  FFA_MEMORY_NORMAL_MEM,
> > --				  FFA_MEMORY_CACHE_WRITE_BACK,
> > --				  FFA_MEMORY_INNER_SHAREABLE, NULL, &msg_size),
> > --			  0);
> > --
> > --		ret = send_function[i](msg_size, msg_size);
> > --		EXPECT_EQ(ret.func, FFA_SUCCESS_32);
> > --
> > --		handle = ffa_mem_success_handle(ret);
> > --
> > --		for (uint32_t j = 0; j < ARRAY_SIZE(invalid_attributes); ++j) {
> > --			msg_size = ffa_memory_retrieve_request_init(
> > --				mb.send, handle, HF_PRIMARY_VM_ID, SERVICE_VM1,
> > --				0, 0, FFA_DATA_ACCESS_RW,
> > --				FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
> > --				invalid_attributes[j].memory_type,
> > --				invalid_attributes[j].memory_cacheability,
> > --				invalid_attributes[j].memory_shareability);
> > --
> > --			EXPECT_LE(msg_size, HF_MAILBOX_SIZE);
> > --
> > --			EXPECT_EQ(ffa_msg_send(HF_PRIMARY_VM_ID, SERVICE_VM1,
> > --					       msg_size, 0)
> > --					  .func,
> > --				  FFA_SUCCESS_32);
> > --
> > --			ffa_run(SERVICE_VM1, 0);
> > --		}
> > --
> > --		EXPECT_EQ(ffa_mem_reclaim(handle, 0).func, FFA_SUCCESS_32);
> > --	}
> > --}
> > --
> > - /**
> > -  * If memory is shared can't request zeroing of memory at both send and
> > -  * relinquish.
> > -diff --git a/test/vmapi/primary_with_secondaries/memory_sharing.c b/test/vmapi/primary_with_secondaries/memory_sharing.c
> > -index 6080709..4bcf252 100644
> > ---- a/test/vmapi/primary_with_secondaries/memory_sharing.c
> > -+++ b/test/vmapi/primary_with_secondaries/memory_sharing.c
> > -@@ -2307,87 +2307,6 @@ TEST(memory_sharing, ffa_validate_retrieve_req_mbz)
> > - 	}
> > - }
> > - 
> > --/**
> > -- * Memory can't be shared with arbitrary attributes because Hafnium maps pages
> > -- * with hardcoded values and doesn't support custom mappings.
> > -- */
> > --TEST(memory_sharing, ffa_validate_retrieve_req_attributes)
> > --{
> > --	struct ffa_value ret;
> > --	struct mailbox_buffers mb = set_up_mailbox();
> > --	uint32_t msg_size;
> > --	ffa_memory_handle_t handle;
> > --
> > --	struct ffa_value (*send_function[])(uint32_t, uint32_t) = {
> > --		ffa_mem_share,
> > --		ffa_mem_lend,
> > --	};
> > --
> > --	struct ffa_memory_region_constituent constituents[] = {
> > --		{.address = (uint64_t)pages, .page_count = 2},
> > --		{.address = (uint64_t)pages + PAGE_SIZE * 3, .page_count = 1},
> > --	};
> > --
> > --	SERVICE_SELECT(SERVICE_VM1, "ffa_memory_share_fail_denied", mb.send);
> > --
> > --	struct {
> > --		enum ffa_memory_type memory_type;
> > --		enum ffa_memory_cacheability memory_cacheability;
> > --		enum ffa_memory_shareability memory_shareability;
> > --	} invalid_attributes[] = {
> > --		/* Invalid memory type */
> > --		{FFA_MEMORY_DEVICE_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> > --		 FFA_MEMORY_INNER_SHAREABLE},
> > --		/* Invalid cacheability */
> > --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_NON_CACHEABLE,
> > --		 FFA_MEMORY_INNER_SHAREABLE},
> > --		/* Invalid shareability */
> > --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> > --		 FFA_MEMORY_SHARE_NON_SHAREABLE},
> > --		{FFA_MEMORY_NORMAL_MEM, FFA_MEMORY_CACHE_WRITE_BACK,
> > --		 FFA_MEMORY_OUTER_SHAREABLE}};
> > --
> > --	for (uint32_t i = 0; i < ARRAY_SIZE(send_function); i++) {
> > --		/* Prepare memory region, and set all flags */
> > --		EXPECT_EQ(ffa_memory_region_init(
> > --				  mb.send, HF_MAILBOX_SIZE, HF_PRIMARY_VM_ID,
> > --				  SERVICE_VM1, constituents,
> > --				  ARRAY_SIZE(constituents), 0, 0,
> > --				  FFA_DATA_ACCESS_RW,
> > --				  FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
> > --				  FFA_MEMORY_NORMAL_MEM,
> > --				  FFA_MEMORY_CACHE_WRITE_BACK,
> > --				  FFA_MEMORY_INNER_SHAREABLE, NULL, &msg_size),
> > --			  0);
> > --
> > --		ret = send_function[i](msg_size, msg_size);
> > --		EXPECT_EQ(ret.func, FFA_SUCCESS_32);
> > --
> > --		handle = ffa_mem_success_handle(ret);
> > --
> > --		for (uint32_t j = 0; j < ARRAY_SIZE(invalid_attributes); ++j) {
> > --			msg_size = ffa_memory_retrieve_request_init(
> > --				mb.send, handle, HF_PRIMARY_VM_ID, SERVICE_VM1,
> > --				0, 0, FFA_DATA_ACCESS_RW,
> > --				FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED,
> > --				invalid_attributes[j].memory_type,
> > --				invalid_attributes[j].memory_cacheability,
> > --				invalid_attributes[j].memory_shareability);
> > --
> > --			EXPECT_LE(msg_size, HF_MAILBOX_SIZE);
> > --
> > --			EXPECT_EQ(ffa_msg_send(HF_PRIMARY_VM_ID, SERVICE_VM1,
> > --					       msg_size, 0)
> > --					  .func,
> > --				  FFA_SUCCESS_32);
> > --
> > --			ffa_run(SERVICE_VM1, 0);
> > --		}
> > --
> > --		EXPECT_EQ(ffa_mem_reclaim(handle, 0).func, FFA_SUCCESS_32);
> > --	}
> > --}
> > --
> > - /**
> > -  * If memory is shared can't request zeroing of memory at both send and
> > -  * relinquish.
> > --- 
> > -2.17.1
> > -
> > diff --git a/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc b/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc
> > index c8f77dc6..9da9c117 100644
> > --- a/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc
> > +++ b/meta-arm-bsp/recipes-bsp/hafnium/hafnium-tc.inc
> > @@ -3,7 +3,10 @@
> >  COMPATIBLE_MACHINE = "(tc?)"
> >  HAFNIUM_PLATFORM = "secure_tc"
> >  
> > -SRCREV = "4eb7b54348234d7f4bbac64bac28f683d6574ba9"
> > +# Intermediate SHA with 2.7 baseline version
> > +SRCREV = "dd0561820946fe23bcd57cc129140437f72102a5"
> > +PV = "2.7+git${SRCPV}"
> > +
> >  FILESEXTRAPATHS:prepend:tc := "${THISDIR}/files/tc:"
> >  
> >  SRC_URI:remove = " \
> > @@ -12,11 +15,8 @@ SRC_URI:remove = " \
> >  
> >  SRC_URI:append = " \
> >          file://0001-feat-emulate-cntp-timer-register-accesses-using-cnth.patch \
> > -        file://0002-fix-ff-a-Use-FFA_INTERRUPT-to-signal-an-interrupted-.patch \
> > -        file://0003-fix-ff-a-Add-FFA_SECONDARY_EP_REGISTER_64-to-list-of.patch \
> > -        file://0004-feat-emulate-interrupt-controller-register-access.patch \
> > -        file://0005-Revert-fix-ff-a-check-receiver-s-attributes-on-memor.patch \
> > -        file://0006-tc-increase-heap-pages.patch \
> > +        file://0002-feat-emulate-interrupt-controller-register-access.patch \
> > +        file://0003-tc-increase-heap-pages.patch \
> >          "
> >  
> >  do_compile() {
> > diff --git a/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch b/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
> > index bc031956..cccf28a1 100644
> > --- a/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
> > +++ b/meta-arm/recipes-bsp/hafnium/hafnium/pkg-config-native.patch
> > @@ -4,17 +4,17 @@ Upstream-Status: Inappropriate
> >  Signed-off-by: Ross Burton <ross.burton@arm.com>
> >  
> >  diff --git a/scripts/Makefile b/scripts/Makefile
> > -index b4b7d8b58..26a5160ee 100644
> > +index 9adb6d247..5fe371c7d 100644
> >  --- a/third_party/linux/scripts/Makefile
> >  +++ b/third_party/linux/scripts/Makefile
> > -@@ -10,8 +10,8 @@
> > -
> > - HOST_EXTRACFLAGS += -I$(srctree)/tools/include
> > -
> > +@@ -3,8 +3,8 @@
> > + # scripts contains sources for various helper programs used throughout
> > + # the kernel for the build process.
> > + 
> >  -CRYPTO_LIBS = $(shell pkg-config --libs libcrypto 2> /dev/null || echo -lcrypto)
> >  -CRYPTO_CFLAGS = $(shell pkg-config --cflags libcrypto 2> /dev/null)
> >  +CRYPTO_LIBS = $(shell pkg-config-native --libs libcrypto 2> /dev/null || echo -lcrypto)
> >  +CRYPTO_CFLAGS = $(shell pkg-config-native --cflags libcrypto 2> /dev/null)
> > -
> > - hostprogs-$(CONFIG_BUILD_BIN2C)  += bin2c
> > - hostprogs-$(CONFIG_KALLSYMS)     += kallsyms
> > + 
> > + hostprogs-always-$(CONFIG_BUILD_BIN2C)			+= bin2c
> > + hostprogs-always-$(CONFIG_KALLSYMS)			+= kallsyms
> > -- 
> > 2.34.1
> > 
> > 
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/3] arm-bsp/tc: upgrade version of trusted-firmware-a
  2022-09-09  6:59 [PATCH 1/3] arm-bsp/tc: upgrade version of trusted-firmware-a Davidson K
  2022-09-09  6:59 ` [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium Davidson K
@ 2022-09-20 22:36 ` Jon Mason
  1 sibling, 0 replies; 6+ messages in thread
From: Jon Mason @ 2022-09-20 22:36 UTC (permalink / raw)
  To: meta-arm, Davidson K

On Fri, 9 Sep 2022 12:29:25 +0530, Davidson K wrote:
> 


Applied, thanks!

[1/3] arm-bsp/tc: upgrade version of trusted-firmware-a
      commit: 18e68367e058254e41e51911471eb0706aae0746
[2/3] arm-bsp/tc: upgrade version of hafnium
      commit: 3b48207cc760962b377ee332eda287383d06a55a
[3/3] arm-bsp/tc: upgrade version of optee
      commit: a9a53e258a025bd340044951a9b6beea9f2d9219

Best regards,
-- 
Jon Mason <jon.mason@arm.com>


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-09-20 22:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-09  6:59 [PATCH 1/3] arm-bsp/tc: upgrade version of trusted-firmware-a Davidson K
2022-09-09  6:59 ` [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium Davidson K
2022-09-09  6:59   ` [PATCH 3/3] arm-bsp/tc: upgrade version of optee Davidson K
2022-09-09 19:53   ` [PATCH 2/3] arm-bsp/tc: upgrade version of hafnium Jon Mason
2022-09-20 14:36     ` Jon Mason
2022-09-20 22:36 ` [PATCH 1/3] arm-bsp/tc: upgrade version of trusted-firmware-a Jon Mason

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.