xref: /rk3399_ARM-atf/plat/xilinx/common/tsp/tsp_plat_setup.c (revision 4c7abf85dfe1f5bb33b98f680143ea3cda539702)
1*4c7abf85SPrasad Kummari /*
2*4c7abf85SPrasad Kummari  * Copyright (c) 2014-2019, Arm Limited and Contributors. All rights reserved.
3*4c7abf85SPrasad Kummari  * Copyright (c) 2023, Advanced Micro Devices. All rights reserved.
4*4c7abf85SPrasad Kummari  *
5*4c7abf85SPrasad Kummari  * SPDX-License-Identifier: BSD-3-Clause
6*4c7abf85SPrasad Kummari  */
7*4c7abf85SPrasad Kummari 
8*4c7abf85SPrasad Kummari #include <common/bl_common.h>
9*4c7abf85SPrasad Kummari #include <common/debug.h>
10*4c7abf85SPrasad Kummari #include <drivers/console.h>
11*4c7abf85SPrasad Kummari #include <plat/arm/common/plat_arm.h>
12*4c7abf85SPrasad Kummari #include <platform_tsp.h>
13*4c7abf85SPrasad Kummari 
14*4c7abf85SPrasad Kummari #include <plat_private.h>
15*4c7abf85SPrasad Kummari 
16*4c7abf85SPrasad Kummari /*******************************************************************************
17*4c7abf85SPrasad Kummari  * Initialize the UART
18*4c7abf85SPrasad Kummari  ******************************************************************************/
19*4c7abf85SPrasad Kummari void tsp_early_platform_setup(void)
20*4c7abf85SPrasad Kummari {
21*4c7abf85SPrasad Kummari 	/*
22*4c7abf85SPrasad Kummari 	 * Register a different console than already in use to display
23*4c7abf85SPrasad Kummari 	 * messages from TSP
24*4c7abf85SPrasad Kummari 	 */
25*4c7abf85SPrasad Kummari 	static console_t tsp_boot_console;
26*4c7abf85SPrasad Kummari 	int32_t rc;
27*4c7abf85SPrasad Kummari 
28*4c7abf85SPrasad Kummari 	rc = console_cdns_register((uintptr_t)UART_BASE,
29*4c7abf85SPrasad Kummari 				   (uint32_t)get_uart_clk(),
30*4c7abf85SPrasad Kummari 				   (uint32_t)UART_BAUDRATE,
31*4c7abf85SPrasad Kummari 				   &tsp_boot_console);
32*4c7abf85SPrasad Kummari 	if (rc == 0) {
33*4c7abf85SPrasad Kummari 		panic();
34*4c7abf85SPrasad Kummari 	}
35*4c7abf85SPrasad Kummari 
36*4c7abf85SPrasad Kummari 	console_set_scope(&tsp_boot_console,
37*4c7abf85SPrasad Kummari 			  CONSOLE_FLAG_RUNTIME | CONSOLE_FLAG_BOOT);
38*4c7abf85SPrasad Kummari }
39*4c7abf85SPrasad Kummari 
40*4c7abf85SPrasad Kummari /*******************************************************************************
41*4c7abf85SPrasad Kummari  * Perform platform specific setup placeholder
42*4c7abf85SPrasad Kummari  ******************************************************************************/
43*4c7abf85SPrasad Kummari void tsp_platform_setup(void)
44*4c7abf85SPrasad Kummari {
45*4c7abf85SPrasad Kummari 	plat_arm_gic_driver_init();
46*4c7abf85SPrasad Kummari 	plat_arm_gic_init();
47*4c7abf85SPrasad Kummari }
48*4c7abf85SPrasad Kummari 
49*4c7abf85SPrasad Kummari /*******************************************************************************
50*4c7abf85SPrasad Kummari  * Perform the very early platform specific architectural setup here. At the
51*4c7abf85SPrasad Kummari  * moment this is only initializes the MMU
52*4c7abf85SPrasad Kummari  ******************************************************************************/
53*4c7abf85SPrasad Kummari void tsp_plat_arch_setup(void)
54*4c7abf85SPrasad Kummari {
55*4c7abf85SPrasad Kummari 	const mmap_region_t bl_regions[] = {
56*4c7abf85SPrasad Kummari 		MAP_REGION_FLAT(BL32_BASE, BL32_END - BL32_BASE,
57*4c7abf85SPrasad Kummari 			MT_MEMORY | MT_RW | MT_SECURE),
58*4c7abf85SPrasad Kummari 		MAP_REGION_FLAT(BL_CODE_BASE, BL_CODE_END - BL_CODE_BASE,
59*4c7abf85SPrasad Kummari 			MT_CODE | MT_SECURE),
60*4c7abf85SPrasad Kummari 		MAP_REGION_FLAT(BL_RO_DATA_BASE, BL_RO_DATA_END - BL_RO_DATA_BASE,
61*4c7abf85SPrasad Kummari 			MT_RO_DATA | MT_SECURE),
62*4c7abf85SPrasad Kummari 		MAP_REGION_FLAT(BL_COHERENT_RAM_BASE,
63*4c7abf85SPrasad Kummari 			BL_COHERENT_RAM_END - BL_COHERENT_RAM_BASE,
64*4c7abf85SPrasad Kummari 			MT_DEVICE | MT_RW | MT_SECURE),
65*4c7abf85SPrasad Kummari 		{0}
66*4c7abf85SPrasad Kummari 	};
67*4c7abf85SPrasad Kummari 
68*4c7abf85SPrasad Kummari 	setup_page_tables(bl_regions, plat_get_mmap());
69*4c7abf85SPrasad Kummari 	enable_mmu_el1(0);
70*4c7abf85SPrasad Kummari }
71