aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Dykes <mardyk01@review.trustedfirmware.org>2020-06-25 18:20:21 +0000
committerTrustedFirmware Code Review <review@review.trustedfirmware.org>2020-06-25 18:20:21 +0000
commit3df38b656fcdac2bfd6955ed022bf3ee10ed0d1b (patch)
treeca001aa1a615ec4e3e2afdc4d3b6ba431146c889
parentea9607611634beb577579a4b942712d469f03eee (diff)
parent156dbdd46425d7a33c77d463aab29821dba66366 (diff)
downloadtrusted-firmware-a-3df38b656fcdac2bfd6955ed022bf3ee10ed0d1b.tar.gz
Merge "plat/fvp: Dynamic description of clock freq" into integration
-rw-r--r--plat/arm/board/fvp/fvp_bl31_setup.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/plat/arm/board/fvp/fvp_bl31_setup.c b/plat/arm/board/fvp/fvp_bl31_setup.c
index dc7bfa2dc1..4cc1c1b93d 100644
--- a/plat/arm/board/fvp/fvp_bl31_setup.c
+++ b/plat/arm/board/fvp/fvp_bl31_setup.c
@@ -7,7 +7,9 @@
#include <assert.h>
#include <common/debug.h>
#include <drivers/arm/smmu_v3.h>
+#include <fconf_hw_config_getter.h>
#include <lib/fconf/fconf.h>
+#include <lib/mmio.h>
#include <plat/arm/common/arm_config.h>
#include <plat/arm/common/plat_arm.h>
#include <plat/common/platform.h>
@@ -65,3 +67,26 @@ void __init bl31_plat_arch_setup(void)
fconf_populate("HW_CONFIG", hw_config_dtb);
#endif
}
+
+unsigned int plat_get_syscnt_freq2(void)
+{
+ unsigned int counter_base_frequency;
+
+#if !RESET_TO_BL31 && !BL2_AT_EL3
+ /* Get the frequency through FCONF API for HW_CONFIG */
+ counter_base_frequency = FCONF_GET_PROPERTY(hw_config, cpu_timer, clock_freq);
+ if (counter_base_frequency > 0U) {
+ return counter_base_frequency;
+ }
+#endif
+
+ /* Read the frequency from Frequency modes table */
+ counter_base_frequency = mmio_read_32(ARM_SYS_CNTCTL_BASE + CNTFID_OFF);
+
+ /* The first entry of the frequency modes table must not be 0 */
+ if (counter_base_frequency == 0U) {
+ panic();
+ }
+
+ return counter_base_frequency;
+}