target/arm: Handle HCR_EL2 accesses for FEAT_NV2 bits
FEAT_NV2 defines another new bit in HCR_EL2: NV2. When the feature is enabled, allow this bit to be written in HCR_EL2. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Miguel Luis <miguel.luis@oracle.com>
This commit is contained in:
parent
1274a47fbd
commit
a13cd25d9b
@ -844,6 +844,11 @@ static inline bool isar_feature_aa64_nv(const ARMISARegisters *id)
|
||||
return FIELD_EX64(id->id_aa64mmfr2, ID_AA64MMFR2, NV) != 0;
|
||||
}
|
||||
|
||||
static inline bool isar_feature_aa64_nv2(const ARMISARegisters *id)
|
||||
{
|
||||
return FIELD_EX64(id->id_aa64mmfr2, ID_AA64MMFR2, NV) >= 2;
|
||||
}
|
||||
|
||||
static inline bool isar_feature_aa64_pmuv3p1(const ARMISARegisters *id)
|
||||
{
|
||||
return FIELD_EX64(id->id_aa64dfr0, ID_AA64DFR0, PMUVER) >= 4 &&
|
||||
|
@ -5857,6 +5857,9 @@ static void do_hcr_write(CPUARMState *env, uint64_t value, uint64_t valid_mask)
|
||||
if (cpu_isar_feature(aa64_nv, cpu)) {
|
||||
valid_mask |= HCR_NV | HCR_NV1 | HCR_AT;
|
||||
}
|
||||
if (cpu_isar_feature(aa64_nv2, cpu)) {
|
||||
valid_mask |= HCR_NV2;
|
||||
}
|
||||
}
|
||||
|
||||
if (cpu_isar_feature(any_evt, cpu)) {
|
||||
|
Loading…
Reference in New Issue
Block a user