14353bb20SYann Gautier /* 2*c4dbcb88SYann Gautier * Copyright (c) 2016-2022, ARM Limited and Contributors. All rights reserved. 34353bb20SYann Gautier * 44353bb20SYann Gautier * SPDX-License-Identifier: BSD-3-Clause 54353bb20SYann Gautier */ 64353bb20SYann Gautier 709d40e0eSAntonio Nino Diaz #include <common/bl_common.h> 809d40e0eSAntonio Nino Diaz #include <common/desc_image_load.h> 909d40e0eSAntonio Nino Diaz #include <plat/common/platform.h> 1009d40e0eSAntonio Nino Diaz 111d204ee4SYann Gautier #include <platform_def.h> 121d204ee4SYann Gautier 134353bb20SYann Gautier /******************************************************************************* 144353bb20SYann Gautier * Following descriptor provides BL image/ep information that gets used 154353bb20SYann Gautier * by BL2 to load the images and also subset of this information is 164353bb20SYann Gautier * passed to next BL image. The image loading sequence is managed by 174353bb20SYann Gautier * populating the images in required loading order. The image execution 184353bb20SYann Gautier * sequence is managed by populating the `next_handoff_image_id` with 194353bb20SYann Gautier * the next executable image id. 204353bb20SYann Gautier ******************************************************************************/ 214353bb20SYann Gautier static bl_mem_params_node_t bl2_mem_params_descs[] = { 2229332bcdSYann Gautier /* Fill FW_CONFIG related information if it exists */ 2329332bcdSYann Gautier { 2429332bcdSYann Gautier .image_id = FW_CONFIG_ID, 2529332bcdSYann Gautier SET_STATIC_PARAM_HEAD(ep_info, PARAM_IMAGE_BINARY, 2629332bcdSYann Gautier VERSION_2, entry_point_info_t, 2729332bcdSYann Gautier SECURE | NON_EXECUTABLE), 2829332bcdSYann Gautier SET_STATIC_PARAM_HEAD(image_info, PARAM_IMAGE_BINARY, 2929332bcdSYann Gautier VERSION_2, image_info_t, 3029332bcdSYann Gautier IMAGE_ATTRIB_PLAT_SETUP), 3129332bcdSYann Gautier 3229332bcdSYann Gautier .image_info.image_base = STM32MP_FW_CONFIG_BASE, 3329332bcdSYann Gautier .image_info.image_max_size = STM32MP_FW_CONFIG_MAX_SIZE, 3429332bcdSYann Gautier 3529332bcdSYann Gautier .next_handoff_image_id = INVALID_IMAGE_ID, 3629332bcdSYann Gautier }, 3729332bcdSYann Gautier 384353bb20SYann Gautier /* Fill BL32 related information */ 394353bb20SYann Gautier { 404353bb20SYann Gautier .image_id = BL32_IMAGE_ID, 414353bb20SYann Gautier 424353bb20SYann Gautier SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, 434353bb20SYann Gautier VERSION_2, entry_point_info_t, 444353bb20SYann Gautier SECURE | EXECUTABLE | EP_FIRST_EXE), 454353bb20SYann Gautier 464353bb20SYann Gautier .ep_info.spsr = SPSR_MODE32(MODE32_svc, SPSR_T_ARM, 474353bb20SYann Gautier SPSR_E_LITTLE, 484353bb20SYann Gautier DISABLE_ALL_EXCEPTIONS), 494353bb20SYann Gautier 504353bb20SYann Gautier SET_STATIC_PARAM_HEAD(image_info, PARAM_EP, 514353bb20SYann Gautier VERSION_2, image_info_t, 5229332bcdSYann Gautier IMAGE_ATTRIB_SKIP_LOADING), 5384090d2cSYann Gautier 544353bb20SYann Gautier .next_handoff_image_id = BL33_IMAGE_ID, 554353bb20SYann Gautier }, 564353bb20SYann Gautier 571989a19cSYann Gautier /* Fill BL32 external 1 image related information */ 581989a19cSYann Gautier { 591989a19cSYann Gautier .image_id = BL32_EXTRA1_IMAGE_ID, 601989a19cSYann Gautier 611989a19cSYann Gautier SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, 621989a19cSYann Gautier VERSION_2, entry_point_info_t, 631989a19cSYann Gautier SECURE | NON_EXECUTABLE), 641989a19cSYann Gautier 651989a19cSYann Gautier SET_STATIC_PARAM_HEAD(image_info, PARAM_EP, 661989a19cSYann Gautier VERSION_2, image_info_t, 671989a19cSYann Gautier IMAGE_ATTRIB_SKIP_LOADING), 681989a19cSYann Gautier 691989a19cSYann Gautier .next_handoff_image_id = INVALID_IMAGE_ID, 701989a19cSYann Gautier }, 71*c4dbcb88SYann Gautier #if STM32MP15 721989a19cSYann Gautier /* Fill BL32 external 2 image related information */ 731989a19cSYann Gautier { 741989a19cSYann Gautier .image_id = BL32_EXTRA2_IMAGE_ID, 751989a19cSYann Gautier 761989a19cSYann Gautier SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, 771989a19cSYann Gautier VERSION_2, entry_point_info_t, 781989a19cSYann Gautier SECURE | NON_EXECUTABLE), 791989a19cSYann Gautier 801989a19cSYann Gautier SET_STATIC_PARAM_HEAD(image_info, PARAM_EP, 811989a19cSYann Gautier VERSION_2, image_info_t, 821989a19cSYann Gautier IMAGE_ATTRIB_SKIP_LOADING), 831989a19cSYann Gautier 841989a19cSYann Gautier .next_handoff_image_id = INVALID_IMAGE_ID, 851989a19cSYann Gautier }, 86*c4dbcb88SYann Gautier #endif 8729332bcdSYann Gautier 881d204ee4SYann Gautier /* Fill HW_CONFIG related information if it exists */ 891d204ee4SYann Gautier { 901d204ee4SYann Gautier .image_id = HW_CONFIG_ID, 911d204ee4SYann Gautier SET_STATIC_PARAM_HEAD(ep_info, PARAM_IMAGE_BINARY, 921d204ee4SYann Gautier VERSION_2, entry_point_info_t, 931d204ee4SYann Gautier NON_SECURE | NON_EXECUTABLE), 941d204ee4SYann Gautier SET_STATIC_PARAM_HEAD(image_info, PARAM_IMAGE_BINARY, 951d204ee4SYann Gautier VERSION_2, image_info_t, 9629332bcdSYann Gautier IMAGE_ATTRIB_SKIP_LOADING), 971d204ee4SYann Gautier 981d204ee4SYann Gautier .next_handoff_image_id = INVALID_IMAGE_ID, 991d204ee4SYann Gautier }, 10029332bcdSYann Gautier 10129332bcdSYann Gautier /* Fill TOS_FW_CONFIG related information if it exists */ 1021d204ee4SYann Gautier { 1031d204ee4SYann Gautier .image_id = TOS_FW_CONFIG_ID, 1041d204ee4SYann Gautier SET_STATIC_PARAM_HEAD(ep_info, PARAM_IMAGE_BINARY, 1051d204ee4SYann Gautier VERSION_2, entry_point_info_t, 1061d204ee4SYann Gautier SECURE | NON_EXECUTABLE), 1071d204ee4SYann Gautier SET_STATIC_PARAM_HEAD(image_info, PARAM_IMAGE_BINARY, 1081d204ee4SYann Gautier VERSION_2, image_info_t, 10929332bcdSYann Gautier IMAGE_ATTRIB_SKIP_LOADING), 1101d204ee4SYann Gautier 1111d204ee4SYann Gautier .next_handoff_image_id = INVALID_IMAGE_ID, 1121d204ee4SYann Gautier }, 11329332bcdSYann Gautier 1144353bb20SYann Gautier /* Fill BL33 related information */ 1154353bb20SYann Gautier { 1164353bb20SYann Gautier .image_id = BL33_IMAGE_ID, 1174353bb20SYann Gautier 1184353bb20SYann Gautier SET_STATIC_PARAM_HEAD(ep_info, PARAM_EP, 1194353bb20SYann Gautier VERSION_2, entry_point_info_t, 1204353bb20SYann Gautier NON_SECURE | EXECUTABLE), 1214353bb20SYann Gautier 1224353bb20SYann Gautier .ep_info.spsr = SPSR_MODE32(MODE32_svc, SPSR_T_ARM, 1234353bb20SYann Gautier SPSR_E_LITTLE, 1244353bb20SYann Gautier DISABLE_ALL_EXCEPTIONS), 1254353bb20SYann Gautier 1264353bb20SYann Gautier SET_STATIC_PARAM_HEAD(image_info, PARAM_EP, 12729332bcdSYann Gautier VERSION_2, image_info_t, 12829332bcdSYann Gautier IMAGE_ATTRIB_SKIP_LOADING), 1294353bb20SYann Gautier 1304353bb20SYann Gautier .next_handoff_image_id = INVALID_IMAGE_ID, 1314353bb20SYann Gautier } 1324353bb20SYann Gautier }; 1334353bb20SYann Gautier 1344353bb20SYann Gautier REGISTER_BL_IMAGE_DESCS(bl2_mem_params_descs) 135