mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-17 01:54:22 +00:00
fix(rpi3): manually populate CNTFRQ reg
The rpi3 does not initialize the generic timer in BL1, which is now required to use the delay timer in the dTPM driver. This change sets the counter frequency register (CNTFRQ) with the rpi3's system counter frequency value, as a prerequisite for timer initialization, and then initializes the generic timer all during BL1 setup. Change-Id: I4e2475b63ce4a97653202f94f506b5d3edc4c1a7 Signed-off-by: Abhi Singh <abhi.singh@arm.com>
This commit is contained in:
parent
e2c3611cf1
commit
11dff59946
2 changed files with 13 additions and 1 deletions
|
@ -23,6 +23,7 @@ PLAT_BL_COMMON_SOURCES := drivers/ti/uart/aarch64/16550_console.S \
|
|||
BL1_SOURCES += drivers/io/io_fip.c \
|
||||
drivers/io/io_memmap.c \
|
||||
drivers/io/io_storage.c \
|
||||
drivers/delay_timer/generic_delay_timer.c \
|
||||
lib/cpus/aarch64/cortex_a53.S \
|
||||
plat/common/aarch64/platform_mp_stack.S \
|
||||
plat/rpi/rpi3/rpi3_bl1_setup.c \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2015-2024, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -13,6 +13,8 @@
|
|||
#include <lib/mmio.h>
|
||||
#include <lib/xlat_tables/xlat_mmu_helpers.h>
|
||||
#include <lib/xlat_tables/xlat_tables_defs.h>
|
||||
#include <drivers/generic_delay_timer.h>
|
||||
#include <plat/common/platform.h>
|
||||
|
||||
#include <rpi_shared.h>
|
||||
|
||||
|
@ -37,6 +39,15 @@ void bl1_early_platform_setup(void)
|
|||
/* Initialize the console to provide early debug support */
|
||||
rpi3_console_init();
|
||||
|
||||
/*
|
||||
* Write the System Timer Frequency to CNTFRQ manually, this
|
||||
* is required to use the delay_timer functionality.
|
||||
*/
|
||||
write_cntfrq_el0(plat_get_syscnt_freq2());
|
||||
|
||||
/* Enable arch timer */
|
||||
generic_delay_timer_init();
|
||||
|
||||
/* Allow BL1 to see the whole Trusted RAM */
|
||||
bl1_tzram_layout.total_base = BL_RAM_BASE;
|
||||
bl1_tzram_layout.total_size = BL_RAM_SIZE;
|
||||
|
|
Loading…
Add table
Reference in a new issue