mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2025-02-17 09:10:07 +00:00
Unify cache flush code path after image load
Previously the cache flush happened in 2 different places in code depending on whether TRUSTED_BOARD_BOOT is enabled or not. This patch unifies this code path for both the cases. The `load_image()` function is now made an internal static function. Change-Id: I96a1da29d29236bbc34b1c95053e6a9a7fc98a54 Signed-off-by: Soby Mathew <soby.mathew@arm.com>
This commit is contained in:
parent
5627c1ed9e
commit
76163b3a7a
@ -200,14 +200,14 @@ size_t image_size(unsigned int image_id)
|
||||
#if LOAD_IMAGE_V2
|
||||
|
||||
/*******************************************************************************
|
||||
* Generic function to load an image at a specific address given
|
||||
* Internal function to load an image at a specific address given
|
||||
* an image ID and extents of free memory.
|
||||
*
|
||||
* If the load is successful then the image information is updated.
|
||||
*
|
||||
* Returns 0 on success, a negative error code otherwise.
|
||||
******************************************************************************/
|
||||
int load_image(unsigned int image_id, image_info_t *image_data)
|
||||
static int load_image(unsigned int image_id, image_info_t *image_data)
|
||||
{
|
||||
uintptr_t dev_handle;
|
||||
uintptr_t image_handle;
|
||||
@ -266,17 +266,6 @@ int load_image(unsigned int image_id, image_info_t *image_data)
|
||||
goto exit;
|
||||
}
|
||||
|
||||
#if !TRUSTED_BOARD_BOOT
|
||||
/*
|
||||
* File has been successfully loaded.
|
||||
* Flush the image to main memory so that it can be executed later by
|
||||
* any CPU, regardless of cache and MMU state.
|
||||
* When TBB is enabled the image is flushed later, after image
|
||||
* authentication.
|
||||
*/
|
||||
flush_dcache_range(image_base, image_size);
|
||||
#endif /* TRUSTED_BOARD_BOOT */
|
||||
|
||||
INFO("Image id=%u loaded: %p - %p\n", image_id, (void *) image_base,
|
||||
(void *) (image_base + image_size));
|
||||
|
||||
@ -329,18 +318,19 @@ static int load_auth_image_internal(unsigned int image_id,
|
||||
image_data->image_size);
|
||||
return -EAUTH;
|
||||
}
|
||||
#endif /* TRUSTED_BOARD_BOOT */
|
||||
|
||||
/*
|
||||
* File has been successfully loaded and authenticated.
|
||||
* Flush the image to main memory so that it can be executed later by
|
||||
* any CPU, regardless of cache and MMU state.
|
||||
* Do it only for child images, not for the parents (certificates).
|
||||
* any CPU, regardless of cache and MMU state. If TBB is enabled, then
|
||||
* the file has been successfully loaded and authenticated and flush
|
||||
* only for child images, not for the parents (certificates).
|
||||
*/
|
||||
if (!is_parent_image) {
|
||||
flush_dcache_range(image_data->image_base,
|
||||
image_data->image_size);
|
||||
}
|
||||
#endif /* TRUSTED_BOARD_BOOT */
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -205,7 +205,6 @@ int is_mem_free(uintptr_t free_base, size_t free_size,
|
||||
|
||||
#if LOAD_IMAGE_V2
|
||||
|
||||
int load_image(unsigned int image_id, image_info_t *image_data);
|
||||
int load_auth_image(unsigned int image_id, image_info_t *image_data);
|
||||
|
||||
#else
|
||||
|
Loading…
x
Reference in New Issue
Block a user