diff options
author | danh-arm <dan.handley@arm.com> | 2015-12-14 18:00:27 +0000 |
---|---|---|
committer | danh-arm <dan.handley@arm.com> | 2015-12-14 18:00:27 +0000 |
commit | 31d5e7f56ea66d2b540fcb25fb27b930dfc45221 (patch) | |
tree | d5cc70b9270853267cfbb213b1d65b39c0d2899d /bl2/bl2_main.c | |
parent | a84deb9c3fe5396d580b695acc09a75d67332559 (diff) | |
parent | d178637d2bac46ef0d227395663c55cc46a25d73 (diff) |
Merge pull request #467 from jcastillo-arm/jc/tbb_oid
Apply new image terminology
Diffstat (limited to 'bl2/bl2_main.c')
-rw-r--r-- | bl2/bl2_main.c | 105 |
1 files changed, 56 insertions, 49 deletions
diff --git a/bl2/bl2_main.c b/bl2/bl2_main.c index f4756405..9ff75d29 100644 --- a/bl2/bl2_main.c +++ b/bl2/bl2_main.c @@ -41,54 +41,61 @@ #include <stdint.h> #include "bl2_private.h" +/* + * Check for platforms that use obsolete image terminology + */ +#ifdef BL30_BASE +# error "BL30_BASE platform define no longer used - please use SCP_BL2_BASE" +#endif + /******************************************************************************* - * Load the BL3-0 image if there's one. - * If a platform does not want to attempt to load BL3-0 image it must leave - * BL30_BASE undefined. - * Return 0 on success or if there's no BL3-0 image to load, a negative error + * Load the SCP_BL2 image if there's one. + * If a platform does not want to attempt to load SCP_BL2 image it must leave + * SCP_BL2_BASE undefined. + * Return 0 on success or if there's no SCP_BL2 image to load, a negative error * code otherwise. ******************************************************************************/ -static int load_bl30(void) +static int load_scp_bl2(void) { int e = 0; -#ifdef BL30_BASE - meminfo_t bl30_mem_info; - image_info_t bl30_image_info; +#ifdef SCP_BL2_BASE + meminfo_t scp_bl2_mem_info; + image_info_t scp_bl2_image_info; /* - * It is up to the platform to specify where BL3-0 should be loaded if + * It is up to the platform to specify where SCP_BL2 should be loaded if * it exists. It could create space in the secure sram or point to a * completely different memory. * * The entry point information is not relevant in this case as the AP - * won't execute the BL3-0 image. + * won't execute the SCP_BL2 image. */ - INFO("BL2: Loading BL3-0\n"); - bl2_plat_get_bl30_meminfo(&bl30_mem_info); - bl30_image_info.h.version = VERSION_1; - e = load_auth_image(&bl30_mem_info, - BL30_IMAGE_ID, - BL30_BASE, - &bl30_image_info, + INFO("BL2: Loading SCP_BL2\n"); + bl2_plat_get_scp_bl2_meminfo(&scp_bl2_mem_info); + scp_bl2_image_info.h.version = VERSION_1; + e = load_auth_image(&scp_bl2_mem_info, + SCP_BL2_IMAGE_ID, + SCP_BL2_BASE, + &scp_bl2_image_info, NULL); if (e == 0) { - /* The subsequent handling of BL3-0 is platform specific */ - e = bl2_plat_handle_bl30(&bl30_image_info); + /* The subsequent handling of SCP_BL2 is platform specific */ + e = bl2_plat_handle_scp_bl2(&scp_bl2_image_info); if (e) { - ERROR("Failure in platform-specific handling of BL3-0 image.\n"); + ERROR("Failure in platform-specific handling of SCP_BL2 image.\n"); } } -#endif /* BL30_BASE */ +#endif /* SCP_BL2_BASE */ return e; } #ifndef EL3_PAYLOAD_BASE /******************************************************************************* - * Load the BL3-1 image. + * Load the BL31 image. * The bl2_to_bl31_params and bl31_ep_info params will be updated with the - * relevant BL3-1 information. + * relevant BL31 information. * Return 0 on success, a negative error code otherwise. ******************************************************************************/ static int load_bl31(bl31_params_t *bl2_to_bl31_params, @@ -97,17 +104,17 @@ static int load_bl31(bl31_params_t *bl2_to_bl31_params, meminfo_t *bl2_tzram_layout; int e; - INFO("BL2: Loading BL3-1\n"); + INFO("BL2: Loading BL31\n"); assert(bl2_to_bl31_params != NULL); assert(bl31_ep_info != NULL); /* Find out how much free trusted ram remains after BL2 load */ bl2_tzram_layout = bl2_plat_sec_mem_layout(); - /* Set the X0 parameter to BL3-1 */ + /* Set the X0 parameter to BL31 */ bl31_ep_info->args.arg0 = (unsigned long)bl2_to_bl31_params; - /* Load the BL3-1 image */ + /* Load the BL31 image */ e = load_auth_image(bl2_tzram_layout, BL31_IMAGE_ID, BL31_BASE, @@ -123,12 +130,12 @@ static int load_bl31(bl31_params_t *bl2_to_bl31_params, } /******************************************************************************* - * Load the BL3-2 image if there's one. - * The bl2_to_bl31_params param will be updated with the relevant BL3-2 + * Load the BL32 image if there's one. + * The bl2_to_bl31_params param will be updated with the relevant BL32 * information. - * If a platform does not want to attempt to load BL3-2 image it must leave + * If a platform does not want to attempt to load BL32 image it must leave * BL32_BASE undefined. - * Return 0 on success or if there's no BL3-2 image to load, a negative error + * Return 0 on success or if there's no BL32 image to load, a negative error * code otherwise. ******************************************************************************/ static int load_bl32(bl31_params_t *bl2_to_bl31_params) @@ -137,11 +144,11 @@ static int load_bl32(bl31_params_t *bl2_to_bl31_params) #ifdef BL32_BASE meminfo_t bl32_mem_info; - INFO("BL2: Loading BL3-2\n"); + INFO("BL2: Loading BL32\n"); assert(bl2_to_bl31_params != NULL); /* - * It is up to the platform to specify where BL3-2 should be loaded if + * It is up to the platform to specify where BL32 should be loaded if * it exists. It could create space in the secure sram or point to a * completely different memory. */ @@ -163,8 +170,8 @@ static int load_bl32(bl31_params_t *bl2_to_bl31_params) } /******************************************************************************* - * Load the BL3-3 image. - * The bl2_to_bl31_params param will be updated with the relevant BL3-3 + * Load the BL33 image. + * The bl2_to_bl31_params param will be updated with the relevant BL33 * information. * Return 0 on success, a negative error code otherwise. ******************************************************************************/ @@ -173,12 +180,12 @@ static int load_bl33(bl31_params_t *bl2_to_bl31_params) meminfo_t bl33_mem_info; int e; - INFO("BL2: Loading BL3-3\n"); + INFO("BL2: Loading BL33\n"); assert(bl2_to_bl31_params != NULL); bl2_plat_get_bl33_meminfo(&bl33_mem_info); - /* Load the BL3-3 image in non-secure memory provided by the platform */ + /* Load the BL33 image in non-secure memory provided by the platform */ e = load_auth_image(&bl33_mem_info, BL33_IMAGE_ID, plat_get_ns_image_entrypoint(), @@ -196,7 +203,7 @@ static int load_bl33(bl31_params_t *bl2_to_bl31_params) /******************************************************************************* * The only thing to do in BL2 is to load further images and pass control to - * BL3-1. The memory occupied by BL2 will be reclaimed by BL3-x stages. BL2 runs + * BL31. The memory occupied by BL2 will be reclaimed by BL3x stages. BL2 runs * entirely in S-EL1. ******************************************************************************/ void bl2_main(void) @@ -219,18 +226,18 @@ void bl2_main(void) /* * Load the subsequent bootloader images */ - e = load_bl30(); + e = load_scp_bl2(); if (e) { - ERROR("Failed to load BL3-0 (%i)\n", e); + ERROR("Failed to load SCP_BL2 (%i)\n", e); plat_error_handler(e); } - /* Perform platform setup in BL2 after loading BL3-0 */ + /* Perform platform setup in BL2 after loading SCP_BL2 */ bl2_platform_setup(); /* * Get a pointer to the memory the platform has set aside to pass - * information to BL3-1. + * information to BL31. */ bl2_to_bl31_params = bl2_plat_get_bl31_params(); bl31_ep_info = bl2_plat_get_bl31_ep_info(); @@ -241,7 +248,7 @@ void bl2_main(void) * images. Just update the BL31 entrypoint info structure to make BL1 * jump to the EL3 payload. * The pointer to the memory the platform has set aside to pass - * information to BL3-1 in the normal boot flow is reused here, even + * information to BL31 in the normal boot flow is reused here, even * though only a fraction of the information contained in the * bl31_params_t structure makes sense in the context of EL3 payloads. * This will be refined in the future. @@ -253,23 +260,23 @@ void bl2_main(void) #else e = load_bl31(bl2_to_bl31_params, bl31_ep_info); if (e) { - ERROR("Failed to load BL3-1 (%i)\n", e); + ERROR("Failed to load BL31 (%i)\n", e); plat_error_handler(e); } e = load_bl32(bl2_to_bl31_params); if (e) { if (e == -EAUTH) { - ERROR("Failed to authenticate BL3-2\n"); + ERROR("Failed to authenticate BL32\n"); plat_error_handler(e); } else { - WARN("Failed to load BL3-2 (%i)\n", e); + WARN("Failed to load BL32 (%i)\n", e); } } e = load_bl33(bl2_to_bl31_params); if (e) { - ERROR("Failed to load BL3-3 (%i)\n", e); + ERROR("Failed to load BL33 (%i)\n", e); plat_error_handler(e); } #endif /* EL3_PAYLOAD_BASE */ @@ -278,9 +285,9 @@ void bl2_main(void) bl2_plat_flush_bl31_params(); /* - * Run BL3-1 via an SMC to BL1. Information on how to pass control to - * the BL3-2 (if present) and BL3-3 software images will be passed to - * BL3-1 as an argument. + * Run BL31 via an SMC to BL1. Information on how to pass control to + * the BL32 (if present) and BL33 software images will be passed to + * BL31 as an argument. */ smc(BL1_SMC_RUN_IMAGE, (unsigned long)bl31_ep_info, 0, 0, 0, 0, 0, 0); } |