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