diff --git a/bl31/context_mgmt.c b/bl31/context_mgmt.c
index 4dd297eff831ca4f7548fc7917aa97ebfbcd9301..6f27176c1de25e4b4b9b71e208edbc3847a7e8c1 100644
--- a/bl31/context_mgmt.c
+++ b/bl31/context_mgmt.c
@@ -250,6 +250,9 @@ void cm_prepare_el3_exit(uint32_t security_state)
 			/* Enable EL1 access to timer */
 			write_cnthctl_el2(EL1PCEN_BIT | EL1PCTEN_BIT);
 
+			/* Reset CNTVOFF_EL2 */
+			write_cntvoff_el2(0);
+
 			/* Set VPIDR, VMPIDR to match MIDR, MPIDR */
 			write_vpidr_el2(read_midr_el1());
 			write_vmpidr_el2(read_mpidr_el1());
diff --git a/include/lib/aarch64/arch_helpers.h b/include/lib/aarch64/arch_helpers.h
index 09365fb9efa37eaf9caeb143efcc510308da7244..d431baaf866d6f9f985b54a444eb91346859f5f6 100644
--- a/include/lib/aarch64/arch_helpers.h
+++ b/include/lib/aarch64/arch_helpers.h
@@ -262,6 +262,8 @@ DEFINE_SYSREG_RW_FUNCS(cnthctl_el2)
 
 DEFINE_SYSREG_RW_FUNCS(tpidr_el3)
 
+DEFINE_SYSREG_RW_FUNCS(cntvoff_el2)
+
 DEFINE_SYSREG_RW_FUNCS(vpidr_el2)
 DEFINE_SYSREG_RW_FUNCS(vmpidr_el2)