aboutsummaryrefslogtreecommitdiff
path: root/plat/hisilicon/hikey/hikey_bl2_setup.c
diff options
context:
space:
mode:
authorVictor Chong <victor.chong@linaro.org>2017-08-16 13:53:56 +0900
committerVictor Chong <victor.chong@linaro.org>2017-09-01 22:48:10 +0900
commitb16bb16e3b6423929c2b2a7c23486ef538cca6aa (patch)
tree0e7b16528f2c4a88fb6216a5cef7e37b49f1170d /plat/hisilicon/hikey/hikey_bl2_setup.c
parent2de0c5cc4fac47dcc5df295bd1eaf3a6da528424 (diff)
downloadtrusted-firmware-a-b16bb16e3b6423929c2b2a7c23486ef538cca6aa.tar.gz
hikey*: Support Trusted OS extra image (OP-TEE header) parsing
Signed-off-by: Victor Chong <victor.chong@linaro.org>
Diffstat (limited to 'plat/hisilicon/hikey/hikey_bl2_setup.c')
-rw-r--r--plat/hisilicon/hikey/hikey_bl2_setup.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/plat/hisilicon/hikey/hikey_bl2_setup.c b/plat/hisilicon/hikey/hikey_bl2_setup.c
index c977fb68d7..968da9bd63 100644
--- a/plat/hisilicon/hikey/hikey_bl2_setup.c
+++ b/plat/hisilicon/hikey/hikey_bl2_setup.c
@@ -17,6 +17,11 @@
#include <hisi_mcu.h>
#include <hisi_sram_map.h>
#include <mmio.h>
+#if LOAD_IMAGE_V2
+#ifdef SPD_opteed
+#include <optee_utils.h>
+#endif
+#endif
#include <platform_def.h>
#include <sp804_delay_timer.h>
#include <string.h>
@@ -161,11 +166,29 @@ int hikey_bl2_handle_post_image_load(unsigned int image_id)
{
int err = 0;
bl_mem_params_node_t *bl_mem_params = get_bl_mem_params_node(image_id);
+#ifdef SPD_opteed
+ bl_mem_params_node_t *pager_mem_params = NULL;
+ bl_mem_params_node_t *paged_mem_params = NULL;
+#endif
assert(bl_mem_params);
switch (image_id) {
#ifdef AARCH64
case BL32_IMAGE_ID:
+#ifdef SPD_opteed
+ pager_mem_params = get_bl_mem_params_node(BL32_EXTRA1_IMAGE_ID);
+ assert(pager_mem_params);
+
+ paged_mem_params = get_bl_mem_params_node(BL32_EXTRA2_IMAGE_ID);
+ assert(paged_mem_params);
+
+ err = parse_optee_header(&bl_mem_params->ep_info,
+ &pager_mem_params->image_info,
+ &paged_mem_params->image_info);
+ if (err != 0) {
+ WARN("OPTEE header parse error.\n");
+ }
+#endif
bl_mem_params->ep_info.spsr = hikey_get_spsr_for_bl32_entry();
break;
#endif