Commit a809fd94 authored by Sandrine Bailleux's avatar Sandrine Bailleux
Browse files

juno: Implement plat_get_syscnt_freq() function

In the Juno port, this function returns the first entry of the
frequency modes table from the memory mapped generic timer.
parent a5355358
No related merge requests found
Showing with 16 additions and 2 deletions
+16 -2
......@@ -31,7 +31,7 @@
#include <arch_helpers.h>
#include <platform.h>
#include <xlat_tables.h>
#include <assert.h>
unsigned char platform_normal_stacks[PLATFORM_STACK_SIZE][PLATFORM_CORE_COUNT]
__attribute__ ((aligned(PLATFORM_CACHE_LINE_SIZE),
......@@ -133,3 +133,16 @@ unsigned long plat_get_ns_image_entrypoint(void)
{
return NS_IMAGE_OFFSET;
}
uint64_t plat_get_syscnt_freq(void)
{
uint64_t counter_base_frequency;
/* Read the frequency from Frequency modes table */
counter_base_frequency = mmio_read_32(SYS_CNTCTL_BASE + CNTFID_OFF);
/* The first entry of the frequency modes table must not be 0 */
assert(counter_base_frequency != 0);
return counter_base_frequency;
}
......@@ -208,7 +208,7 @@ void bl1_platform_setup(void)
io_setup();
/* Enable and initialize the System level generic timer */
mmio_write_32(SYS_CNTCTL_BASE + CNTCR_OFF, CNTCR_EN);
mmio_write_32(SYS_CNTCTL_BASE + CNTCR_OFF, CNTCR_FCREQ(0) | CNTCR_EN);
}
......
......@@ -335,6 +335,7 @@ extern void configure_mmu(meminfo *,
extern void plat_report_exception(unsigned long);
extern unsigned long plat_get_ns_image_entrypoint(void);
extern unsigned long platform_get_stack(unsigned long mpidr);
extern uint64_t plat_get_syscnt_freq(void);
/* Declarations for fvp_gic.c */
extern void gic_cpuif_deactivate(unsigned int);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment