Minor refactor of BL2 image load v2
Previously, get_next_bl_params_from_mem_params_desc() populated arg0
in the EL3 runtime entrypoint with a bl_params_t pointer. This is the
responsibility of the generic LOAD_IMAGE_V2 framework instead of the
descriptor-based image loading utility functions. Therefore this patch
moves that code to bl2_load_images().
Also, this patch moves the code that flushes the bl_params structure to
flush_bl_params_desc(), together with the other descriptor-based image
loading flushing code.
Change-Id: I4541e3f50e3878dde7cf89e9e8f31fe0b173fb9d
Signed-off-by: Dan Handley <dan.handley@arm.com>
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;
}