Home | History | Annotate | Download | only in tsp
      1 /*
      2  * Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
      3  *
      4  * SPDX-License-Identifier: BSD-3-Clause
      5  */
      6 
      7 #include <arm_def.h>
      8 #include <bl_common.h>
      9 #include <console.h>
     10 #include <plat_arm.h>
     11 #include <platform_def.h>
     12 #include <platform_tsp.h>
     13 
     14 #define BL32_END (unsigned long)(&__BL32_END__)
     15 
     16 /* Weak definitions may be overridden in specific ARM standard platform */
     17 #pragma weak tsp_early_platform_setup
     18 #pragma weak tsp_platform_setup
     19 #pragma weak tsp_plat_arch_setup
     20 
     21 
     22 /*******************************************************************************
     23  * Initialize the UART
     24  ******************************************************************************/
     25 void arm_tsp_early_platform_setup(void)
     26 {
     27 	/*
     28 	 * Initialize a different console than already in use to display
     29 	 * messages from TSP
     30 	 */
     31 	console_init(PLAT_ARM_TSP_UART_BASE, PLAT_ARM_TSP_UART_CLK_IN_HZ,
     32 			ARM_CONSOLE_BAUDRATE);
     33 }
     34 
     35 void tsp_early_platform_setup(void)
     36 {
     37 	arm_tsp_early_platform_setup();
     38 }
     39 
     40 /*******************************************************************************
     41  * Perform platform specific setup placeholder
     42  ******************************************************************************/
     43 void tsp_platform_setup(void)
     44 {
     45 	plat_arm_gic_driver_init();
     46 }
     47 
     48 /*******************************************************************************
     49  * Perform the very early platform specific architectural setup here. At the
     50  * moment this is only intializes the MMU
     51  ******************************************************************************/
     52 void tsp_plat_arch_setup(void)
     53 {
     54 	arm_setup_page_tables(BL32_BASE,
     55 			      (BL32_END - BL32_BASE),
     56 			      BL_CODE_BASE,
     57 			      BL_CODE_END,
     58 			      BL_RO_DATA_BASE,
     59 			      BL_RO_DATA_END
     60 #if USE_COHERENT_MEM
     61 			      , BL_COHERENT_RAM_BASE,
     62 			      BL_COHERENT_RAM_END
     63 #endif
     64 			      );
     65 	enable_mmu_el1(0);
     66 }
     67