← Home

HCRMASK_EL2

Hypervisor Configuration Masking Register

Mask register to prevent updates of fields in HCR_EL2 on direct writes to HCR_EL2.

Configuration

This register is present only when FEAT_SRMASK2 is implemented and FEAT_AA64 is implemented. Otherwise, direct accesses to HCRMASK_EL2 are UNDEFINED.

Attributes

HCRMASK_EL2 is a 64-bit register.

Field descriptions

6362616059585756555453525150494847464544434241403938373635343332
313029282726252423222120191817161514131211109876543210
RES0TWEDELTWEDEnTID5DCTATATTLBOSTTLBISEnSCXTTOCUAMVOFFENTICABTID4GPFFIENFWBNV2ATNV1NVAPIAPKRES0TEATERRTLORE2HIDCD
RWTRVMHCDTDZTGETVMTTLBTPUTPCPTSWTACRTIDCPTSCTID3TID2TID1TID0TWETWIDCRES0BSUFBVSEVIVFAMOIMOFMOPTWSWIOVM

Bits [63:61]:

Reserved, RES0.

TWEDEL, bit [60] when FEAT_TWED is implemented:

Mask bit for TWEDEL.

TWEDELMeaning
0b0

HCR_EL2.TWEDEL is writable.

0b1

HCR_EL2.TWEDEL is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TWEDEn, bit [59] when FEAT_TWED is implemented:

Mask bit for TWEDEn.

TWEDEnMeaning
0b0

HCR_EL2.TWEDEn is writable.

0b1

HCR_EL2.TWEDEn is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TID5, bit [58] when FEAT_MTE2 is implemented:

Mask bit for TID5.

TID5Meaning
0b0

HCR_EL2.TID5 is writable.

0b1

HCR_EL2.TID5 is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

DCT, bit [57] when FEAT_MTE2 is implemented:

Mask bit for DCT.

DCTMeaning
0b0

HCR_EL2.DCT is writable.

0b1

HCR_EL2.DCT is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

ATA, bit [56] when FEAT_MTE2 is implemented:

Mask bit for ATA.

ATAMeaning
0b0

HCR_EL2.ATA is writable.

0b1

HCR_EL2.ATA is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TTLBOS, bit [55] when FEAT_EVT2 is implemented:

Mask bit for TTLBOS.

TTLBOSMeaning
0b0

HCR_EL2.TTLBOS is writable.

0b1

HCR_EL2.TTLBOS is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TTLBIS, bit [54] when FEAT_EVT2 is implemented:

Mask bit for TTLBIS.

TTLBISMeaning
0b0

HCR_EL2.TTLBIS is writable.

0b1

HCR_EL2.TTLBIS is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

EnSCXT, bit [53] when FEAT_CSV2_2 is implemented or FEAT_CSV2_1p2 is implemented:

Mask bit for EnSCXT.

EnSCXTMeaning
0b0

HCR_EL2.EnSCXT is writable.

0b1

HCR_EL2.EnSCXT is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TOCU, bit [52] when FEAT_EVT is implemented:

Mask bit for TOCU.

TOCUMeaning
0b0

HCR_EL2.TOCU is writable.

0b1

HCR_EL2.TOCU is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

AMVOFFEN, bit [51] when FEAT_AMUv1p1 is implemented:

Mask bit for AMVOFFEN.

AMVOFFENMeaning
0b0

HCR_EL2.AMVOFFEN is writable.

0b1

HCR_EL2.AMVOFFEN is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TICAB, bit [50] when FEAT_EVT is implemented:

Mask bit for TICAB.

TICABMeaning
0b0

HCR_EL2.TICAB is writable.

0b1

HCR_EL2.TICAB is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TID4, bit [49] when FEAT_EVT is implemented:

Mask bit for TID4.

TID4Meaning
0b0

HCR_EL2.TID4 is writable.

0b1

HCR_EL2.TID4 is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

GPF, bit [48] when FEAT_RME is implemented:

Mask bit for GPF.

GPFMeaning
0b0

HCR_EL2.GPF is writable.

0b1

HCR_EL2.GPF is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

FIEN, bit [47] when FEAT_RASv1p1 is implemented:

Mask bit for FIEN.

FIENMeaning
0b0

HCR_EL2.FIEN is writable.

0b1

HCR_EL2.FIEN is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

FWB, bit [46] when FEAT_S2FWB is implemented:

Mask bit for FWB.

FWBMeaning
0b0

HCR_EL2.FWB is writable.

0b1

HCR_EL2.FWB is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

NV2, bit [45] when FEAT_NV2 is implemented:

Mask bit for NV2.

NV2Meaning
0b0

HCR_EL2.NV2 is writable.

0b1

HCR_EL2.NV2 is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

AT, bit [44] when FEAT_NV is implemented:

Mask bit for AT.

ATMeaning
0b0

HCR_EL2.AT is writable.

0b1

HCR_EL2.AT is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

NV1, bit [43] when FEAT_NV is implemented:

Mask bit for NV1.

NV1Meaning
0b0

HCR_EL2.NV1 is writable.

0b1

HCR_EL2.NV1 is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

NV, bit [42] when FEAT_NV is implemented:

Mask bit for NV.

NVMeaning
0b0

HCR_EL2.NV is writable.

0b1

HCR_EL2.NV is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

API, bit [41] when FEAT_PAuth is implemented:

Mask bit for API.

APIMeaning
0b0

HCR_EL2.API is writable.

0b1

HCR_EL2.API is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

APK, bit [40] when FEAT_PAuth is implemented:

Mask bit for APK.

APKMeaning
0b0

HCR_EL2.APK is writable.

0b1

HCR_EL2.APK is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

Bits [39:38]:

Reserved, RES0.

TEA, bit [37] when FEAT_RAS is implemented:

Mask bit for TEA.

TEAMeaning
0b0

HCR_EL2.TEA is writable.

0b1

HCR_EL2.TEA is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TERR, bit [36] when FEAT_RAS is implemented:

Mask bit for TERR.

TERRMeaning
0b0

HCR_EL2.TERR is writable.

0b1

HCR_EL2.TERR is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TLOR, bit [35] when FEAT_LOR is implemented:

Mask bit for TLOR.

TLORMeaning
0b0

HCR_EL2.TLOR is writable.

0b1

HCR_EL2.TLOR is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

E2H, bit [34] when FEAT_VHE is implemented and FEAT_E2H0 is implemented:

Mask bit for E2H.

E2HMeaning
0b0

HCR_EL2.E2H is writable.

0b1

HCR_EL2.E2H is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

ID, bit [33]:

Mask bit for ID.

IDMeaning
0b0

HCR_EL2.ID is writable.

0b1

HCR_EL2.ID is not writable.

The reset behavior of this field is:

CD, bit [32]:

Mask bit for CD.

CDMeaning
0b0

HCR_EL2.CD is writable.

0b1

HCR_EL2.CD is not writable.

The reset behavior of this field is:

RW, bit [31] when FEAT_AA32EL1 is implemented:

Mask bit for RW.

RWMeaning
0b0

HCR_EL2.RW is writable.

0b1

HCR_EL2.RW is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TRVM, bit [30]:

Mask bit for TRVM.

TRVMMeaning
0b0

HCR_EL2.TRVM is writable.

0b1

HCR_EL2.TRVM is not writable.

The reset behavior of this field is:

HCD, bit [29] when EL3 is not implemented:

Mask bit for HCD.

HCDMeaning
0b0

HCR_EL2.HCD is writable.

0b1

HCR_EL2.HCD is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TDZ, bit [28]:

Mask bit for TDZ.

TDZMeaning
0b0

HCR_EL2.TDZ is writable.

0b1

HCR_EL2.TDZ is not writable.

The reset behavior of this field is:

TGE, bit [27]:

Mask bit for TGE.

TGEMeaning
0b0

HCR_EL2.TGE is writable.

0b1

HCR_EL2.TGE is not writable.

The reset behavior of this field is:

TVM, bit [26]:

Mask bit for TVM.

TVMMeaning
0b0

HCR_EL2.TVM is writable.

0b1

HCR_EL2.TVM is not writable.

The reset behavior of this field is:

TTLB, bit [25]:

Mask bit for TTLB.

TTLBMeaning
0b0

HCR_EL2.TTLB is writable.

0b1

HCR_EL2.TTLB is not writable.

The reset behavior of this field is:

TPU, bit [24]:

Mask bit for TPU.

TPUMeaning
0b0

HCR_EL2.TPU is writable.

0b1

HCR_EL2.TPU is not writable.

The reset behavior of this field is:

TPCP, bit [23]:

Mask bit for TPCP.

TPCPMeaning
0b0

HCR_EL2.TPCP is writable.

0b1

HCR_EL2.TPCP is not writable.

The reset behavior of this field is:

TSW, bit [22]:

Mask bit for TSW.

TSWMeaning
0b0

HCR_EL2.TSW is writable.

0b1

HCR_EL2.TSW is not writable.

The reset behavior of this field is:

TACR, bit [21]:

Mask bit for TACR.

TACRMeaning
0b0

HCR_EL2.TACR is writable.

0b1

HCR_EL2.TACR is not writable.

The reset behavior of this field is:

TIDCP, bit [20]:

Mask bit for TIDCP.

TIDCPMeaning
0b0

HCR_EL2.TIDCP is writable.

0b1

HCR_EL2.TIDCP is not writable.

The reset behavior of this field is:

TSC, bit [19]:

Mask bit for TSC.

TSCMeaning
0b0

HCR_EL2.TSC is writable.

0b1

HCR_EL2.TSC is not writable.

The reset behavior of this field is:

TID3, bit [18]:

Mask bit for TID3.

TID3Meaning
0b0

HCR_EL2.TID3 is writable.

0b1

HCR_EL2.TID3 is not writable.

The reset behavior of this field is:

TID2, bit [17]:

Mask bit for TID2.

TID2Meaning
0b0

HCR_EL2.TID2 is writable.

0b1

HCR_EL2.TID2 is not writable.

The reset behavior of this field is:

TID1, bit [16]:

Mask bit for TID1.

TID1Meaning
0b0

HCR_EL2.TID1 is writable.

0b1

HCR_EL2.TID1 is not writable.

The reset behavior of this field is:

TID0, bit [15] when FEAT_AA32 is implemented:

Mask bit for TID0.

TID0Meaning
0b0

HCR_EL2.TID0 is writable.

0b1

HCR_EL2.TID0 is not writable.

The reset behavior of this field is:

Otherwise:

Reserved, RES0.

TWE, bit [14]:

Mask bit for TWE.

TWEMeaning
0b0

HCR_EL2.TWE is writable.

0b1

HCR_EL2.TWE is not writable.

The reset behavior of this field is:

TWI, bit [13]:

Mask bit for TWI.

TWIMeaning
0b0

HCR_EL2.TWI is writable.

0b1

HCR_EL2.TWI is not writable.

The reset behavior of this field is:

DC, bit [12]:

Mask bit for DC.

DCMeaning
0b0

HCR_EL2.DC is writable.

0b1

HCR_EL2.DC is not writable.

The reset behavior of this field is:

Bit [11]:

Reserved, RES0.

BSU, bit [10]:

Mask bit for BSU.

BSUMeaning
0b0

HCR_EL2.BSU is writable.

0b1

HCR_EL2.BSU is not writable.

The reset behavior of this field is:

FB, bit [9]:

Mask bit for FB.

FBMeaning
0b0

HCR_EL2.FB is writable.

0b1

HCR_EL2.FB is not writable.

The reset behavior of this field is:

VSE, bit [8]:

Mask bit for VSE.

VSEMeaning
0b0

HCR_EL2.VSE is writable.

0b1

HCR_EL2.VSE is not writable.

The reset behavior of this field is:

VI, bit [7]:

Mask bit for VI.

VIMeaning
0b0

HCR_EL2.VI is writable.

0b1

HCR_EL2.VI is not writable.

The reset behavior of this field is:

VF, bit [6]:

Mask bit for VF.

VFMeaning
0b0

HCR_EL2.VF is writable.

0b1

HCR_EL2.VF is not writable.

The reset behavior of this field is:

AMO, bit [5]:

Mask bit for AMO.

AMOMeaning
0b0

HCR_EL2.AMO is writable.

0b1

HCR_EL2.AMO is not writable.

The reset behavior of this field is:

IMO, bit [4]:

Mask bit for IMO.

IMOMeaning
0b0

HCR_EL2.IMO is writable.

0b1

HCR_EL2.IMO is not writable.

The reset behavior of this field is:

FMO, bit [3]:

Mask bit for FMO.

FMOMeaning
0b0

HCR_EL2.FMO is writable.

0b1

HCR_EL2.FMO is not writable.

The reset behavior of this field is:

PTW, bit [2]:

Mask bit for PTW.

PTWMeaning
0b0

HCR_EL2.PTW is writable.

0b1

HCR_EL2.PTW is not writable.

The reset behavior of this field is:

SWIO, bit [1]:

Mask bit for SWIO.

SWIOMeaning
0b0

HCR_EL2.SWIO is writable.

0b1

HCR_EL2.SWIO is not writable.

The reset behavior of this field is:

VM, bit [0]:

Mask bit for VM.

VMMeaning
0b0

HCR_EL2.VM is writable.

0b1

HCR_EL2.VM is not writable.

The reset behavior of this field is:

Access Instructions

Accesses to this register use the following encodings in the System register encoding space:

MRS <Xt>, HCRMASK_EL2

(op0 = 0b11, op1 = 0b100, CRn = 0b0001, CRm = 0b0101, op2 = 0b110)

if !(IsFeatureImplemented(FEAT_SRMASK2) && IsFeatureImplemented(FEAT_AA64)) then Undefined(); elsif HaveEL(EL3) && PSTATE.EL == EL2 && EL3SDDUndefPriority() && SCR2_EL3().SRMASK2En == '0' then Undefined(); elsif PSTATE.EL == EL0 then Undefined(); elsif PSTATE.EL == EL1 then if EffectiveHCRX_EL2_NVTGE() == '1' && (!HaveEL(EL3) || SCR2_EL3().SRMASK2En == '1') then X{64}(t) = NVHCRMASK_EL2(); 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().SRMASK2En == '0' then if EL3SDDUndef() then Undefined(); else AArch64_SystemAccessTrap(EL3, 0x18); end; else X{64}(t) = HCRMASK_EL2(); end; elsif PSTATE.EL == EL3 then X{64}(t) = HCRMASK_EL2(); end;

MSR HCRMASK_EL2, <Xt>

(op0 = 0b11, op1 = 0b100, CRn = 0b0001, CRm = 0b0101, op2 = 0b110)

if !(IsFeatureImplemented(FEAT_SRMASK2) && IsFeatureImplemented(FEAT_AA64)) then Undefined(); elsif HaveEL(EL3) && PSTATE.EL == EL2 && EL3SDDUndefPriority() && SCR2_EL3().SRMASK2En == '0' then Undefined(); elsif PSTATE.EL == EL0 then Undefined(); elsif PSTATE.EL == EL1 then if EffectiveHCRX_EL2_NVTGE() == '1' && (!HaveEL(EL3) || SCR2_EL3().SRMASK2En == '1') then if !IsZero(NVHCRMASK_EL2()) then Undefined(); else NVHCRMASK_EL2() = X{64}(t); end; 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().SRMASK2En == '0' then if EL3SDDUndef() then Undefined(); else AArch64_SystemAccessTrap(EL3, 0x18); end; elsif !IsZero(HCRMASK_EL2()) then Undefined(); else HCRMASK_EL2() = X{64}(t); end; elsif PSTATE.EL == EL3 then HCRMASK_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.