xref: /rk3399_ARM-atf/plat/arm/board/fvp/fvp_bl1_setup.c (revision 1af540ef2a09797c3a22c40c340facd4b2f47c2f)
13fc4124cSDan Handley /*
2*1af540efSRoberto Vargas  * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
33fc4124cSDan Handley  *
482cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
53fc4124cSDan Handley  */
63fc4124cSDan Handley 
73fc4124cSDan Handley #include <plat_arm.h>
8*1af540efSRoberto Vargas #include <platform.h>
9436223deSYatharth Kochar #include <tbbr_img_def.h>
103fc4124cSDan Handley #include "fvp_private.h"
113fc4124cSDan Handley 
123fc4124cSDan Handley 
133fc4124cSDan Handley /*******************************************************************************
143fc4124cSDan Handley  * Perform any BL1 specific platform actions.
153fc4124cSDan Handley  ******************************************************************************/
163fc4124cSDan Handley void bl1_early_platform_setup(void)
173fc4124cSDan Handley {
183fc4124cSDan Handley 	arm_bl1_early_platform_setup();
193fc4124cSDan Handley 
203fc4124cSDan Handley 	/* Initialize the platform config for future decision making */
213fc4124cSDan Handley 	fvp_config_setup();
223fc4124cSDan Handley 
233fc4124cSDan Handley 	/*
246355f234SVikram Kanigiri 	 * Initialize Interconnect for this cluster during cold boot.
253fc4124cSDan Handley 	 * No need for locks as no other CPU is active.
263fc4124cSDan Handley 	 */
276355f234SVikram Kanigiri 	fvp_interconnect_init();
283fc4124cSDan Handley 	/*
296355f234SVikram Kanigiri 	 * Enable coherency in Interconnect for the primary CPU's cluster.
303fc4124cSDan Handley 	 */
316355f234SVikram Kanigiri 	fvp_interconnect_enable();
323fc4124cSDan Handley }
33436223deSYatharth Kochar 
34436223deSYatharth Kochar /*******************************************************************************
35436223deSYatharth Kochar  * The following function checks if Firmware update is needed,
36436223deSYatharth Kochar  * by checking if TOC in FIP image is valid or not.
37436223deSYatharth Kochar  ******************************************************************************/
38436223deSYatharth Kochar unsigned int bl1_plat_get_next_image_id(void)
39436223deSYatharth Kochar {
40436223deSYatharth Kochar 	if (!arm_io_is_toc_valid())
41436223deSYatharth Kochar 		return NS_BL1U_IMAGE_ID;
42436223deSYatharth Kochar 
43436223deSYatharth Kochar 	return BL2_IMAGE_ID;
44436223deSYatharth Kochar }
45436223deSYatharth Kochar 
46