/*
- * 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
*/
INFO("BL1: Loading BL2\n");
#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);
#else
/* Load the BL2 image */
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.
* tell it the amount of total and free memory available.
* to BL2. BL2 will read the memory layout before using its
* memory for other purposes.
*/
-#if LOAD_IMAGE_V2
bl2_tzram_layout = (meminfo_t *) bl1_tzram_layout->total_base;
#else
bl2_tzram_layout = (meminfo_t *) bl1_tzram_layout->free_base;
the firmware update images defined in the Trusted Board Boot Requirements
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]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
__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
*/
#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_handle_pre_image_load
#pragma weak bl2_plat_handle_post_image_load
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)
{
}