]> git.proxmox.com Git - mirror_edk2.git/commit - ArmPkg/Drivers/TimerDxe/TimerDxe.c
ArmPkg/TimerDxe: Read timer frequency from CPU
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 10 Sep 2014 18:48:47 +0000 (18:48 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 10 Sep 2014 18:48:47 +0000 (18:48 +0000)
commit7a1e861e2925b9c006bcf8f95bd0d720a8c48328
tree033b8d4668b7d465db776eba9cb93e1e57f8b341
parentca3026d361970847d87a5c6ebb8108b28486e9ec
ArmPkg/TimerDxe: Read timer frequency from CPU

The PCD gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz is used in the
SEC phase (if applicable) to write the platform's counter frequency
to the CNTFRQ system register, as this needs to be done by the highest
exception level implemented.

Under virtualization, we should be able to rely on the host to have
initialized this register to a sane value, as we run at EL1 and only
use the virtual timer, so the PcdArmArchTimerFreqInHz PCD has little
meaning here.

So in either case, by the time we enter the DXE phase, we can use the
CNTFRQ system register to read the frequency instead of looking at the
PCD.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16090 6f19259b-4bc3-4df7-8a09-765794883524
ArmPkg/Drivers/TimerDxe/TimerDxe.c
ArmPkg/Drivers/TimerDxe/TimerDxe.inf