ARM Platforms: Update CNTFRQ register in CNTCTLBase frame
Soby Mathew authored
Currently TF-A doesn't initialise CNTFRQ register in CNTCTLBase
frame of the system timer. ARM ARM states that "The instance of
the register in the CNTCTLBase frame must be programmed with this
value as part of system initialization."

The psci_arch_setup() updates the CNTFRQ system register but
according to the ARM ARM, this instance of the register is
independent of the memory mapped instance. This is only an issue
for Normal world software which relies on the memory mapped
instance rather than the system register one.

This patch resolves the issue for ARM platforms.

The patch also solves a related issue on Juno, wherein
CNTBaseN.CNTFRQ can be written and does not reflect the value of
the register in CNTCTLBase frame. Hence this patch additionally
updates CNTFRQ register in the Non Secure frame of the CNTBaseN.

Fixes ARM-Software/tf-issues#593

Change-Id: I09cebb6633688b34d5b1bc349fbde4751025b350
Signed-off-by: default avatarSoby Mathew <soby.mathew@arm.com>
342d6220
Name Last commit Last update
..
aarch32 ARM Platforms: Update CNTFRQ register in CNTCTLBase frame
aarch64 ARM Platforms: Update CNTFRQ register in CNTCTLBase frame
cpus Implement dynamic mitigation for CVE-2018-3639 on Cortex-A76
el3_runtime SDEI: Ensure SDEI handler executes with CVE-2018-3639 mitigation enabled
extensions RAS: Allow individual interrupt registration
libfdt libfdt: Replace v1.4.1 by v1.4.2
pmf lib: fix switch statements to comply with MISRA rules
psci Update PSCI version to 1.1
stdlib types: use int-ll64 for both aarch32 and aarch64
xlat_tables Merge pull request #1415 from antonio-nino-diaz-arm/an/spm-fixes
zlib zlib: add gunzip() support
bakery_lock.h Use SPDX license identifiers
cassert.h Use SPDX license identifiers
coreboot.h Add platform-independent coreboot support library
mmio.h Use SPDX license identifiers
optee_utils.h Add Trusted OS extra image parsing support for ARM standard platforms
runtime_instr.h Use SPDX license identifiers
semihosting.h Use SPDX license identifiers
smcc.h Rename 'smcc' to 'smccc'
smccc.h smccc: Fix checkpatch error in header file
smccc_v1.h Add support for the SMC Calling Convention 2.0
smccc_v2.h Add support for the SMC Calling Convention 2.0
spinlock.h Use SPDX license identifiers
utils.h ARM platforms: Demonstrate mem_protect from el3_runtime
utils_def.h utils: Add BIT_32 and BIT_64 macros