diff options
Diffstat (limited to 'plat')
-rw-r--r-- | plat/arm/board/arm_fpga/fpga_bl31_setup.c | 14 | ||||
-rw-r--r-- | plat/arm/board/arm_fpga/fpga_def.h | 3 |
2 files changed, 11 insertions, 6 deletions
diff --git a/plat/arm/board/arm_fpga/fpga_bl31_setup.c b/plat/arm/board/arm_fpga/fpga_bl31_setup.c index b641ad194..26228f69e 100644 --- a/plat/arm/board/arm_fpga/fpga_bl31_setup.c +++ b/plat/arm/board/arm_fpga/fpga_bl31_setup.c @@ -5,6 +5,8 @@ */ #include <assert.h> +#include <lib/mmio.h> +#include <drivers/generic_delay_timer.h> #include <plat/common/platform.h> #include <platform_def.h> @@ -49,7 +51,11 @@ void bl31_plat_arch_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) @@ -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) { - /* - * TODO: return the frequency of the System Counter as configured by the - * FPGA image - */ - return 0; + return FPGA_TIMER_FREQUENCY; } void bl31_plat_enable_mmu(uint32_t flags) diff --git a/plat/arm/board/arm_fpga/fpga_def.h b/plat/arm/board/arm_fpga/fpga_def.h index 8c542e095..0f817fe9d 100644 --- a/plat/arm/board/arm_fpga/fpga_def.h +++ b/plat/arm/board/arm_fpga/fpga_def.h @@ -30,4 +30,7 @@ #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 FPGA_TIMER_FREQUENCY 10000000 +#define FPGA_TIMER_BASE 0x2a830000 + #endif |