Commit 2d696d18 authored by Oliver Swede's avatar Oliver Swede
Browse files

plat/arm/board/arm_fpga: Initialize the System Counter



This sets the frequency of the system counter so that the Delay Timer
driver programs the correct value to CNTCRL. This value depends on
the FPGA image being used, and is 10MHz for the initial test image.
Once configured, the BL31 platform setup sequence then enables the
system counter.
Signed-off-by: default avatarOliver Swede <oli.swede@arm.com>
Change-Id: Ieb036a36fd990f350b5953357424a255b8ac5d5a
parent 7ee4db6e
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
*/ */
#include <assert.h> #include <assert.h>
#include <lib/mmio.h>
#include <drivers/generic_delay_timer.h>
#include <plat/common/platform.h> #include <plat/common/platform.h>
#include <platform_def.h> #include <platform_def.h>
...@@ -49,7 +51,11 @@ void bl31_plat_arch_setup(void) ...@@ -49,7 +51,11 @@ void bl31_plat_arch_setup(void)
void bl31_platform_setup(void) void bl31_platform_setup(void)
{ {
/* TODO: initialize GIC and timer using the specifications of the FPGA image */ /* Write frequency to CNTCRL and initialize timer */
generic_delay_timer_init();
mmio_write_32(FPGA_TIMER_BASE, ((1 << 8) | 1UL));
/* TODO: initialize GIC using the specifications of the FPGA image */
} }
entry_point_info_t *bl31_plat_get_next_image_ep_info(uint32_t type) entry_point_info_t *bl31_plat_get_next_image_ep_info(uint32_t type)
...@@ -70,11 +76,7 @@ entry_point_info_t *bl31_plat_get_next_image_ep_info(uint32_t type) ...@@ -70,11 +76,7 @@ entry_point_info_t *bl31_plat_get_next_image_ep_info(uint32_t type)
unsigned int plat_get_syscnt_freq2(void) unsigned int plat_get_syscnt_freq2(void)
{ {
/* return FPGA_TIMER_FREQUENCY;
* TODO: return the frequency of the System Counter as configured by the
* FPGA image
*/
return 0;
} }
void bl31_plat_enable_mmu(uint32_t flags) void bl31_plat_enable_mmu(uint32_t flags)
......
...@@ -30,4 +30,7 @@ ...@@ -30,4 +30,7 @@
#define PLAT_FPGA_CRASH_UART_BASE PLAT_FPGA_BOOT_UART_BASE #define PLAT_FPGA_CRASH_UART_BASE PLAT_FPGA_BOOT_UART_BASE
#define PLAT_FPGA_CRASH_UART_CLK_IN_HZ PLAT_FPGA_BOOT_UART_CLK_IN_HZ #define PLAT_FPGA_CRASH_UART_CLK_IN_HZ PLAT_FPGA_BOOT_UART_CLK_IN_HZ
#define FPGA_TIMER_FREQUENCY 10000000
#define FPGA_TIMER_BASE 0x2a830000
#endif #endif
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