1 /* 2 * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <generic_delay_timer.h> 8 #include <mmio.h> 9 #include <plat_arm.h> 10 #include <sp804_delay_timer.h> 11 #include <v2m_def.h> 12 #include "fvp_def.h" 13 #include "fvp_private.h" 14 15 void bl2_early_platform_setup2(u_register_t arg0, u_register_t arg1, u_register_t arg2, u_register_t arg3) 16 { 17 arm_bl2_early_platform_setup((uintptr_t)arg0, (meminfo_t *)arg1); 18 19 /* Initialize the platform config for future decision making */ 20 fvp_config_setup(); 21 } 22 23 void bl2_platform_setup(void) 24 { 25 arm_bl2_platform_setup(); 26 27 #if FVP_USE_SP804_TIMER 28 /* Enable the clock override for SP804 timer 0, which means that no 29 * clock dividers are applied and the raw (35 MHz) clock will be used */ 30 mmio_write_32(V2M_SP810_BASE, FVP_SP810_CTRL_TIM0_OV); 31 32 /* Initialize delay timer driver using SP804 dual timer 0 */ 33 sp804_timer_init(V2M_SP804_TIMER0_BASE, 34 SP804_TIMER_CLKMULT, SP804_TIMER_CLKDIV); 35 #else 36 generic_delay_timer_init(); 37 #endif /* FVP_USE_SP804_TIMER */ 38 } 39