xref: /rk3399_ARM-atf/include/common/desc_image_load.h (revision cab0b5b0452556c9f7ba3fa98c233d3a6a62b023)
172600226SYatharth Kochar /*
272600226SYatharth Kochar  * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
372600226SYatharth Kochar  *
482cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
572600226SYatharth Kochar  */
672600226SYatharth Kochar #ifndef __DESC_IMAGE_LOAD_H__
772600226SYatharth Kochar #define __DESC_IMAGE_LOAD_H__
872600226SYatharth Kochar 
972600226SYatharth Kochar #include <bl_common.h>
1072600226SYatharth Kochar 
1172600226SYatharth Kochar #if LOAD_IMAGE_V2
1272600226SYatharth Kochar /* Following structure is used to store BL ep/image info. */
1372600226SYatharth Kochar typedef struct bl_mem_params_node {
1472600226SYatharth Kochar 	unsigned int image_id;
1572600226SYatharth Kochar 	image_info_t image_info;
1672600226SYatharth Kochar 	entry_point_info_t ep_info;
1772600226SYatharth Kochar 	unsigned int next_handoff_image_id;
1872600226SYatharth Kochar 	bl_load_info_node_t load_node_mem;
1972600226SYatharth Kochar 	bl_params_node_t params_node_mem;
2072600226SYatharth Kochar } bl_mem_params_node_t;
2172600226SYatharth Kochar 
2272600226SYatharth Kochar /*
2372600226SYatharth Kochar  * Macro to register list of BL image descriptors,
2472600226SYatharth Kochar  * defined as an array of bl_mem_params_node_t.
2572600226SYatharth Kochar  */
2672600226SYatharth Kochar #define REGISTER_BL_IMAGE_DESCS(_img_desc)				\
2772600226SYatharth Kochar 	bl_mem_params_node_t *bl_mem_params_desc_ptr = &_img_desc[0];	\
2872600226SYatharth Kochar 	unsigned int bl_mem_params_desc_num = ARRAY_SIZE(_img_desc);
2972600226SYatharth Kochar 
3072600226SYatharth Kochar /* BL image loading utility functions */
3172600226SYatharth Kochar void flush_bl_params_desc(void);
3272600226SYatharth Kochar int get_bl_params_node_index(unsigned int image_id);
3372600226SYatharth Kochar bl_mem_params_node_t *get_bl_mem_params_node(unsigned int image_id);
3472600226SYatharth Kochar bl_load_info_t *get_bl_load_info_from_mem_params_desc(void);
3572600226SYatharth Kochar bl_params_t *get_next_bl_params_from_mem_params_desc(void);
36*cab0b5b0SSoby Mathew void populate_next_bl_params_config(bl_params_t *bl2_to_next_bl_params);
3772600226SYatharth Kochar 
3872600226SYatharth Kochar #endif /* LOAD_IMAGE_V2 */
3972600226SYatharth Kochar #endif /* __DESC_IMAGE_LOAD_H__ */
40