diff mbox series

[1/3] arm-bsp/optee-os: corstone-1000: upgrade to 4.6.0

Message ID 20250618081047.34990-2-clement.faure@arm.com
State New
Headers show
Series corstone1000: Upgrade OP-TEE to 4.6.0 | expand

Commit Message

Clement Faure June 18, 2025, 8:10 a.m. UTC
Add recipes for OP-TEE v4.6.0
Upgrade Corstone-1000 OP-TEE revision from 4.4.0 to 4.6.0
Add patch to fix compilation issue with musl and optee-test 4.6.0.

Signed-off-by: Clement Faure <clement.faure@arm.com>
---
 .../conf/machine/include/corstone1000.inc     |  4 +-
 .../0001-Handle-logging-syscall.patch         | 32 ------------
 ...rstone1000-increase-CFG_TZDRAM_SIZE.patch} |  0
 .../optee/optee-os-corstone1000-common.inc    |  3 +-
 .../optee/optee-client_4.6.0.bb               |  9 ++++
 .../optee/optee-examples_4.6.0.bb             |  4 ++
 .../optee/optee-os-tadevkit_4.6.0.bb          | 29 +++++++++++
 .../recipes-security/optee/optee-os_4.6.0.bb  | 11 ++++
 ...Re-order-the-include-of-sys-stat.h-h.patch | 51 +++++++++++++++++++
 .../optee/optee-test_4.6.0.bb                 | 19 +++++++
 10 files changed, 126 insertions(+), 36 deletions(-)
 delete mode 100644 meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-Handle-logging-syscall.patch
 rename meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/{0002-plat-corstone1000-increase-CFG_TZDRAM_SIZE.patch => 0001-plat-corstone1000-increase-CFG_TZDRAM_SIZE.patch} (100%)
 create mode 100644 meta-arm/recipes-security/optee/optee-client_4.6.0.bb
 create mode 100644 meta-arm/recipes-security/optee/optee-examples_4.6.0.bb
 create mode 100644 meta-arm/recipes-security/optee/optee-os-tadevkit_4.6.0.bb
 create mode 100644 meta-arm/recipes-security/optee/optee-os_4.6.0.bb
 create mode 100644 meta-arm/recipes-security/optee/optee-test/0001-regression_1000-Re-order-the-include-of-sys-stat.h-h.patch
 create mode 100644 meta-arm/recipes-security/optee/optee-test_4.6.0.bb
diff mbox series

Patch

diff --git a/meta-arm-bsp/conf/machine/include/corstone1000.inc b/meta-arm-bsp/conf/machine/include/corstone1000.inc
index bbaeee29..ecaea64d 100644
--- a/meta-arm-bsp/conf/machine/include/corstone1000.inc
+++ b/meta-arm-bsp/conf/machine/include/corstone1000.inc
@@ -14,8 +14,8 @@  TFA_BL2_BINARY = "bl2-corstone1000.bin"
 TFA_FIP_BINARY = "fip-corstone1000.bin"
 
 # optee
-PREFERRED_VERSION_optee-os ?= "4.4.%"
-PREFERRED_VERSION_optee-client ?= "4.4.%"
+PREFERRED_VERSION_optee-os ?= "4.6.%"
+PREFERRED_VERSION_optee-client ?= "4.6.%"
 
 # Trusted Services
 TS_PLATFORM = "arm/corstone1000"
diff --git a/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-Handle-logging-syscall.patch b/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-Handle-logging-syscall.patch
deleted file mode 100644
index 58ba2afd..00000000
--- a/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-Handle-logging-syscall.patch
+++ /dev/null
@@ -1,32 +0,0 @@ 
-From d6ee50f581b43b16733b8731369b071d609d5048 Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Thu, 31 Aug 2023 10:51:54 +0100
-Subject: [PATCH] Handle logging syscall
-
-Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
-Upstream-Status: Pending [upstreamed differently in 280b6a3]
----
- core/arch/arm/kernel/spmc_sp_handler.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/core/arch/arm/kernel/spmc_sp_handler.c b/core/arch/arm/kernel/spmc_sp_handler.c
-index 1f218a0df..0676e8898 100644
---- a/core/arch/arm/kernel/spmc_sp_handler.c
-+++ b/core/arch/arm/kernel/spmc_sp_handler.c
-@@ -1276,7 +1276,12 @@ void spmc_sp_msg_handler(struct thread_smc_args *args,
- 			handle_console_log(args);
- 			sp_enter(args, caller_sp);
- 			break;
--
-+		case 0xdeadbeef:
-+			ts_push_current_session(&caller_sp->ts_sess);
-+			IMSG("%s", (char *)args->a1);
-+			ts_pop_current_session();
-+			sp_enter(args, caller_sp);
-+			break;
- 		default:
- 			EMSG("Unhandled FFA function ID %#"PRIx32,
- 			     (uint32_t)args->a0);
--- 
-2.17.1
-
diff --git a/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0002-plat-corstone1000-increase-CFG_TZDRAM_SIZE.patch b/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-plat-corstone1000-increase-CFG_TZDRAM_SIZE.patch
similarity index 100%
rename from meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0002-plat-corstone1000-increase-CFG_TZDRAM_SIZE.patch
rename to meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0001-plat-corstone1000-increase-CFG_TZDRAM_SIZE.patch
diff --git a/meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc b/meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc
index 3f6452dc..d7fe4c73 100644
--- a/meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc
+++ b/meta-arm-bsp/recipes-security/optee/optee-os-corstone1000-common.inc
@@ -1,7 +1,6 @@ 
 FILESEXTRAPATHS:prepend := "${THISDIR}/files/optee-os/corstone1000:"
 SRC_URI:append = " \
-                  file://0001-Handle-logging-syscall.patch \
-                  file://0002-plat-corstone1000-increase-CFG_TZDRAM_SIZE.patch \
+                  file://0001-plat-corstone1000-increase-CFG_TZDRAM_SIZE.patch \
 		  "
 
 COMPATIBLE_MACHINE = "corstone1000"
diff --git a/meta-arm/recipes-security/optee/optee-client_4.6.0.bb b/meta-arm/recipes-security/optee/optee-client_4.6.0.bb
new file mode 100644
index 00000000..cbd75eb3
--- /dev/null
+++ b/meta-arm/recipes-security/optee/optee-client_4.6.0.bb
@@ -0,0 +1,9 @@ 
+require recipes-security/optee/optee-client.inc
+
+# v4.6.0
+SRCREV = "02e7f9213b0d7db9c35ebf1e41e733fc9c5a3f75"
+SRC_URI += "file://0001-tee-supplicant-update-udev-systemd-install-code.patch"
+
+inherit pkgconfig
+DEPENDS += "util-linux"
+EXTRA_OEMAKE += "PKG_CONFIG=pkg-config"
diff --git a/meta-arm/recipes-security/optee/optee-examples_4.6.0.bb b/meta-arm/recipes-security/optee/optee-examples_4.6.0.bb
new file mode 100644
index 00000000..8ee4ece9
--- /dev/null
+++ b/meta-arm/recipes-security/optee/optee-examples_4.6.0.bb
@@ -0,0 +1,4 @@ 
+require recipes-security/optee/optee-examples.inc
+
+# v4.6.0
+SRCREV = "5306d2c7c618bb4a91df17a2d5d79ae4701af4a3"
diff --git a/meta-arm/recipes-security/optee/optee-os-tadevkit_4.6.0.bb b/meta-arm/recipes-security/optee/optee-os-tadevkit_4.6.0.bb
new file mode 100644
index 00000000..961d5251
--- /dev/null
+++ b/meta-arm/recipes-security/optee/optee-os-tadevkit_4.6.0.bb
@@ -0,0 +1,29 @@ 
+require recipes-security/optee/optee-os_${PV}.bb
+
+SUMMARY = "OP-TEE Trusted OS TA devkit"
+DESCRIPTION = "OP-TEE TA devkit for build TAs"
+HOMEPAGE = "https://www.op-tee.org/"
+
+DEPENDS += "python3-pycryptodome-native"
+
+do_install() {
+    #install TA devkit
+    install -d ${D}${includedir}/optee/export-user_ta/
+    for f in ${B}/export-ta_${OPTEE_ARCH}/* ; do
+        cp -aR $f ${D}${includedir}/optee/export-user_ta/
+    done
+}
+
+do_deploy() {
+	echo "Do not inherit do_deploy from optee-os."
+}
+
+FILES:${PN} = "${includedir}/optee/"
+
+# Build paths are currently embedded
+INSANE_SKIP:${PN}-dev += "buildpaths"
+
+# Include extra headers needed by SPMC tests to TA DEVKIT.
+# Supported after op-tee v3.20
+EXTRA_OEMAKE:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee-spmc-test', \
+                                        ' CFG_SPMC_TESTS=y', '' , d)}"
diff --git a/meta-arm/recipes-security/optee/optee-os_4.6.0.bb b/meta-arm/recipes-security/optee/optee-os_4.6.0.bb
new file mode 100644
index 00000000..c9a6b261
--- /dev/null
+++ b/meta-arm/recipes-security/optee/optee-os_4.6.0.bb
@@ -0,0 +1,11 @@ 
+require recipes-security/optee/optee-os.inc
+
+DEPENDS += "dtc-native"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+# v4.6.0
+SRCREV = "71785645fa6ce42db40dbf5a54e0eaedc4f61591"
+SRC_URI += " \
+    file://0003-optee-enable-clang-support.patch \
+   "
diff --git a/meta-arm/recipes-security/optee/optee-test/0001-regression_1000-Re-order-the-include-of-sys-stat.h-h.patch b/meta-arm/recipes-security/optee/optee-test/0001-regression_1000-Re-order-the-include-of-sys-stat.h-h.patch
new file mode 100644
index 00000000..9bc18baf
--- /dev/null
+++ b/meta-arm/recipes-security/optee/optee-test/0001-regression_1000-Re-order-the-include-of-sys-stat.h-h.patch
@@ -0,0 +1,51 @@ 
+From a15be9eca1b7e935917d834284726027dffc8cfb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Cl=C3=A9ment=20Faure?= <clement.faure@arm.com>
+Date: Wed, 7 May 2025 13:54:36 +0000
+Subject: [PATCH] regression_1000: Re-order the include of <sys/stat.h> header
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+With musl, the compilation of optee-test would fail:
+
+|   GEN     optee-test/4.6.0/optee-test-4.6.0/xtest/regression_8100_ca_crt.h
+| python3 ../../scripts/file_to_c.py --inf ../../cert/ca.crt --out optee-test/4.6.0/optee-test-4.6.0/xtest/regression_8100_ca_crt.h --name regression_8100_ca_crt
+| In file included from optee-test/4.6.0/recipe-sysroot/usr/include/sys/stat.h:30,
+|                  from optee-test/host/xtest/regression_1000.c:24:
+| optee-test/4.6.0/recipe-sysroot/usr/include/bits/stat.h:17:26: error: expected identifier or '(' before '[' token
+|    17 |         unsigned __unused[2];
+|       |                          ^
+
+The defintion of OP-TEE macro __unused conflicts with the musl implementation
+and its use of variables named __unused.
+
+Re-ordering and including <sys/stat.h> before the macro gets defined is
+enough to work around the issue.
+
+Signed-off-by: Clément Faure <clement.faure@arm.com>
+Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
+Upstream-Status: Backport [a15be9eca1b7e935917d834284726027dffc8cfb]
+---
+ host/xtest/regression_1000.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/host/xtest/regression_1000.c b/host/xtest/regression_1000.c
+index e9d20a8..a427789 100644
+--- a/host/xtest/regression_1000.c
++++ b/host/xtest/regression_1000.c
+@@ -20,11 +20,11 @@
+ #ifdef CFG_SECURE_DATA_PATH
+ #include <sdp_basic.h>
+ #endif
++#include <sys/stat.h>
+ #include <signed_hdr.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <sys/stat.h>
+ #include <sys/types.h>
+ #include <ta_arm_bti.h>
+ #include <ta_concurrent.h>
+-- 
+2.43.0
+
diff --git a/meta-arm/recipes-security/optee/optee-test_4.6.0.bb b/meta-arm/recipes-security/optee/optee-test_4.6.0.bb
new file mode 100644
index 00000000..ab4b8ae2
--- /dev/null
+++ b/meta-arm/recipes-security/optee/optee-test_4.6.0.bb
@@ -0,0 +1,19 @@ 
+require recipes-security/optee/optee-test.inc
+
+# v4.6.0
+SRCREV = "a9e9495f4d57b97022008ad11198195e7e044c5d"
+
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a8fa504109e4cd7ea575bc49ea4be560"
+
+SRC_URI += " \
+    file://0001-build-make-cmake-add-Werror-based-on-CFG_WERROR.patch \
+    file://0001-regression_1000-Re-order-the-include-of-sys-stat.h-h.patch \
+"
+
+# Include ffa_spmc test group if the SPMC test is enabled.
+# Supported after op-tee v3.20
+EXTRA_OEMAKE:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee-spmc-test', \
+                                        ' CFG_SPMC_TESTS=y CFG_SECURE_PARTITION=y', '' , d)}"
+
+RDEPENDS:${PN} += "${@bb.utils.contains('MACHINE_FEATURES', 'optee-spmc-test', \
+                                              ' arm-ffa-user', '' , d)}"