xref: /rk3399_ARM-atf/plat/hisilicon/hikey960/hikey960_image_load.c (revision 6971642d23d0c5e33e507eb78b7c569045e2f85d)
12de0c5ccSVictor Chong /*
2*6971642dSLukas Hanel  * Copyright (c) 2017-2022, ARM Limited and Contributors. All rights reserved.
32de0c5ccSVictor Chong  *
42de0c5ccSVictor Chong  * SPDX-License-Identifier: BSD-3-Clause
52de0c5ccSVictor Chong  */
62de0c5ccSVictor Chong 
7*6971642dSLukas Hanel #include <assert.h>
809d40e0eSAntonio Nino Diaz #include <common/bl_common.h>
909d40e0eSAntonio Nino Diaz #include <common/desc_image_load.h>
1009d40e0eSAntonio Nino Diaz #include <plat/common/platform.h>
112de0c5ccSVictor Chong 
122de0c5ccSVictor Chong /*******************************************************************************
132de0c5ccSVictor Chong  * This function flushes the data structures so that they are visible
142de0c5ccSVictor Chong  * in memory for the next BL image.
152de0c5ccSVictor Chong  ******************************************************************************/
162de0c5ccSVictor Chong void plat_flush_next_bl_params(void)
172de0c5ccSVictor Chong {
182de0c5ccSVictor Chong 	flush_bl_params_desc();
192de0c5ccSVictor Chong }
202de0c5ccSVictor Chong 
212de0c5ccSVictor Chong /*******************************************************************************
222de0c5ccSVictor Chong  * This function returns the list of loadable images.
232de0c5ccSVictor Chong  ******************************************************************************/
242de0c5ccSVictor Chong bl_load_info_t *plat_get_bl_image_load_info(void)
252de0c5ccSVictor Chong {
262de0c5ccSVictor Chong 	return get_bl_load_info_from_mem_params_desc();
272de0c5ccSVictor Chong }
282de0c5ccSVictor Chong 
29*6971642dSLukas Hanel 
30*6971642dSLukas Hanel /*******************************************************************************
31*6971642dSLukas Hanel  * ARM helper function to return the list of executable images. Since the default
32*6971642dSLukas Hanel  * descriptors are allocated within BL2 RW memory, this prevents BL31/BL32
33*6971642dSLukas Hanel  * overlay of BL2 memory. Hence this function also copies the descriptors to a
34*6971642dSLukas Hanel  * pre-allocated memory indicated by ARM_BL2_MEM_DESC_BASE.
35*6971642dSLukas Hanel  ******************************************************************************/
36*6971642dSLukas Hanel struct bl_params *hikey960_get_next_bl_params(void)
37*6971642dSLukas Hanel {
38*6971642dSLukas Hanel 	bl_params_t *next_bl_params;
39*6971642dSLukas Hanel 
40*6971642dSLukas Hanel 	next_bl_params = get_next_bl_params_from_mem_params_desc();
41*6971642dSLukas Hanel 	assert(next_bl_params != NULL);
42*6971642dSLukas Hanel 
43*6971642dSLukas Hanel 	populate_next_bl_params_config(next_bl_params);
44*6971642dSLukas Hanel 
45*6971642dSLukas Hanel 	return next_bl_params;
46*6971642dSLukas Hanel }
47*6971642dSLukas Hanel 
48*6971642dSLukas Hanel 
492de0c5ccSVictor Chong /*******************************************************************************
502de0c5ccSVictor Chong  * This function returns the list of executable images.
512de0c5ccSVictor Chong  ******************************************************************************/
522de0c5ccSVictor Chong bl_params_t *plat_get_next_bl_params(void)
532de0c5ccSVictor Chong {
54*6971642dSLukas Hanel 	return hikey960_get_next_bl_params();
552de0c5ccSVictor Chong }
56