From 13e4bd913b159755cf7a11546a5eb718d447e95a Mon Sep 17 00:00:00 2001 From: Vishnu Banavath Date: Sat, 11 Dec 2021 10:02:23 +0000 Subject: [PATCH] arm-bsp/optee-os: cherry pick fixes from upstream integration branch These changes are to fix missing error check during sp init and add support for defining memory regions Change-Id: I381ff9805288590809471494bdff5e7f62232f7c Signed-off-by: Vishnu Banavath Signed-off-by: Jon Mason --- ...d-missing-error-check-during-SP-init.patch | 40 +++++++++++++++++++ .../optee/optee-os_corstone1000_common.inc | 3 +- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0005-Fix-add-missing-error-check-during-SP-init.patch diff --git a/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0005-Fix-add-missing-error-check-during-SP-init.patch b/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0005-Fix-add-missing-error-check-during-SP-init.patch new file mode 100644 index 00000000..852067bc --- /dev/null +++ b/meta-arm-bsp/recipes-security/optee/files/optee-os/corstone1000/0005-Fix-add-missing-error-check-during-SP-init.patch @@ -0,0 +1,40 @@ +Upstream-Status: Pending [Not submitted to upstream yet] +Signed-off-by: Vishnu Banavath + +From 4617f85b70c7e4206b244f3eaffdc62ac3744a17 Mon Sep 17 00:00:00 2001 +From: Jelle Sels +Date: Mon, 10 May 2021 11:37:23 +0200 +Subject: [PATCH] Fix: add missing error check during SP init + +Error checking during SP initialization (sp_init_uuid()) was lacking. +As a result an out of CORE HEAP situation resulted in a panic. This was +due to lack of memory in the inflate() function of zlib. + +Signed-off-by: Jelle Sels +Change-Id: I287e2e2dd507feb45991b32ed264b3b6ad6fcd39 + +diff --git a/core/arch/arm/kernel/sp.c b/core/arch/arm/kernel/sp.c +index 4acbc2e2..23532a01 100644 +--- a/core/arch/arm/kernel/sp.c ++++ b/core/arch/arm/kernel/sp.c +@@ -383,10 +383,14 @@ static TEE_Result __attribute__((unused)) sp_init_uuid(const TEE_UUID *uuid) + cancel_req_to, + ¶m); + +- args.a0 = sp_get_session(sess->id)->sp_regs.x[0]; +- sp_thread(sess->id, FFA_NW_ID, &args); ++ if (res == TEE_SUCCESS) { ++ args.a0 = sp_get_session(sess->id)->sp_regs.x[0]; ++ sp_thread(sess->id, FFA_NW_ID, &args); + +- thread_spmc_msg_recv(&args, sess->id); ++ thread_spmc_msg_recv(&args, sess->id); ++ } else { ++ EMSG("SP initialization failed, try increasing CFG_CORE_HEAP_SIZE"); ++ } + + return res; + } +-- +2.25.1 + 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 8a4cf1d9..6e81316b 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 @@ -11,7 +11,8 @@ SRC_URI:append = " \ file://0002-plat-corstone1000-reserve-3MB-CVM-memory-for-optee.patch \ file://0003-plat-corstone1000-add-a-rule-in-Makefile-to-SP_MAKEF.patch \ file://0004-plat-corstone1000-increase-OPTEE-core-heap-size.patch \ - " + file://0005-Fix-add-missing-error-check-during-SP-init.patch \ + " COMPATIBLE_MACHINE = "corstone1000"