arm-trusted-firmware/plat/xilinx/common/plat_clkfunc.c
Prasad Kummari cc3374ac63 refactor(xilinx): move plat_get_syscnt_freq2 to common file
The code in the AMD-Xilinx platform for Versal and Versal NET is being
refactored to move the plat_get_syscnt_freq2() function to a common
file. This common function is utilized for obtaining the CPU clock
frequency from the platform.

Change-Id: I7a4c3fa43a2941d51cacd259c57b24e545aea848
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
2024-01-04 15:29:49 +01:00

40 lines
827 B
C

/*
* Copyright (c) 2023-2024, Advanced Micro Devices, Inc. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <common/debug.h>
#include <lib/mmio.h>
#include <plat/common/platform.h>
#include <platform_def.h>
#include <plat_private.h>
uint32_t plat_get_syscnt_freq2(void)
{
uint32_t counter_freq = 0;
uint32_t ret = 0;
counter_freq = mmio_read_32(IOU_SCNTRS_BASE +
IOU_SCNTRS_BASE_FREQ_OFFSET);
if (counter_freq != 0U) {
ret = counter_freq;
} else {
INFO("Indicates counter frequency %dHz setting to %dHz\n",
counter_freq, cpu_clock);
ret = cpu_clock;
}
return ret;
}
void set_cnt_freq(void)
{
uint64_t counter_freq;
/* Configure counter frequency */
counter_freq = read_cntfrq_el0();
if (counter_freq == 0U) {
write_cntfrq_el0(plat_get_syscnt_freq2());
}
}