Merge pull request #206 from soby-mathew/sm/reset_cntvoff

Reset CNTVOFF_EL2 register before exit into EL1 on warm boot
diff --git a/bl31/context_mgmt.c b/bl31/context_mgmt.c
index 4dd297e..6f27176 100644
--- a/bl31/context_mgmt.c
+++ b/bl31/context_mgmt.c
@@ -250,6 +250,9 @@
 			/* 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 09365fb..d431baa 100644
--- a/include/lib/aarch64/arch_helpers.h
+++ b/include/lib/aarch64/arch_helpers.h
@@ -262,6 +262,8 @@
 
 DEFINE_SYSREG_RW_FUNCS(tpidr_el3)
 
+DEFINE_SYSREG_RW_FUNCS(cntvoff_el2)
+
 DEFINE_SYSREG_RW_FUNCS(vpidr_el2)
 DEFINE_SYSREG_RW_FUNCS(vmpidr_el2)