xref: /rk3399_ARM-atf/plat/common/plat_bl1_common.c (revision 82cb2c1ad9897473743f08437d0a3995bed561b9)
17baff11fSYatharth Kochar /*
27baff11fSYatharth Kochar  * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
37baff11fSYatharth Kochar  *
4*82cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
57baff11fSYatharth Kochar  */
648bfb88eSYatharth Kochar 
748bfb88eSYatharth Kochar #include <arch_helpers.h>
848bfb88eSYatharth Kochar #include <assert.h>
97baff11fSYatharth Kochar #include <bl_common.h>
107baff11fSYatharth Kochar #include <debug.h>
1148bfb88eSYatharth Kochar #include <errno.h>
127baff11fSYatharth Kochar #include <platform_def.h>
137baff11fSYatharth Kochar 
147baff11fSYatharth Kochar /*
157baff11fSYatharth Kochar  * The following platform functions are weakly defined. They
1648bfb88eSYatharth Kochar  * are default implementations that allow BL1 to compile in
177baff11fSYatharth Kochar  * absence of real definitions. The Platforms may override
187baff11fSYatharth Kochar  * with more complex definitions.
197baff11fSYatharth Kochar  */
207baff11fSYatharth Kochar #pragma weak bl1_plat_get_next_image_id
217baff11fSYatharth Kochar #pragma weak bl1_plat_set_ep_info
227baff11fSYatharth Kochar #pragma weak bl1_plat_get_image_desc
2348bfb88eSYatharth Kochar #pragma weak bl1_plat_fwu_done
247baff11fSYatharth Kochar 
257baff11fSYatharth Kochar 
267baff11fSYatharth Kochar unsigned int bl1_plat_get_next_image_id(void)
277baff11fSYatharth Kochar {
287baff11fSYatharth Kochar 	/* BL2 load will be done by default. */
297baff11fSYatharth Kochar 	return BL2_IMAGE_ID;
307baff11fSYatharth Kochar }
317baff11fSYatharth Kochar 
327baff11fSYatharth Kochar void bl1_plat_set_ep_info(unsigned int image_id,
337baff11fSYatharth Kochar 		entry_point_info_t *ep_info)
347baff11fSYatharth Kochar {
357baff11fSYatharth Kochar 
367baff11fSYatharth Kochar }
377baff11fSYatharth Kochar 
387baff11fSYatharth Kochar /*
397baff11fSYatharth Kochar  * Following is the default definition that always
407baff11fSYatharth Kochar  * returns BL2 image details.
417baff11fSYatharth Kochar  */
427baff11fSYatharth Kochar image_desc_t *bl1_plat_get_image_desc(unsigned int image_id)
437baff11fSYatharth Kochar {
447baff11fSYatharth Kochar 	static image_desc_t bl2_img_desc = BL2_IMAGE_DESC;
457baff11fSYatharth Kochar 	return &bl2_img_desc;
467baff11fSYatharth Kochar }
4748bfb88eSYatharth Kochar 
481f37b944SDan Handley __dead2 void bl1_plat_fwu_done(void *client_cookie, void *reserved)
4948bfb88eSYatharth Kochar {
5048bfb88eSYatharth Kochar 	while (1)
5148bfb88eSYatharth Kochar 		wfi();
5248bfb88eSYatharth Kochar }
5348bfb88eSYatharth Kochar 
5448bfb88eSYatharth Kochar /*
5548bfb88eSYatharth Kochar  * The Platforms must override with real definition.
5648bfb88eSYatharth Kochar  */
5748bfb88eSYatharth Kochar #pragma weak bl1_plat_mem_check
5848bfb88eSYatharth Kochar 
5948bfb88eSYatharth Kochar int bl1_plat_mem_check(uintptr_t mem_base, unsigned int mem_size,
6048bfb88eSYatharth Kochar 		unsigned int flags)
6148bfb88eSYatharth Kochar {
6248bfb88eSYatharth Kochar 	assert(0);
6348bfb88eSYatharth Kochar 	return -ENOMEM;
6448bfb88eSYatharth Kochar }
65