summaryrefslogtreecommitdiff
path: root/lib/optee
diff options
context:
space:
mode:
authorEtienne Carriere <etienne.carriere@st.com>2019-04-15 18:01:29 +0200
committerYann Gautier <yann.gautier@foss.st.com>2021-09-06 13:21:54 +0200
commitb84a850864c05fef587fcbb301f955428966de64 (patch)
tree78922c211523f52b81cb39e506e428bfbcbab3f7 /lib/optee
parentf465cc1659fdbaf962217aa2f1767a511426b476 (diff)
feat(lib/optee): introduce optee_header_is_valid()
This new function optee_header_is_valid() allows platform to know whether OP-TEE OS is loaded from multi-image (using OP-TEE header image as BL32_IMAGE_ID) or from a single OP-TEE binary image. The function tee_validate_header() is reworked to return a boolean, and is now silent. Change-Id: Idc7dde091f2ada8898f40d02e68c3834ca39d8e8 Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Diffstat (limited to 'lib/optee')
-rw-r--r--lib/optee/optee_utils.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/lib/optee/optee_utils.c b/lib/optee/optee_utils.c
index 0ad108242..d090b3826 100644
--- a/lib/optee/optee_utils.c
+++ b/lib/optee/optee_utils.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2017-2021, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -47,25 +47,24 @@ typedef struct optee_header {
/*******************************************************************************
* Check if it is a valid tee header
- * Return 1 if valid
- * Return 0 if invalid
+ * Return true if valid
+ * Return false if invalid
******************************************************************************/
-static inline int tee_validate_header(optee_header_t *header)
+static bool tee_validate_header(optee_header_t *header)
{
- int valid = 0;
-
if ((header->magic == TEE_MAGIC_NUM_OPTEE) &&
(header->version == 2u) &&
(header->nb_images > 0u) &&
(header->nb_images <= OPTEE_MAX_NUM_IMAGES)) {
- valid = 1;
+ return true;
}
- else {
- WARN("Not a known TEE, use default loading options.\n");
- }
+ return false;
+}
- return valid;
+bool optee_header_is_valid(uintptr_t header_base)
+{
+ return tee_validate_header((optee_header_t *)header_base);
}
/*******************************************************************************