← HomeNVHCR_EL2
Nested Virtual Hypervisor Configuration Register
Provides storage for a virtual view of HCR_EL2 under nested virtualization. Except for the TGE bit, all bits in this register are simply stateful and have no effect on PE behavior.
Configuration
This register is present only when FEAT_NV3 is implemented and FEAT_AA64 is implemented. Otherwise, direct accesses to NVHCR_EL2 are UNDEFINED.
Attributes
NVHCR_EL2 is a 64-bit register.
Field descriptions
Bits [63:61]:
TWEDEL, bit [60] when FEAT_TWED is implemented:
Storage for the virtual view of HCR_EL2.TWEDEL under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TWEDEL == '1'.
Otherwise:
TWEDEn, bit [59] when FEAT_TWED is implemented:
Storage for the virtual view of HCR_EL2.TWEDEn under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TWEDEn == '1'.
Otherwise:
TID5, bit [58] when FEAT_MTE2 is implemented:
Storage for the virtual view of HCR_EL2.TID5 under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TID5 == '1'.
Otherwise:
DCT, bit [57] when FEAT_MTE2 is implemented:
Storage for the virtual view of HCR_EL2.DCT under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.DCT == '1'.
Otherwise:
ATA, bit [56] when FEAT_MTE2 is implemented:
Storage for the virtual view of HCR_EL2.ATA under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.ATA == '1'.
Otherwise:
TTLBOS, bit [55] when FEAT_EVT is implemented:
Storage for the virtual view of HCR_EL2.TTLBOS under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TTLBOS == '1'.
Otherwise:
TTLBIS, bit [54] when FEAT_EVT is implemented:
Storage for the virtual view of HCR_EL2.TTLBIS under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TTLBIS == '1'.
Otherwise:
EnSCXT, bit [53] when FEAT_CSV2_2 is implemented:
Storage for the virtual view of HCR_EL2.EnSCXT under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.EnSCXT == '1'.
Otherwise:
TOCU, bit [52] when FEAT_EVT is implemented:
Storage for the virtual view of HCR_EL2.TOCU under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TOCU == '1'.
Otherwise:
AMVOFFEN, bit [51] when FEAT_AMUv1p1 is implemented:
Storage for the virtual view of HCR_EL2.AMVOFFEN under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.AMVOFFEN == '1'.
Otherwise:
TICAB, bit [50] when FEAT_EVT is implemented:
Storage for the virtual view of HCR_EL2.TICAB under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TICAB == '1'.
Otherwise:
TID4, bit [49] when FEAT_EVT is implemented:
Storage for the virtual view of HCR_EL2.TID4 under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TID4 == '1'.
Otherwise:
GPF, bit [48] when FEAT_RME is implemented:
Storage for the virtual view of HCR_EL2.GPF under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.GPF == '1'.
Otherwise:
FIEN, bit [47] when FEAT_RASv1p1 is implemented:
Storage for the virtual view of HCR_EL2.FIEN under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.FIEN == '1'.
Otherwise:
FWB, bit [46] when FEAT_S2FWB is implemented:
Storage for the virtual view of HCR_EL2.FWB under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.FWB == '1'.
Otherwise:
NV2, bit [45] when FEAT_NV2 is implemented:
Storage for the virtual view of HCR_EL2.NV2 under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.NV2 == '1'.
Otherwise:
AT, bit [44] when FEAT_NV is implemented:
Storage for the virtual view of HCR_EL2.AT under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.AT == '1'.
Otherwise:
NV1, bit [43] when FEAT_NV is implemented:
Storage for the virtual view of HCR_EL2.NV1 under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.NV1 == '1'.
Otherwise:
NV, bit [42] when FEAT_NV is implemented:
Storage for the virtual view of HCR_EL2.NV under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.NV == '1'.
Otherwise:
API, bit [41] when FEAT_PAuth is implemented:
Storage for the virtual view of HCR_EL2.API under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.API == '1'.
Otherwise:
APK, bit [40] when FEAT_PAuth is implemented:
Storage for the virtual view of HCR_EL2.APK under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.APK == '1'.
Otherwise:
Bits [39:38]:
TEA, bit [37] when FEAT_RAS is implemented:
Storage for the virtual view of HCR_EL2.TEA under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TEA == '1'.
Otherwise:
TERR, bit [36] when FEAT_RAS is implemented:
Storage for the virtual view of HCR_EL2.TERR under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TERR == '1'.
Otherwise:
TLOR, bit [35] when FEAT_LOR is implemented:
Storage for the virtual view of HCR_EL2.TLOR under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TLOR == '1'.
Otherwise:
E2H, bit [34] when FEAT_VHE is implemented and FEAT_E2H0 is implemented:
Storage for the virtual view of HCR_EL2.E2H under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.E2H == '1'.
when FEAT_VHE is implemented:
Storage for the virtual view of HCR_EL2.E2H under nested virtualization.
This field is RES1.
Otherwise:
ID, bit [33]:
Storage for the virtual view of HCR_EL2.ID under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.ID == '1'.
CD, bit [32]:
Storage for the virtual view of HCR_EL2.CD under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.CD == '1'.
RW, bit [31] when FEAT_AA32EL1 is implemented:
Storage for the virtual view of HCR_EL2.RW under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Otherwise:
TRVM, bit [30]:
Storage for the virtual view of HCR_EL2.TRVM under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TRVM == '1'.
HCD, bit [29] when EL3 is not implemented:
Storage for the virtual view of HCR_EL2.HCD under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- NVHCRMASK_EL2.HCD == '1'.
Otherwise:
TDZ, bit [28]:
Storage for the virtual view of HCR_EL2.TDZ under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TDZ == '1'.
TGE, bit [27]:
Guest TGE control bit.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TGE == '1'.
TVM, bit [26]:
Storage for the virtual view of HCR_EL2.TVM under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TVM == '1'.
TTLB, bit [25]:
Storage for the virtual view of HCR_EL2.TTLB under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TTLB == '1'.
TPU, bit [24]:
Storage for the virtual view of HCR_EL2.TPU under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TPU == '1'.
TPCP, bit [23]:
Storage for the virtual view of HCR_EL2.TPCP under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TPCP == '1'.
TSW, bit [22]:
Storage for the virtual view of HCR_EL2.TSW under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TSW == '1'.
TACR, bit [21]:
Storage for the virtual view of HCR_EL2.TACR under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TACR == '1'.
TIDCP, bit [20]:
Storage for the virtual view of HCR_EL2.TIDCP under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TIDCP == '1'.
TSC, bit [19]:
Storage for the virtual view of HCR_EL2.TSC under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TSC == '1'.
TID3, bit [18]:
Storage for the virtual view of HCR_EL2.TID3 under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TID3 == '1'.
TID2, bit [17]:
Storage for the virtual view of HCR_EL2.TID2 under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TID2 == '1'.
TID1, bit [16]:
Storage for the virtual view of HCR_EL2.TID1 under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TID1 == '1'.
TID0, bit [15] when FEAT_AA32 is implemented:
Storage for the virtual view of HCR_EL2.TID0 under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TID0 == '1'.
Otherwise:
TWE, bit [14]:
Storage for the virtual view of HCR_EL2.TWE under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TWE == '1'.
TWI, bit [13]:
Storage for the virtual view of HCR_EL2.TWI under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.TWI == '1'.
DC, bit [12]:
Storage for the virtual view of HCR_EL2.DC under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.DC == '1'.
Bit [11]:
BSU, bit [10]:
Storage for the virtual view of HCR_EL2.BSU under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.BSU == '1'.
FB, bit [9]:
Storage for the virtual view of HCR_EL2.FB under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.FB == '1'.
VSE, bit [8]:
Storage for the virtual view of HCR_EL2.VSE under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.VSE == '1'.
VI, bit [7]:
Storage for the virtual view of HCR_EL2.VI under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.VI == '1'.
VF, bit [6]:
Storage for the virtual view of HCR_EL2.VF under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.VF == '1'.
AMO, bit [5]:
Storage for the virtual view of HCR_EL2.AMO under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.AMO == '1'.
IMO, bit [4]:
Storage for the virtual view of HCR_EL2.IMO under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.IMO == '1'.
FMO, bit [3]:
Storage for the virtual view of HCR_EL2.FMO under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.FMO == '1'.
PTW, bit [2]:
Storage for the virtual view of HCR_EL2.PTW under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.PTW == '1'.
SWIO, bit [1]:
Storage for the virtual view of HCR_EL2.SWIO under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.SWIO == '1'.
VM, bit [0]:
Storage for the virtual view of HCR_EL2.VM under nested virtualization.
The reset behavior of this field is:
- On a Warm reset,
this field resets
to an architecturally UNKNOWN value.
Accessing this field has the following behavior:
- Access to this field is RO if all the following are true:
- FEAT_SRMASK2 is implemented.
- EL1 is the current Exception level.
- EL3 is not implemented or SCR2_EL3.SRMASK2En == '1'.
- NVHCRMASK_EL2.VM == '1'.
Access Instructions
Accesses to this register use the following encodings in the System register encoding space:
(op0 = 0b11, op1 = 0b100, CRn = 0b0001, CRm = 0b0101, op2 = 0b000)
if !(IsFeatureImplemented(FEAT_NV3) && IsFeatureImplemented(FEAT_AA64)) then
Undefined();
elsif HaveEL(EL3) && PSTATE.EL == EL2 && EL3SDDUndefPriority() && SCR2_EL3().NV3En == '0' then
Undefined();
elsif PSTATE.EL == EL0 then
Undefined();
elsif PSTATE.EL == EL1 then
if IsFeatureImplemented(FEAT_NV3) && EffectiveHCRX_EL2_NVTGE() == '1' then
X{64}(t) = NVMem(0x078);
elsif EffectiveHCR_EL2_NVx() IN {'xx1'} then
AArch64_SystemAccessTrap(EL2, 0x18);
else
Undefined();
end;
elsif PSTATE.EL == EL2 then
if HaveEL(EL3) && IsFeatureImplemented(FEAT_SCR2) && SCR2_EL3().NV3En == '0' then
if EL3SDDUndef() then
Undefined();
else
AArch64_SystemAccessTrap(EL3, 0x18);
end;
else
X{64}(t) = NVHCR_EL2();
end;
elsif PSTATE.EL == EL3 then
X{64}(t) = NVHCR_EL2();
end;
(op0 = 0b11, op1 = 0b100, CRn = 0b0001, CRm = 0b0101, op2 = 0b000)
if !(IsFeatureImplemented(FEAT_NV3) && IsFeatureImplemented(FEAT_AA64)) then
Undefined();
elsif HaveEL(EL3) && PSTATE.EL == EL2 && EL3SDDUndefPriority() && SCR2_EL3().NV3En == '0' then
Undefined();
elsif PSTATE.EL == EL0 then
Undefined();
elsif PSTATE.EL == EL1 then
if IsFeatureImplemented(FEAT_NV3) && EffectiveHCRX_EL2_NVTGE() == '1' then
NVMem(0x078) = X{64}(t);
elsif EffectiveHCR_EL2_NVx() IN {'xx1'} then
AArch64_SystemAccessTrap(EL2, 0x18);
else
Undefined();
end;
elsif PSTATE.EL == EL2 then
if HaveEL(EL3) && IsFeatureImplemented(FEAT_SCR2) && SCR2_EL3().NV3En == '0' then
if EL3SDDUndef() then
Undefined();
else
AArch64_SystemAccessTrap(EL3, 0x18);
end;
else
NVHCR_EL2() = X{64}(t);
end;
elsif PSTATE.EL == EL3 then
NVHCR_EL2() = X{64}(t);
end;
Version 2026.06 — Copyright © 2010-2026 Arm Limited or its affiliates.
This site is provided as a community resource and is NOT affiliated with nor endorsed by Arm Limited.