diff options
author | davidcunado-arm <david.cunado@arm.com> | 2018-02-07 11:57:19 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-07 11:57:19 +0800 |
commit | 5b75b4a725d062bd593856a665bfda0e1b23a04b (patch) | |
tree | afc86aa95f7073042803ed9f5938020d19ecb369 /lib/optee | |
parent | 9fd2f13bd608832260300640970f73c62357c684 (diff) | |
parent | 95ae5b00447da02695a653004b86e6b805e058a9 (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/optee')
-rw-r--r-- | lib/optee/optee_utils.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/optee/optee_utils.c b/lib/optee/optee_utils.c index deb948c25..87e52bd18 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; } |