summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authordavidcunado-arm <david.cunado@arm.com>2018-02-07 11:57:19 +0800
committerGitHub <noreply@github.com>2018-02-07 11:57:19 +0800
commit5b75b4a725d062bd593856a665bfda0e1b23a04b (patch)
treeafc86aa95f7073042803ed9f5938020d19ecb369 /lib
parent9fd2f13bd608832260300640970f73c62357c684 (diff)
parent95ae5b00447da02695a653004b86e6b805e058a9 (diff)
Merge pull request #1173 from etienne-lms/armv7-qemu
support to boot OP-TEE on AArch32/Armv7+example with Cortex-A15/Qemu
Diffstat (limited to 'lib')
-rw-r--r--lib/optee/optee_utils.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/optee/optee_utils.c b/lib/optee/optee_utils.c
index deb948c2..87e52bd1 100644
--- a/lib/optee/optee_utils.c
+++ b/lib/optee/optee_utils.c
@@ -158,9 +158,12 @@ int parse_optee_header(entry_point_info_t *header_ep,
* and BL32_EXTRA2_IMAGE_ID to load pager and paged bin.
*/
if (!tee_validate_header(optee_header)) {
- INFO("Invalid OPTEE header, legacy mode.\n");
- /* Set legacy OPTEE runtime arch - aarch64 */
+ INFO("Invalid OPTEE header, set legacy mode.\n");
+#ifdef AARCH64
header_ep->args.arg0 = MODE_RW_64;
+#else
+ header_ep->args.arg0 = MODE_RW_32;
+#endif
return 0;
}
@@ -208,10 +211,16 @@ int parse_optee_header(entry_point_info_t *header_ep,
header_ep->args.arg2 = paged_image_info->image_size;
/* Set OPTEE runtime arch - aarch32/aarch64 */
- if (optee_header->arch == 0)
+ if (optee_header->arch == 0) {
header_ep->args.arg0 = MODE_RW_32;
- else
+ } else {
+#ifdef AARCH64
header_ep->args.arg0 = MODE_RW_64;
+#else
+ ERROR("Cannot boot an AArch64 OP-TEE\n");
+ return -1;
+#endif
+ }
return 0;
}