aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitris Papastamos <dimitris.papastamos@arm.com>2018-06-27 09:25:52 +0100
committerGitHub <noreply@github.com>2018-06-27 09:25:52 +0100
commit86e07ae6eca000a17575ff1e5013effbf4a1d5b2 (patch)
treeddf9b2e2e89c2e81f71ee9927cf083248558434d
parenta5298db234c0d4cf22cad2fe53eace069387e549 (diff)
parent3208edcdfe5046333bd9d7e39d26e72de44fdf28 (diff)
downloadplatform_external_arm-trusted-firmware-86e07ae6eca000a17575ff1e5013effbf4a1d5b2.tar.gz
platform_external_arm-trusted-firmware-86e07ae6eca000a17575ff1e5013effbf4a1d5b2.tar.bz2
platform_external_arm-trusted-firmware-86e07ae6eca000a17575ff1e5013effbf4a1d5b2.zip
Merge pull request #1453 from soby-mathew/sm/set_cntfrq_bl1
ARM platforms: Initialize cntfrq for BL1 Firmware update
-rw-r--r--docs/firmware-design.rst2
-rw-r--r--plat/arm/common/arm_bl1_setup.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/docs/firmware-design.rst b/docs/firmware-design.rst
index e3500c27b..8aa762278 100644
--- a/docs/firmware-design.rst
+++ b/docs/firmware-design.rst
@@ -306,6 +306,8 @@ On Arm platforms, BL1 performs the following platform initializations:
- If the BL1 dynamic configuration file, ``TB_FW_CONFIG``, is available, then
load it to the platform defined address and make it available to BL2 via
``arg0``.
+- Configure the system timer and program the `CNTFRQ_EL0` for use by NS-BL1U
+ and NS-BL2U firmware update images.
Firmware Update detection and execution
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/plat/arm/common/arm_bl1_setup.c b/plat/arm/common/arm_bl1_setup.c
index e5e730417..d141f647e 100644
--- a/plat/arm/common/arm_bl1_setup.c
+++ b/plat/arm/common/arm_bl1_setup.c
@@ -118,6 +118,12 @@ void arm_bl1_platform_setup(void)
#if LOAD_IMAGE_V2
arm_load_tb_fw_config();
#endif
+ /*
+ * Allow access to the System counter timer module and program
+ * counter frequency for non secure images during FWU
+ */
+ arm_configure_sys_timer();
+ write_cntfrq_el0(plat_get_syscnt_freq2());
}
void bl1_platform_setup(void)