On Mon, May 14, 2012 at 9:07 AM, Marc Zyngier <marc.zyngier at arm.com> wrote: > As the host kernel has to move its timer from virtual to physical, > let's make sure it has access to it. Otherwise, it would blow > at a very early stage. > > Signed-off-by: Marc Zyngier <marc.zyngier at arm.com> > --- > ?arch/arm/kvm/init.S | ? ?5 +++++ > ?1 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/kvm/init.S b/arch/arm/kvm/init.S > index 0bcc739..ce477ba 100644 > --- a/arch/arm/kvm/init.S > +++ b/arch/arm/kvm/init.S > @@ -101,6 +101,11 @@ __do_hyp_init: > ? ? ? ?mcr ? ? p15, 4, r0, c1, c0, 0 ? @ HSCR > ? ? ? ?isb > > + ? ? ? @ make CNTP_* and CNTPCT accessible from PL1 > + ? ? ? mrc ? ? p15, 4, r0, c14, c1, 0 ?@ CNTHCTL > + ? ? ? orr ? ? r0, r0, #3 ? ? ? ? ? ? ?@ PL1PCEN | PL1PCTEN > + ? ? ? mcr ? ? p15, 4, r0, c14, c1, 0 ?@ CNTHCTL > + > ? ? ? ?@ Set stack pointer and return to the kernel > ? ? ? ?pop ? ? {r0, r1, r2, r12} > ? ? ? ?mov ? ? sp, r1 > -- > 1.7.7.1 > I'm not reviewing patches 1 through 4 as I am not experienced with the workings of architected timers in the kernel in general. I suggest sending that preparatory patch sequence separately to the arm-kernel mailing list or somewhere appropriate for this purpose? These bits should be 1 at reset anyway right? Why do we need to set them again? -Christoffer