diff --git a/bl2/bl2_image_load_v2.c b/bl2/bl2_image_load_v2.c index 4fab655..05c0fcd 100644 --- a/bl2/bl2_image_load_v2.c +++ b/bl2/bl2_image_load_v2.c @@ -109,6 +109,10 @@ assert(bl2_to_next_bl_params->head); assert(bl2_to_next_bl_params->h.type == PARAM_BL_PARAMS); assert(bl2_to_next_bl_params->h.version >= VERSION_2); + assert(bl2_to_next_bl_params->head->ep_info); + + /* Populate arg0 for the next BL image */ + bl2_to_next_bl_params->head->ep_info->args.arg0 = (u_register_t)bl2_to_next_bl_params; /* Flush the parameters to be passed to next image */ plat_flush_next_bl_params(); diff --git a/common/desc_image_load.c b/common/desc_image_load.c index a9762b7..52ef362 100644 --- a/common/desc_image_load.c +++ b/common/desc_image_load.c @@ -47,8 +47,11 @@ ******************************************************************************/ void flush_bl_params_desc(void) { - flush_dcache_range((unsigned long)bl_mem_params_desc_ptr, + flush_dcache_range((uintptr_t)bl_mem_params_desc_ptr, sizeof(*bl_mem_params_desc_ptr) * bl_mem_params_desc_num); + + flush_dcache_range((uintptr_t)&next_bl_params, + sizeof(next_bl_params)); } /******************************************************************************* @@ -209,12 +212,5 @@ /* Invalid image is expected to terminate the loop */ assert(img_id == INVALID_IMAGE_ID); - /* Populate arg0 for the next BL image */ - next_bl_params.head->ep_info->args.arg0 = (unsigned long)&next_bl_params; - - /* Flush the parameters to be passed to the next BL image */ - flush_dcache_range((unsigned long)&next_bl_params, - sizeof(next_bl_params)); - return &next_bl_params; }