summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleksandr Suvorov <oleksandr.suvorov@foundries.io>2024-02-17 11:01:32 +0200
committerOleksandr Suvorov <oleksandr.suvorov@foundries.io>2024-02-17 11:40:44 +0200
commitebdf6d8b5dc45cb2417aefbae5c3c70f47b03cc4 (patch)
tree940871c2ad81454449c9deadef8f5aa77cc8b801
parent61b0a60c8f503a53abe175768a1554a0b24ab97e (diff)
downloadmeta-freescale-ebdf6d8b5dc45cb2417aefbae5c3c70f47b03cc4.tar.gz
optee-os: Upgrade to lf-6.1.55-2.2.0 (4.0)
Upgrade optee-os to 4.0 to be aligned with NXP BSP LF6.1.55_2.2.0. Also update the patch files. Relevant changes: - a303fc80f drivers: crypto: caam: fix job ring interruption number - 2a3787bf4 LFOPTEE-291 drivers: ele: disable ELE RNG at runtime - dca43aa1b drivers: crypto: caam: use job ring 3 on i.mx8dxlevk - c0d2000c1 drivers: imx_snvs: unlock SNVS access for non-secure - 50e946795 LFOPTEE-289 core: pta: imx: Trusted ARM CE: fix serialization bug - 9134bcffa LFOPTEE-289 core: pta: imx: Trusted ARM CE fix build issue - 8bf641926 LFOPTEE-235 core: plat-imx: Add Fast SMC support - 0477a804b LFOPTEE-235 core: pta: imx: add TRUSTED ARM CE - d943197bd LFOPTEE-235 drivers: ele: expose imx_ele_derive_key - e7dadb871 LFOPTEE-235 drivers: ele: rng: Use ELE GetRandom cmd - 9f3218062 LFOPTEE-286 drivers: ele: report error according to ELE response status - c619a4cb2 LFOPTEE-279 drivers: ele: correct typo in imx_ele_generate_key() - 2b0d839e5 LFOPTEE-279 drivers: ele: update imx_ele_delete_key() function - d7e85fad1 LFOPTEE-259 drivers: ele: make special setup for Trust MU communication - 4000b10be LFOPTEE-273 drivers: ele: move key management functions in key_mgmt.h - 4188353a1 LFOPTEE-270 drivers: ele: remove global session and key store handle init from imx_ele_global_init(). - dd79868aa LFOPTEE-270 drivers: ele: key_mgmt: remove unnecessary cache invalidate operation Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
-rw-r--r--conf/machine/include/imx-base.inc4
-rw-r--r--recipes-security/optee-imx/optee-os/0001-core-Define-section-attributes-for-clang.patch69
-rw-r--r--recipes-security/optee-imx/optee-os/0002-optee-enable-clang-support.patch4
-rw-r--r--recipes-security/optee-imx/optee-os/0003-arm32-libutils-libutee-ta-add-.note.GNU-stack-sectio.patch4
-rw-r--r--recipes-security/optee-imx/optee-os/0004-core-link-add-no-warn-rwx-segments.patch6
-rw-r--r--recipes-security/optee-imx/optee-os_4.0.0.imx.bb (renamed from recipes-security/optee-imx/optee-os_3.21.0.imx.bb)4
6 files changed, 45 insertions, 46 deletions
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index 87a17153..44cc17ca 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -593,8 +593,8 @@ PREFERRED_VERSION_vulkan-tools:imxvulkan ??= "1.3.239.0.imx"
593PREFERRED_VERSION_vulkan-validation-layers:imxvulkan ??= "1.3.239.0.imx" 593PREFERRED_VERSION_vulkan-validation-layers:imxvulkan ??= "1.3.239.0.imx"
594 594
595# Use i.MX optee Version 595# Use i.MX optee Version
596PREFERRED_VERSION_optee-os:mx8-nxp-bsp ??= "3.21.0.imx" 596PREFERRED_VERSION_optee-os:mx8-nxp-bsp ??= "4.0.0.imx"
597PREFERRED_VERSION_optee-os:mx9-nxp-bsp ??= "3.21.0.imx" 597PREFERRED_VERSION_optee-os:mx9-nxp-bsp ??= "4.0.0.imx"
598PREFERRED_VERSION_optee-client:mx8-nxp-bsp ??= "3.21.0.imx" 598PREFERRED_VERSION_optee-client:mx8-nxp-bsp ??= "3.21.0.imx"
599PREFERRED_VERSION_optee-client:mx9-nxp-bsp ??= "3.21.0.imx" 599PREFERRED_VERSION_optee-client:mx9-nxp-bsp ??= "3.21.0.imx"
600PREFERRED_VERSION_optee-test:mx8-nxp-bsp ??= "3.21.0.imx" 600PREFERRED_VERSION_optee-test:mx8-nxp-bsp ??= "3.21.0.imx"
diff --git a/recipes-security/optee-imx/optee-os/0001-core-Define-section-attributes-for-clang.patch b/recipes-security/optee-imx/optee-os/0001-core-Define-section-attributes-for-clang.patch
index 8a9062f3..54fbe541 100644
--- a/recipes-security/optee-imx/optee-os/0001-core-Define-section-attributes-for-clang.patch
+++ b/recipes-security/optee-imx/optee-os/0001-core-Define-section-attributes-for-clang.patch
@@ -1,4 +1,4 @@
1From b73c3d2829d3661ca66b5cc6b4181f3bf973b13f Mon Sep 17 00:00:00 2001 1From ef83625c9a5f50610e25aa860c4b9c5e64723a66 Mon Sep 17 00:00:00 2001
2From: Emekcan Aras <emekcan.aras@arm.com> 2From: Emekcan Aras <emekcan.aras@arm.com>
3Date: Wed, 21 Dec 2022 10:55:58 +0000 3Date: Wed, 21 Dec 2022 10:55:58 +0000
4Subject: [PATCH 1/4] core: Define section attributes for clang 4Subject: [PATCH 1/4] core: Define section attributes for clang
@@ -36,15 +36,15 @@ Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
36 core/arch/arm/kernel/thread.c | 19 +++++++++++++++-- 36 core/arch/arm/kernel/thread.c | 19 +++++++++++++++--
37 core/arch/arm/mm/core_mmu_lpae.c | 35 +++++++++++++++++++++++++++---- 37 core/arch/arm/mm/core_mmu_lpae.c | 35 +++++++++++++++++++++++++++----
38 core/arch/arm/mm/core_mmu_v7.c | 36 +++++++++++++++++++++++++++++--- 38 core/arch/arm/mm/core_mmu_v7.c | 36 +++++++++++++++++++++++++++++---
39 core/arch/arm/mm/pgt_cache.c | 12 ++++++++++-
40 core/kernel/thread.c | 13 +++++++++++- 39 core/kernel/thread.c | 13 +++++++++++-
40 core/mm/pgt_cache.c | 12 ++++++++++-
41 5 files changed, 104 insertions(+), 11 deletions(-) 41 5 files changed, 104 insertions(+), 11 deletions(-)
42 42
43diff --git a/core/arch/arm/kernel/thread.c b/core/arch/arm/kernel/thread.c 43diff --git a/core/arch/arm/kernel/thread.c b/core/arch/arm/kernel/thread.c
44index 22ef932f9..7a9078d2e 100644 44index 66833b3a0..b3eb9cf9a 100644
45--- a/core/arch/arm/kernel/thread.c 45--- a/core/arch/arm/kernel/thread.c
46+++ b/core/arch/arm/kernel/thread.c 46+++ b/core/arch/arm/kernel/thread.c
47@@ -44,15 +44,30 @@ static size_t thread_user_kcode_size __nex_bss; 47@@ -45,15 +45,30 @@ static size_t thread_user_kcode_size __nex_bss;
48 #if defined(CFG_CORE_UNMAP_CORE_AT_EL0) && \ 48 #if defined(CFG_CORE_UNMAP_CORE_AT_EL0) && \
49 defined(CFG_CORE_WORKAROUND_SPECTRE_BP_SEC) && defined(ARM64) 49 defined(CFG_CORE_WORKAROUND_SPECTRE_BP_SEC) && defined(ARM64)
50 long thread_user_kdata_sp_offset __nex_bss; 50 long thread_user_kdata_sp_offset __nex_bss;
@@ -78,10 +78,10 @@ index 22ef932f9..7a9078d2e 100644
78 78
79 #ifdef ARM32 79 #ifdef ARM32
80diff --git a/core/arch/arm/mm/core_mmu_lpae.c b/core/arch/arm/mm/core_mmu_lpae.c 80diff --git a/core/arch/arm/mm/core_mmu_lpae.c b/core/arch/arm/mm/core_mmu_lpae.c
81index 6df2c68cf..a877e4965 100644 81index 4c8b85e39..1885e1d3f 100644
82--- a/core/arch/arm/mm/core_mmu_lpae.c 82--- a/core/arch/arm/mm/core_mmu_lpae.c
83+++ b/core/arch/arm/mm/core_mmu_lpae.c 83+++ b/core/arch/arm/mm/core_mmu_lpae.c
84@@ -238,19 +238,46 @@ typedef uint16_t l1_idx_t; 84@@ -234,19 +234,46 @@ typedef uint16_t l1_idx_t;
85 typedef uint64_t base_xlat_tbls_t[CFG_TEE_CORE_NB_CORE][NUM_BASE_LEVEL_ENTRIES]; 85 typedef uint64_t base_xlat_tbls_t[CFG_TEE_CORE_NB_CORE][NUM_BASE_LEVEL_ENTRIES];
86 typedef uint64_t xlat_tbl_t[XLAT_TABLE_ENTRIES]; 86 typedef uint64_t xlat_tbl_t[XLAT_TABLE_ENTRIES];
87 87
@@ -133,7 +133,7 @@ index 6df2c68cf..a877e4965 100644
133 * TAs page table entry inside a level 1 page table. 133 * TAs page table entry inside a level 1 page table.
134 * 134 *
135diff --git a/core/arch/arm/mm/core_mmu_v7.c b/core/arch/arm/mm/core_mmu_v7.c 135diff --git a/core/arch/arm/mm/core_mmu_v7.c b/core/arch/arm/mm/core_mmu_v7.c
136index 58596be84..98fa58635 100644 136index 61e703da8..1960c08ca 100644
137--- a/core/arch/arm/mm/core_mmu_v7.c 137--- a/core/arch/arm/mm/core_mmu_v7.c
138+++ b/core/arch/arm/mm/core_mmu_v7.c 138+++ b/core/arch/arm/mm/core_mmu_v7.c
139@@ -204,16 +204,46 @@ typedef uint32_t l1_xlat_tbl_t[NUM_L1_ENTRIES]; 139@@ -204,16 +204,46 @@ typedef uint32_t l1_xlat_tbl_t[NUM_L1_ENTRIES];
@@ -186,35 +186,11 @@ index 58596be84..98fa58635 100644
186 186
187 struct mmu_partition { 187 struct mmu_partition {
188 l1_xlat_tbl_t *l1_table; 188 l1_xlat_tbl_t *l1_table;
189diff --git a/core/arch/arm/mm/pgt_cache.c b/core/arch/arm/mm/pgt_cache.c
190index 79553c6d2..b9efdf427 100644
191--- a/core/arch/arm/mm/pgt_cache.c
192+++ b/core/arch/arm/mm/pgt_cache.c
193@@ -410,8 +410,18 @@ void pgt_init(void)
194 * has a large alignment, while .bss has a small alignment. The current
195 * link script is optimized for small alignment in .bss
196 */
197+#ifdef __clang__
198+#pragma clang section bss=".nozi.mmu.l2"
199+#endif
200 static uint8_t pgt_tables[PGT_CACHE_SIZE][PGT_SIZE]
201- __aligned(PGT_SIZE) __section(".nozi.pgt_cache");
202+ __aligned(PGT_SIZE)
203+#ifndef __clang__
204+ __section(".nozi.pgt_cache")
205+#endif
206+ ;
207+#ifdef __clang__
208+#pragma clang section bss=""
209+#endif
210 size_t n;
211
212 for (n = 0; n < ARRAY_SIZE(pgt_tables); n++) {
213diff --git a/core/kernel/thread.c b/core/kernel/thread.c 189diff --git a/core/kernel/thread.c b/core/kernel/thread.c
214index e48294b3b..8de9064ca 100644 190index 2a1f22dce..5516b6771 100644
215--- a/core/kernel/thread.c 191--- a/core/kernel/thread.c
216+++ b/core/kernel/thread.c 192+++ b/core/kernel/thread.c
217@@ -38,13 +38,24 @@ struct thread_core_local thread_core_local[CFG_TEE_CORE_NB_CORE] __nex_bss; 193@@ -39,13 +39,24 @@ static uint32_t end_canary_value = 0xababab00;
218 name[stack_num][sizeof(name[stack_num]) / sizeof(uint32_t) - 1] 194 name[stack_num][sizeof(name[stack_num]) / sizeof(uint32_t) - 1]
219 #endif 195 #endif
220 196
@@ -240,7 +216,30 @@ index e48294b3b..8de9064ca 100644
240 #define GET_STACK(stack) ((vaddr_t)(stack) + STACK_SIZE(stack)) 216 #define GET_STACK(stack) ((vaddr_t)(stack) + STACK_SIZE(stack))
241 217
242 DECLARE_STACK(stack_tmp, CFG_TEE_CORE_NB_CORE, STACK_TMP_SIZE, 218 DECLARE_STACK(stack_tmp, CFG_TEE_CORE_NB_CORE, STACK_TMP_SIZE,
219diff --git a/core/mm/pgt_cache.c b/core/mm/pgt_cache.c
220index 79553c6d2..b9efdf427 100644
221--- a/core/mm/pgt_cache.c
222+++ b/core/mm/pgt_cache.c
223@@ -410,8 +410,18 @@ void pgt_init(void)
224 * has a large alignment, while .bss has a small alignment. The current
225 * link script is optimized for small alignment in .bss
226 */
227+#ifdef __clang__
228+#pragma clang section bss=".nozi.mmu.l2"
229+#endif
230 static uint8_t pgt_tables[PGT_CACHE_SIZE][PGT_SIZE]
231- __aligned(PGT_SIZE) __section(".nozi.pgt_cache");
232+ __aligned(PGT_SIZE)
233+#ifndef __clang__
234+ __section(".nozi.pgt_cache")
235+#endif
236+ ;
237+#ifdef __clang__
238+#pragma clang section bss=""
239+#endif
240 size_t n;
241
242 for (n = 0; n < ARRAY_SIZE(pgt_tables); n++) {
243-- 243--
2442.40.1 2442.43.2
245
246 245
diff --git a/recipes-security/optee-imx/optee-os/0002-optee-enable-clang-support.patch b/recipes-security/optee-imx/optee-os/0002-optee-enable-clang-support.patch
index 096579c0..dbc53542 100644
--- a/recipes-security/optee-imx/optee-os/0002-optee-enable-clang-support.patch
+++ b/recipes-security/optee-imx/optee-os/0002-optee-enable-clang-support.patch
@@ -1,4 +1,4 @@
1From c67f63d4e7bbe7b21b4c9ef49ae84c6725794aa9 Mon Sep 17 00:00:00 2001 1From 2ba573c9763329fbfdfacc8393d565ab747cac4d Mon Sep 17 00:00:00 2001
2From: Brett Warren <brett.warren@arm.com> 2From: Brett Warren <brett.warren@arm.com>
3Date: Wed, 23 Sep 2020 09:27:34 +0100 3Date: Wed, 23 Sep 2020 09:27:34 +0100
4Subject: [PATCH 2/4] optee: enable clang support 4Subject: [PATCH 2/4] optee: enable clang support
@@ -30,5 +30,5 @@ index a045beee8..1ebe2f702 100644
30 30
31 # Core ASLR relies on the executable being ready to run from its preferred load 31 # Core ASLR relies on the executable being ready to run from its preferred load
32-- 32--
332.40.1 332.43.2
34 34
diff --git a/recipes-security/optee-imx/optee-os/0003-arm32-libutils-libutee-ta-add-.note.GNU-stack-sectio.patch b/recipes-security/optee-imx/optee-os/0003-arm32-libutils-libutee-ta-add-.note.GNU-stack-sectio.patch
index f0fac69f..1c5753c7 100644
--- a/recipes-security/optee-imx/optee-os/0003-arm32-libutils-libutee-ta-add-.note.GNU-stack-sectio.patch
+++ b/recipes-security/optee-imx/optee-os/0003-arm32-libutils-libutee-ta-add-.note.GNU-stack-sectio.patch
@@ -1,4 +1,4 @@
1From f23fb3381422c613890f77c26d11e377234481c6 Mon Sep 17 00:00:00 2001 1From 6f738803a59613ec4a683ddbc1747ebffd75a4e6 Mon Sep 17 00:00:00 2001
2From: Jerome Forissier <jerome.forissier@linaro.org> 2From: Jerome Forissier <jerome.forissier@linaro.org>
3Date: Tue, 23 Aug 2022 12:31:46 +0000 3Date: Tue, 23 Aug 2022 12:31:46 +0000
4Subject: [PATCH 3/4] arm32: libutils, libutee, ta: add .note.GNU-stack section 4Subject: [PATCH 3/4] arm32: libutils, libutee, ta: add .note.GNU-stack section
@@ -129,5 +129,5 @@ index cd9a12f9d..ccdc19928 100644
129 * This function is the bottom of the user call stack. Mark it as such so that 129 * This function is the bottom of the user call stack. Mark it as such so that
130 * the unwinding code won't try to go further down. 130 * the unwinding code won't try to go further down.
131-- 131--
1322.40.1 1322.43.2
133 133
diff --git a/recipes-security/optee-imx/optee-os/0004-core-link-add-no-warn-rwx-segments.patch b/recipes-security/optee-imx/optee-os/0004-core-link-add-no-warn-rwx-segments.patch
index f72d80dc..f32b2284 100644
--- a/recipes-security/optee-imx/optee-os/0004-core-link-add-no-warn-rwx-segments.patch
+++ b/recipes-security/optee-imx/optee-os/0004-core-link-add-no-warn-rwx-segments.patch
@@ -1,4 +1,4 @@
1From b53f5542102b8088448134202c30ca563f5b3c04 Mon Sep 17 00:00:00 2001 1From a63f82f74e015eb662242cdb51ef814e3f576829 Mon Sep 17 00:00:00 2001
2From: Jerome Forissier <jerome.forissier@linaro.org> 2From: Jerome Forissier <jerome.forissier@linaro.org>
3Date: Fri, 5 Aug 2022 09:48:03 +0200 3Date: Fri, 5 Aug 2022 09:48:03 +0200
4Subject: [PATCH 4/4] core: link: add --no-warn-rwx-segments 4Subject: [PATCH 4/4] core: link: add --no-warn-rwx-segments
@@ -25,7 +25,7 @@ Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
25 1 file changed, 4 insertions(+), 2 deletions(-) 25 1 file changed, 4 insertions(+), 2 deletions(-)
26 26
27diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk 27diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk
28index e8a518254..60e08966f 100644 28index 49e9f4fa1..9e1cc172f 100644
29--- a/core/arch/arm/kernel/link.mk 29--- a/core/arch/arm/kernel/link.mk
30+++ b/core/arch/arm/kernel/link.mk 30+++ b/core/arch/arm/kernel/link.mk
31@@ -37,6 +37,7 @@ link-ldflags += --sort-section=alignment 31@@ -37,6 +37,7 @@ link-ldflags += --sort-section=alignment
@@ -63,5 +63,5 @@ index e8a518254..60e08966f 100644
63 $(libgcccore) 63 $(libgcccore)
64 cleanfiles += $(link-out-dir)/init.o 64 cleanfiles += $(link-out-dir)/init.o
65-- 65--
662.40.1 662.43.2
67 67
diff --git a/recipes-security/optee-imx/optee-os_3.21.0.imx.bb b/recipes-security/optee-imx/optee-os_4.0.0.imx.bb
index 89788370..cecfc23c 100644
--- a/recipes-security/optee-imx/optee-os_3.21.0.imx.bb
+++ b/recipes-security/optee-imx/optee-os_4.0.0.imx.bb
@@ -8,5 +8,5 @@ SRC_URI += " \
8 file://0003-arm32-libutils-libutee-ta-add-.note.GNU-stack-sectio.patch \ 8 file://0003-arm32-libutils-libutee-ta-add-.note.GNU-stack-sectio.patch \
9 file://0004-core-link-add-no-warn-rwx-segments.patch \ 9 file://0004-core-link-add-no-warn-rwx-segments.patch \
10" 10"
11SRCBRANCH = "lf-6.1.36_2.1.0" 11SRCBRANCH = "lf-6.1.55_2.2.0"
12SRCREV = "4e32281904b15af9ddbdf00f73e1c08eae21c695" 12SRCREV = "a303fc80f7c4bd713315687a1fa1d6ed136e78ee"