2 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
4 * SPDX-License-Identifier: BSD-3-Clause
8 #include <arch_helpers.h>
13 #include <bl_common.h>
17 #include <platform_def.h>
21 /*******************************************************************************
22 * This function is responsible to:
23 * Load SCP_BL2U if platform has defined SCP_BL2U_BASE
24 * Perform platform setup.
26 ******************************************************************************/
29 NOTICE("BL2U: %s\n", version_string
);
30 NOTICE("BL2U: %s\n", build_message
);
34 /* Load the subsequent bootloader images */
35 rc
= bl2u_plat_handle_scp_bl2u();
37 ERROR("Failed to load SCP_BL2U (%i)\n", rc
);
42 /* Perform platform setup in BL2U after loading SCP_BL2U */
43 bl2u_platform_setup();
49 * For AArch32 state BL1 and BL2U share the MMU setup.
50 * Given that BL2U does not map BL1 regions, MMU needs
51 * to be disabled in order to go back to BL1.
53 disable_mmu_icache_secure();
57 * Indicate that BL2U is done and resume back to
58 * normal world via an SMC to BL1.
59 * x1 could be passed to Normal world,
60 * so DO NOT pass any secret information.
62 smc(FWU_SMC_SEC_IMAGE_DONE
, 0, 0, 0, 0, 0, 0, 0);