ID_AA64MMFR4_EL1_E2H0_NI_NV1);
        kvm_set_vm_id_reg(kvm, SYS_ID_AA64MMFR4_EL1, val);
 
-       /* Only limited support for PMU, Debug, BPs and WPs */
+       /* Only limited support for PMU, Debug, BPs, WPs, and HPMN0 */
        val = kvm_read_vm_id_reg(kvm, SYS_ID_AA64DFR0_EL1);
        val &= (NV_FTR(DFR0, PMUVer)    |
                NV_FTR(DFR0, WRPs)      |
                NV_FTR(DFR0, BRPs)      |
-               NV_FTR(DFR0, DebugVer));
+               NV_FTR(DFR0, DebugVer)  |
+               NV_FTR(DFR0, HPMN0));
 
        /* Cap Debug to ARMv8.1 */
        tmp = FIELD_GET(NV_FTR(DFR0, DebugVer), val);