1 /*
2 * Copyright (c) 2022, Socionext Inc. All rights reserved.
3 * Copyright (c) 2025, Arm Limited and Contributors. All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8 #include <errno.h>
9
10 #include <common/bl_common.h>
11 #include <common/debug.h>
12 #include <common/desc_image_load.h>
13 #include <common/image_decompress.h>
14 #include <drivers/arm/pl011.h>
15 #include <drivers/io/io_storage.h>
16 #include <lib/xlat_tables/xlat_tables_v2.h>
17 #include <plat/common/platform.h>
18
19 #include <platform_def.h>
20 #include <sq_common.h>
21
22 static console_t console;
23
bl2_early_platform_setup2(u_register_t x0,u_register_t x1,u_register_t x2,u_register_t x3)24 void bl2_early_platform_setup2(u_register_t x0, u_register_t x1,
25 u_register_t x2, u_register_t x3)
26 {
27 /* Initialize the console to provide early debug support */
28 (void)console_pl011_register(PLAT_SQ_BOOT_UART_BASE,
29 PLAT_SQ_BOOT_UART_CLK_IN_HZ,
30 SQ_CONSOLE_BAUDRATE, &console);
31 console_set_scope(&console, CONSOLE_FLAG_BOOT);
32 }
33
bl2_plat_arch_setup(void)34 void bl2_plat_arch_setup(void)
35 {
36 int ret;
37
38 sq_mmap_setup(BL2_BASE, BL2_SIZE, NULL);
39
40 ret = sq_io_setup();
41 if (ret) {
42 ERROR("failed to setup io devices\n");
43 plat_error_handler(ret);
44 }
45 }
46
bl2_platform_setup(void)47 void bl2_platform_setup(void)
48 {
49 }
50
plat_flush_next_bl_params(void)51 void plat_flush_next_bl_params(void)
52 {
53 flush_bl_params_desc();
54 }
55
plat_get_bl_image_load_info(void)56 bl_load_info_t *plat_get_bl_image_load_info(void)
57 {
58 return get_bl_load_info_from_mem_params_desc();
59 }
60
plat_get_next_bl_params(void)61 bl_params_t *plat_get_next_bl_params(void)
62 {
63 return get_next_bl_params_from_mem_params_desc();
64 }
65
bl2_plat_preload_setup(void)66 void bl2_plat_preload_setup(void)
67 {
68 }
69
bl2_plat_handle_pre_image_load(unsigned int image_id)70 int bl2_plat_handle_pre_image_load(unsigned int image_id)
71 {
72 struct image_info *image_info;
73
74 image_info = sq_get_image_info(image_id);
75
76 return mmap_add_dynamic_region(image_info->image_base,
77 image_info->image_base,
78 image_info->image_max_size,
79 MT_MEMORY | MT_RW | MT_NS);
80 }
81
bl2_plat_handle_post_image_load(unsigned int image_id)82 int bl2_plat_handle_post_image_load(unsigned int image_id)
83 {
84 return 0;
85 }
86