1 /* 2 * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 #ifndef __DESC_IMAGE_LOAD_H__ 7 #define __DESC_IMAGE_LOAD_H__ 8 9 #include <bl_common.h> 10 11 #if LOAD_IMAGE_V2 12 /* Following structure is used to store BL ep/image info. */ 13 typedef struct bl_mem_params_node { 14 unsigned int image_id; 15 image_info_t image_info; 16 entry_point_info_t ep_info; 17 unsigned int next_handoff_image_id; 18 bl_load_info_node_t load_node_mem; 19 bl_params_node_t params_node_mem; 20 } bl_mem_params_node_t; 21 22 /* 23 * Macro to register list of BL image descriptors, 24 * defined as an array of bl_mem_params_node_t. 25 */ 26 #define REGISTER_BL_IMAGE_DESCS(_img_desc) \ 27 bl_mem_params_node_t *bl_mem_params_desc_ptr = &_img_desc[0]; \ 28 unsigned int bl_mem_params_desc_num = ARRAY_SIZE(_img_desc); 29 30 /* BL image loading utility functions */ 31 void flush_bl_params_desc(void); 32 int get_bl_params_node_index(unsigned int image_id); 33 bl_mem_params_node_t *get_bl_mem_params_node(unsigned int image_id); 34 bl_load_info_t *get_bl_load_info_from_mem_params_desc(void); 35 bl_params_t *get_next_bl_params_from_mem_params_desc(void); 36 37 38 #endif /* LOAD_IMAGE_V2 */ 39 #endif /* __DESC_IMAGE_LOAD_H__ */ 40