xref: /rk3399_ARM-atf/plat/arm/board/fvp_ve/fvp_ve_bl2_setup.c (revision c997a8deab55840f17e9813bd335cb65c1dbb5eb)
16393c787SUsama Arif /*
2*8187b95eSJayanth Dodderi Chidanand  * Copyright (c) 2019-2025, Arm Limited. All rights reserved.
36393c787SUsama Arif  *
46393c787SUsama Arif  * SPDX-License-Identifier: BSD-3-Clause
56393c787SUsama Arif  */
66393c787SUsama Arif 
76393c787SUsama Arif #include <drivers/arm/sp804_delay_timer.h>
86393c787SUsama Arif #include <drivers/generic_delay_timer.h>
96393c787SUsama Arif #include <lib/mmio.h>
106393c787SUsama Arif #include <plat/arm/common/plat_arm.h>
116393c787SUsama Arif #include <plat/common/platform.h>
126393c787SUsama Arif #include <platform_def.h>
136393c787SUsama Arif 
146393c787SUsama Arif #include "fvp_ve_private.h"
156393c787SUsama Arif 
bl2_early_platform_setup2(u_register_t arg0,u_register_t arg1,u_register_t arg2,u_register_t arg3)166393c787SUsama Arif void bl2_early_platform_setup2(u_register_t arg0, u_register_t arg1, u_register_t arg2, u_register_t arg3)
176393c787SUsama Arif {
18*8187b95eSJayanth Dodderi Chidanand 	arm_bl2_early_platform_setup(arg0, arg1, arg2, arg3);
196393c787SUsama Arif 
206393c787SUsama Arif 	/* Initialize the platform config for future decision making */
216393c787SUsama Arif 	fvp_ve_config_setup();
226393c787SUsama Arif }
236393c787SUsama Arif 
bl2_platform_setup(void)246393c787SUsama Arif void bl2_platform_setup(void)
256393c787SUsama Arif {
266393c787SUsama Arif 	arm_bl2_platform_setup();
276393c787SUsama Arif 
28fddfb3baSMadhukar Pappireddy #if USE_SP804_TIMER
296393c787SUsama Arif 	/*
306393c787SUsama Arif 	 * Enable the clock override for SP804 timer 0, which means that no
316393c787SUsama Arif 	 * clock dividers are applied and the raw (35 MHz) clock will be used
326393c787SUsama Arif 	 */
336393c787SUsama Arif 	mmio_write_32(V2M_SP810_BASE, FVP_SP810_CTRL_TIM0_OV);
346393c787SUsama Arif 
356393c787SUsama Arif 	/* Initialize delay timer driver using SP804 dual timer 0 */
366393c787SUsama Arif 	sp804_timer_init(V2M_SP804_TIMER0_BASE,
376393c787SUsama Arif 			SP804_TIMER_CLKMULT, SP804_TIMER_CLKDIV);
386393c787SUsama Arif #else
396393c787SUsama Arif 	generic_delay_timer_init();
40fddfb3baSMadhukar Pappireddy #endif /* USE_SP804_TIMER */
416393c787SUsama Arif }
42ed567207SHarrison Mutai 
bl2_plat_handle_post_image_load(unsigned int image_id)43ed567207SHarrison Mutai int bl2_plat_handle_post_image_load(unsigned int image_id)
44ed567207SHarrison Mutai {
45ed567207SHarrison Mutai 	return arm_bl2_plat_handle_post_image_load(image_id);
46ed567207SHarrison Mutai }
47