Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64...
[linux-2.6-microblaze.git] / arch / arm64 / include / asm / el2_setup.h
index b83fb24..3198acb 100644 (file)
        ubfx    x1, x1, #ID_AA64MMFR0_FGT_SHIFT, #4
        cbz     x1, .Lskip_fgt_\@
 
-       msr_s   SYS_HDFGRTR_EL2, xzr
-       msr_s   SYS_HDFGWTR_EL2, xzr
+       mov     x0, xzr
+       mrs     x1, id_aa64dfr0_el1
+       ubfx    x1, x1, #ID_AA64DFR0_PMSVER_SHIFT, #4
+       cmp     x1, #3
+       b.lt    .Lset_fgt_\@
+       /* Disable PMSNEVFR_EL1 read and write traps */
+       orr     x0, x0, #(1 << 62)
+
+.Lset_fgt_\@:
+       msr_s   SYS_HDFGRTR_EL2, x0
+       msr_s   SYS_HDFGWTR_EL2, x0
        msr_s   SYS_HFGRTR_EL2, xzr
        msr_s   SYS_HFGWTR_EL2, xzr
        msr_s   SYS_HFGITR_EL2, xzr