mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-24 05:54:08 +00:00
bl1: add bl1_plat_handle_{pre,post}_image_load()
Just like bl2_, add pre/post image load handlers for BL1. No argument is needed since BL2 is the only image loaded by BL1. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
ba68ef557b
commit
11f001cb7f
4 changed files with 60 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -178,6 +178,12 @@ void bl1_load_bl2(void)
|
||||||
INFO("BL1: Loading BL2\n");
|
INFO("BL1: Loading BL2\n");
|
||||||
|
|
||||||
#if LOAD_IMAGE_V2
|
#if LOAD_IMAGE_V2
|
||||||
|
err = bl1_plat_handle_pre_image_load();
|
||||||
|
if (err) {
|
||||||
|
ERROR("Failure in pre image load handling of BL2 (%d)\n", err);
|
||||||
|
plat_error_handler(err);
|
||||||
|
}
|
||||||
|
|
||||||
err = load_auth_image(BL2_IMAGE_ID, image_info);
|
err = load_auth_image(BL2_IMAGE_ID, image_info);
|
||||||
#else
|
#else
|
||||||
/* Load the BL2 image */
|
/* Load the BL2 image */
|
||||||
|
@ -194,6 +200,14 @@ void bl1_load_bl2(void)
|
||||||
plat_error_handler(err);
|
plat_error_handler(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if LOAD_IMAGE_V2
|
||||||
|
/* Allow platform to handle image information. */
|
||||||
|
err = bl1_plat_handle_post_image_load();
|
||||||
|
if (err) {
|
||||||
|
ERROR("Failure in post image load handling of BL2 (%d)\n", err);
|
||||||
|
plat_error_handler(err);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a new layout of memory for BL2 as seen by BL1 i.e.
|
* Create a new layout of memory for BL2 as seen by BL1 i.e.
|
||||||
* tell it the amount of total and free memory available.
|
* tell it the amount of total and free memory available.
|
||||||
|
@ -201,7 +215,6 @@ void bl1_load_bl2(void)
|
||||||
* to BL2. BL2 will read the memory layout before using its
|
* to BL2. BL2 will read the memory layout before using its
|
||||||
* memory for other purposes.
|
* memory for other purposes.
|
||||||
*/
|
*/
|
||||||
#if LOAD_IMAGE_V2
|
|
||||||
bl2_tzram_layout = (meminfo_t *) bl1_tzram_layout->total_base;
|
bl2_tzram_layout = (meminfo_t *) bl1_tzram_layout->total_base;
|
||||||
#else
|
#else
|
||||||
bl2_tzram_layout = (meminfo_t *) bl1_tzram_layout->free_base;
|
bl2_tzram_layout = (meminfo_t *) bl1_tzram_layout->free_base;
|
||||||
|
|
|
@ -1259,6 +1259,30 @@ standard platforms return an image descriptor corresponding to BL2 or one of
|
||||||
the firmware update images defined in the Trusted Board Boot Requirements
|
the firmware update images defined in the Trusted Board Boot Requirements
|
||||||
specification.
|
specification.
|
||||||
|
|
||||||
|
Function : bl1\_plat\_handle\_pre\_image\_load() [optional]
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
Argument : void
|
||||||
|
Return : int
|
||||||
|
|
||||||
|
This function can be used by the platforms to update/use image information
|
||||||
|
for BL2. This function is currently invoked in BL1 before loading BL2,
|
||||||
|
when LOAD\_IMAGE\_V2 is enabled.
|
||||||
|
|
||||||
|
Function : bl1\_plat\_handle\_post\_image\_load() [optional]
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
Argument : void
|
||||||
|
Return : int
|
||||||
|
|
||||||
|
This function can be used by the platforms to update/use image information
|
||||||
|
for BL2. This function is currently invoked in BL1 after loading BL2,
|
||||||
|
when LOAD\_IMAGE\_V2 is enabled.
|
||||||
|
|
||||||
Function : bl1\_plat\_fwu\_done() [optional]
|
Function : bl1\_plat\_fwu\_done() [optional]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
|
@ -155,6 +155,15 @@ struct image_desc *bl1_plat_get_image_desc(unsigned int image_id);
|
||||||
*/
|
*/
|
||||||
__dead2 void bl1_plat_fwu_done(void *client_cookie, void *reserved);
|
__dead2 void bl1_plat_fwu_done(void *client_cookie, void *reserved);
|
||||||
|
|
||||||
|
#if LOAD_IMAGE_V2
|
||||||
|
/*
|
||||||
|
* This function can be used by the platforms to update/use image
|
||||||
|
* information for BL2.
|
||||||
|
*/
|
||||||
|
int bl1_plat_handle_pre_image_load(void);
|
||||||
|
int bl1_plat_handle_post_image_load(void);
|
||||||
|
|
||||||
|
#endif /* LOAD_IMAGE_V2 */
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Mandatory BL2 functions
|
* Mandatory BL2 functions
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma weak plat_error_handler
|
#pragma weak plat_error_handler
|
||||||
|
#pragma weak bl1_plat_handle_pre_image_load
|
||||||
|
#pragma weak bl1_plat_handle_post_image_load
|
||||||
#pragma weak bl2_plat_preload_setup
|
#pragma weak bl2_plat_preload_setup
|
||||||
#pragma weak bl2_plat_handle_pre_image_load
|
#pragma weak bl2_plat_handle_pre_image_load
|
||||||
#pragma weak bl2_plat_handle_post_image_load
|
#pragma weak bl2_plat_handle_post_image_load
|
||||||
|
@ -23,6 +25,16 @@ void __dead2 plat_error_handler(int err)
|
||||||
wfi();
|
wfi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int bl1_plat_handle_pre_image_load(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int bl1_plat_handle_post_image_load(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void bl2_plat_preload_setup(void)
|
void bl2_plat_preload_setup(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue