1 /* 2 * Copyright (c) 2023-2024, Advanced Micro Devices, Inc. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 #include <common/debug.h> 7 #include <lib/mmio.h> 8 #include <plat/common/platform.h> 9 10 #include <platform_def.h> 11 #include <plat_private.h> 12 plat_get_syscnt_freq2(void)13uint32_t plat_get_syscnt_freq2(void) 14 { 15 uint32_t counter_freq = 0; 16 uint32_t ret = 0; 17 18 counter_freq = mmio_read_32(IOU_SCNTRS_BASE + 19 IOU_SCNTRS_BASE_FREQ_OFFSET); 20 if (counter_freq != 0U) { 21 ret = counter_freq; 22 } else { 23 INFO("Indicates counter frequency %dHz setting to %dHz\n", 24 counter_freq, cpu_clock); 25 ret = cpu_clock; 26 } 27 28 return ret; 29 } 30 set_cnt_freq(void)31void set_cnt_freq(void) 32 { 33 uint64_t counter_freq; 34 35 /* Configure counter frequency */ 36 counter_freq = read_cntfrq_el0(); 37 if (counter_freq == 0U) { 38 write_cntfrq_el0(plat_get_syscnt_freq2()); 39 } 40 } 41