xref: /rk3399_ARM-atf/plat/common/plat_bl1_common.c (revision 566034fc27fc270b240efbef7a7dd9b0caf13c82)
17baff11fSYatharth Kochar /*
27baff11fSYatharth Kochar  * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
37baff11fSYatharth Kochar  *
482cb2c1aSdp-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>
12*566034fcSSoby Mathew #include <platform.h>
137baff11fSYatharth Kochar #include <platform_def.h>
147baff11fSYatharth Kochar 
157baff11fSYatharth Kochar /*
167baff11fSYatharth Kochar  * The following platform functions are weakly defined. They
1748bfb88eSYatharth Kochar  * are default implementations that allow BL1 to compile in
187baff11fSYatharth Kochar  * absence of real definitions. The Platforms may override
197baff11fSYatharth Kochar  * with more complex definitions.
207baff11fSYatharth Kochar  */
217baff11fSYatharth Kochar #pragma weak bl1_plat_get_next_image_id
227baff11fSYatharth Kochar #pragma weak bl1_plat_set_ep_info
237baff11fSYatharth Kochar #pragma weak bl1_plat_get_image_desc
2448bfb88eSYatharth Kochar #pragma weak bl1_plat_fwu_done
25*566034fcSSoby Mathew #pragma weak bl1_plat_handle_pre_image_load
26*566034fcSSoby Mathew #pragma weak bl1_plat_handle_post_image_load
277baff11fSYatharth Kochar 
287baff11fSYatharth Kochar 
297baff11fSYatharth Kochar unsigned int bl1_plat_get_next_image_id(void)
307baff11fSYatharth Kochar {
317baff11fSYatharth Kochar 	/* BL2 load will be done by default. */
327baff11fSYatharth Kochar 	return BL2_IMAGE_ID;
337baff11fSYatharth Kochar }
347baff11fSYatharth Kochar 
357baff11fSYatharth Kochar void bl1_plat_set_ep_info(unsigned int image_id,
367baff11fSYatharth Kochar 		entry_point_info_t *ep_info)
377baff11fSYatharth Kochar {
387baff11fSYatharth Kochar 
397baff11fSYatharth Kochar }
407baff11fSYatharth Kochar 
41*566034fcSSoby Mathew int bl1_plat_handle_pre_image_load(unsigned int image_id)
42*566034fcSSoby Mathew {
43*566034fcSSoby Mathew 	return 0;
44*566034fcSSoby Mathew }
45*566034fcSSoby Mathew 
46*566034fcSSoby Mathew int bl1_plat_handle_post_image_load(unsigned int image_id)
47*566034fcSSoby Mathew {
48*566034fcSSoby Mathew 	return 0;
49*566034fcSSoby Mathew }
50*566034fcSSoby Mathew 
517baff11fSYatharth Kochar /*
527baff11fSYatharth Kochar  * Following is the default definition that always
537baff11fSYatharth Kochar  * returns BL2 image details.
547baff11fSYatharth Kochar  */
557baff11fSYatharth Kochar image_desc_t *bl1_plat_get_image_desc(unsigned int image_id)
567baff11fSYatharth Kochar {
577baff11fSYatharth Kochar 	static image_desc_t bl2_img_desc = BL2_IMAGE_DESC;
587baff11fSYatharth Kochar 	return &bl2_img_desc;
597baff11fSYatharth Kochar }
6048bfb88eSYatharth Kochar 
611f37b944SDan Handley __dead2 void bl1_plat_fwu_done(void *client_cookie, void *reserved)
6248bfb88eSYatharth Kochar {
6348bfb88eSYatharth Kochar 	while (1)
6448bfb88eSYatharth Kochar 		wfi();
6548bfb88eSYatharth Kochar }
6648bfb88eSYatharth Kochar 
6748bfb88eSYatharth Kochar /*
6848bfb88eSYatharth Kochar  * The Platforms must override with real definition.
6948bfb88eSYatharth Kochar  */
7048bfb88eSYatharth Kochar #pragma weak bl1_plat_mem_check
7148bfb88eSYatharth Kochar 
7248bfb88eSYatharth Kochar int bl1_plat_mem_check(uintptr_t mem_base, unsigned int mem_size,
7348bfb88eSYatharth Kochar 		unsigned int flags)
7448bfb88eSYatharth Kochar {
7548bfb88eSYatharth Kochar 	assert(0);
7648bfb88eSYatharth Kochar 	return -ENOMEM;
7748bfb88eSYatharth Kochar }
78