The SCTLRMASK_EL1 characteristics are:
Mask register to prevent updates of fields in SCTLR_EL1 on writes to SCTLR_EL1 or SCTLRALIAS_EL1.
This register is present only when FEAT_SRMASK is implemented. Otherwise, direct accesses to SCTLRMASK_EL1 are UNDEFINED.
SCTLRMASK_EL1 is a 64-bit register.
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
TIDCP | SPINTMASK | NMI | EnTP2 | TCSO | TCSO0 | EPAN | EnALS | EnAS0 | EnASR | TME | TME0 | TMT | TMT0 | RES0 | TWEDEL | TWEDEn | DSSBS | ATA | ATA0 | RES0 | TCF | RES0 | TCF0 | ITFSB | BT1 | BT0 | EnFPM | MSCEn | CMOW | ||
EnIA | EnIB | LSMAOE | nTLSMD | EnDA | UCI | EE | E0E | SPAN | EIS | IESB | TSCXT | WXN | nTWE | RES0 | nTWI | UCT | DZE | EnDB | I | EOS | EnRCTX | UMA | SED | ITD | nAA | CP15BEN | SA0 | SA | C | A | M |
Mask bit for TIDCP.
TIDCP | Meaning |
---|---|
0b0 |
SCTLR_EL1.TIDCP is writeable. |
0b1 |
SCTLR_EL1.TIDCP is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for SPINTMASK.
SPINTMASK | Meaning |
---|---|
0b0 |
SCTLR_EL1.SPINTMASK is writeable. |
0b1 |
SCTLR_EL1.SPINTMASK is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for NMI.
NMI | Meaning |
---|---|
0b0 |
SCTLR_EL1.NMI is writeable. |
0b1 |
SCTLR_EL1.NMI is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EnTP2.
EnTP2 | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnTP2 is writeable. |
0b1 |
SCTLR_EL1.EnTP2 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TCSO.
TCSO | Meaning |
---|---|
0b0 |
SCTLR_EL1.TCSO is writeable. |
0b1 |
SCTLR_EL1.TCSO is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TCSO0.
TCSO0 | Meaning |
---|---|
0b0 |
SCTLR_EL1.TCSO0 is writeable. |
0b1 |
SCTLR_EL1.TCSO0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EPAN.
EPAN | Meaning |
---|---|
0b0 |
SCTLR_EL1.EPAN is writeable. |
0b1 |
SCTLR_EL1.EPAN is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EnALS.
EnALS | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnALS is writeable. |
0b1 |
SCTLR_EL1.EnALS is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EnAS0.
EnAS0 | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnAS0 is writeable. |
0b1 |
SCTLR_EL1.EnAS0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EnASR.
EnASR | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnASR is writeable. |
0b1 |
SCTLR_EL1.EnASR is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TME.
TME | Meaning |
---|---|
0b0 |
SCTLR_EL1.TME is writeable. |
0b1 |
SCTLR_EL1.TME is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TME0.
TME0 | Meaning |
---|---|
0b0 |
SCTLR_EL1.TME0 is writeable. |
0b1 |
SCTLR_EL1.TME0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TMT.
TMT | Meaning |
---|---|
0b0 |
SCTLR_EL1.TMT is writeable. |
0b1 |
SCTLR_EL1.TMT is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TMT0.
TMT0 | Meaning |
---|---|
0b0 |
SCTLR_EL1.TMT0 is writeable. |
0b1 |
SCTLR_EL1.TMT0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Mask bit for TWEDEL.
TWEDEL | Meaning |
---|---|
0b0 |
SCTLR_EL1.TWEDEL is writeable. |
0b1 |
SCTLR_EL1.TWEDEL is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TWEDEn.
TWEDEn | Meaning |
---|---|
0b0 |
SCTLR_EL1.TWEDEn is writeable. |
0b1 |
SCTLR_EL1.TWEDEn is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for DSSBS.
DSSBS | Meaning |
---|---|
0b0 |
SCTLR_EL1.DSSBS is writeable. |
0b1 |
SCTLR_EL1.DSSBS is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for ATA.
ATA | Meaning |
---|---|
0b0 |
SCTLR_EL1.ATA is writeable. |
0b1 |
SCTLR_EL1.ATA is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for ATA0.
ATA0 | Meaning |
---|---|
0b0 |
SCTLR_EL1.ATA0 is writeable. |
0b1 |
SCTLR_EL1.ATA0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Mask bit for TCF.
TCF | Meaning |
---|---|
0b0 |
SCTLR_EL1.TCF is writeable. |
0b1 |
SCTLR_EL1.TCF is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Mask bit for TCF0.
TCF0 | Meaning |
---|---|
0b0 |
SCTLR_EL1.TCF0 is writeable. |
0b1 |
SCTLR_EL1.TCF0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for ITFSB.
ITFSB | Meaning |
---|---|
0b0 |
SCTLR_EL1.ITFSB is writeable. |
0b1 |
SCTLR_EL1.ITFSB is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for BT1.
BT1 | Meaning |
---|---|
0b0 |
SCTLR_EL1.BT1 is writeable. |
0b1 |
SCTLR_EL1.BT1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for BT0.
BT0 | Meaning |
---|---|
0b0 |
SCTLR_EL1.BT0 is writeable. |
0b1 |
SCTLR_EL1.BT0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EnFPM.
EnFPM | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnFPM is writeable. |
0b1 |
SCTLR_EL1.EnFPM is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for MSCEn.
MSCEn | Meaning |
---|---|
0b0 |
SCTLR_EL1.MSCEn is writeable. |
0b1 |
SCTLR_EL1.MSCEn is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for CMOW.
CMOW | Meaning |
---|---|
0b0 |
SCTLR_EL1.CMOW is writeable. |
0b1 |
SCTLR_EL1.CMOW is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EnIA.
EnIA | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnIA is writeable. |
0b1 |
SCTLR_EL1.EnIA is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EnIB.
EnIB | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnIB is writeable. |
0b1 |
SCTLR_EL1.EnIB is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for LSMAOE.
LSMAOE | Meaning |
---|---|
0b0 |
SCTLR_EL1.LSMAOE is writeable. |
0b1 |
SCTLR_EL1.LSMAOE is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for nTLSMD.
nTLSMD | Meaning |
---|---|
0b0 |
SCTLR_EL1.nTLSMD is writeable. |
0b1 |
SCTLR_EL1.nTLSMD is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EnDA.
EnDA | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnDA is writeable. |
0b1 |
SCTLR_EL1.EnDA is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for UCI.
UCI | Meaning |
---|---|
0b0 |
SCTLR_EL1.UCI is writeable. |
0b1 |
SCTLR_EL1.UCI is not writeable. |
The reset behavior of this field is:
Mask bit for EE.
EE | Meaning |
---|---|
0b0 |
SCTLR_EL1.EE is writeable. |
0b1 |
SCTLR_EL1.EE is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for E0E.
E0E | Meaning |
---|---|
0b0 |
SCTLR_EL1.E0E is writeable. |
0b1 |
SCTLR_EL1.E0E is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for SPAN.
SPAN | Meaning |
---|---|
0b0 |
SCTLR_EL1.SPAN is writeable. |
0b1 |
SCTLR_EL1.SPAN is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EIS.
EIS | Meaning |
---|---|
0b0 |
SCTLR_EL1.EIS is writeable. |
0b1 |
SCTLR_EL1.EIS is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for IESB.
IESB | Meaning |
---|---|
0b0 |
SCTLR_EL1.IESB is writeable. |
0b1 |
SCTLR_EL1.IESB is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TSCXT.
TSCXT | Meaning |
---|---|
0b0 |
SCTLR_EL1.TSCXT is writeable. |
0b1 |
SCTLR_EL1.TSCXT is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for WXN.
WXN | Meaning |
---|---|
0b0 |
SCTLR_EL1.WXN is writeable. |
0b1 |
SCTLR_EL1.WXN is not writeable. |
The reset behavior of this field is:
Mask bit for nTWE.
nTWE | Meaning |
---|---|
0b0 |
SCTLR_EL1.nTWE is writeable. |
0b1 |
SCTLR_EL1.nTWE is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for nTWI.
nTWI | Meaning |
---|---|
0b0 |
SCTLR_EL1.nTWI is writeable. |
0b1 |
SCTLR_EL1.nTWI is not writeable. |
The reset behavior of this field is:
Mask bit for UCT.
UCT | Meaning |
---|---|
0b0 |
SCTLR_EL1.UCT is writeable. |
0b1 |
SCTLR_EL1.UCT is not writeable. |
The reset behavior of this field is:
Mask bit for DZE.
DZE | Meaning |
---|---|
0b0 |
SCTLR_EL1.DZE is writeable. |
0b1 |
SCTLR_EL1.DZE is not writeable. |
The reset behavior of this field is:
Mask bit for EnDB.
EnDB | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnDB is writeable. |
0b1 |
SCTLR_EL1.EnDB is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for I.
I | Meaning |
---|---|
0b0 |
SCTLR_EL1.I is writeable. |
0b1 |
SCTLR_EL1.I is not writeable. |
The reset behavior of this field is:
Mask bit for EOS.
EOS | Meaning |
---|---|
0b0 |
SCTLR_EL1.EOS is writeable. |
0b1 |
SCTLR_EL1.EOS is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for EnRCTX.
EnRCTX | Meaning |
---|---|
0b0 |
SCTLR_EL1.EnRCTX is writeable. |
0b1 |
SCTLR_EL1.EnRCTX is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for UMA.
UMA | Meaning |
---|---|
0b0 |
SCTLR_EL1.UMA is writeable. |
0b1 |
SCTLR_EL1.UMA is not writeable. |
The reset behavior of this field is:
Mask bit for SED.
SED | Meaning |
---|---|
0b0 |
SCTLR_EL1.SED is writeable. |
0b1 |
SCTLR_EL1.SED is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for ITD.
ITD | Meaning |
---|---|
0b0 |
SCTLR_EL1.ITD is writeable. |
0b1 |
SCTLR_EL1.ITD is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for nAA.
nAA | Meaning |
---|---|
0b0 |
SCTLR_EL1.nAA is writeable. |
0b1 |
SCTLR_EL1.nAA is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for CP15BEN.
CP15BEN | Meaning |
---|---|
0b0 |
SCTLR_EL1.CP15BEN is writeable. |
0b1 |
SCTLR_EL1.CP15BEN is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for SA0.
SA0 | Meaning |
---|---|
0b0 |
SCTLR_EL1.SA0 is writeable. |
0b1 |
SCTLR_EL1.SA0 is not writeable. |
The reset behavior of this field is:
Mask bit for SA.
SA | Meaning |
---|---|
0b0 |
SCTLR_EL1.SA is writeable. |
0b1 |
SCTLR_EL1.SA is not writeable. |
The reset behavior of this field is:
Mask bit for C.
C | Meaning |
---|---|
0b0 |
SCTLR_EL1.C is writeable. |
0b1 |
SCTLR_EL1.C is not writeable. |
The reset behavior of this field is:
Mask bit for A.
A | Meaning |
---|---|
0b0 |
SCTLR_EL1.A is writeable. |
0b1 |
SCTLR_EL1.A is not writeable. |
The reset behavior of this field is:
Mask bit for M.
M | Meaning |
---|---|
0b0 |
SCTLR_EL1.M is writeable. |
0b1 |
SCTLR_EL1.M is not writeable. |
The reset behavior of this field is:
When the Effective value of HCR_EL2.E2H is 1, without explicit synchronization, accesses from EL3 using the accessor name SCTLRMASK_EL1 or SCTLRMASK_EL12 are not guaranteed to be ordered with respect to accesses using the other accessor name.
Accesses to this register use the following encodings in the System register encoding space:
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b000 | 0b0001 | 0b0100 | 0b000 |
if !IsFeatureImplemented(FEAT_SRMASK) then UNDEFINED; elsif PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.SRMASKEn == '0' then UNDEFINED; elsif EL2Enabled() && IsFeatureImplemented(FEAT_FGT2) && ((HaveEL(EL3) && SCR_EL3.FGTEn2 == '0') || HFGRTR2_EL2.nSCTLRMASK_EL1 == '0') then AArch64.SystemAccessTrap(EL2, 0x18); elsif EL2Enabled() && (!IsHCRXEL2Enabled() || HCRX_EL2.SRMASKEn == '0') then AArch64.SystemAccessTrap(EL2, 0x18); elsif HaveEL(EL3) && SCR_EL3.SRMASKEn == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif EffectiveHCR_EL2_NVx() IN {'111'} then X[t, 64] = NVMem[0x318]; else X[t, 64] = SCTLRMASK_EL1; elsif PSTATE.EL == EL2 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.SRMASKEn == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.SRMASKEn == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif ELIsInHost(EL2) then X[t, 64] = SCTLRMASK_EL2; else X[t, 64] = SCTLRMASK_EL1; elsif PSTATE.EL == EL3 then X[t, 64] = SCTLRMASK_EL1;
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b000 | 0b0001 | 0b0100 | 0b000 |
if !IsFeatureImplemented(FEAT_SRMASK) then UNDEFINED; elsif PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.SRMASKEn == '0' then UNDEFINED; elsif EL2Enabled() && IsFeatureImplemented(FEAT_FGT2) && ((HaveEL(EL3) && SCR_EL3.FGTEn2 == '0') || HFGWTR2_EL2.nSCTLRMASK_EL1 == '0') then AArch64.SystemAccessTrap(EL2, 0x18); elsif EL2Enabled() && (!IsHCRXEL2Enabled() || HCRX_EL2.SRMASKEn == '0') then AArch64.SystemAccessTrap(EL2, 0x18); elsif HaveEL(EL3) && SCR_EL3.SRMASKEn == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif EffectiveHCR_EL2_NVx() IN {'111'} then NVMem[0x318] = X[t, 64]; elsif !IsZero(EffectiveSCTLRMASK_EL1()) then UNDEFINED; else SCTLRMASK_EL1 = X[t, 64]; elsif PSTATE.EL == EL2 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.SRMASKEn == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.SRMASKEn == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); elsif ELIsInHost(EL2) then if !IsZero(EffectiveSCTLRMASK_EL2()) then UNDEFINED; else SCTLRMASK_EL2 = X[t, 64]; else SCTLRMASK_EL1 = X[t, 64]; elsif PSTATE.EL == EL3 then SCTLRMASK_EL1 = X[t, 64];
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b101 | 0b0001 | 0b0100 | 0b000 |
if !IsFeatureImplemented(FEAT_SRMASK) then UNDEFINED; elsif PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EffectiveHCR_EL2_NVx() == '101' then X[t, 64] = NVMem[0x318]; elsif EffectiveHCR_EL2_NVx() IN {'xx1'} then AArch64.SystemAccessTrap(EL2, 0x18); else UNDEFINED; elsif PSTATE.EL == EL2 then if ELIsInHost(EL2) then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.SRMASKEn == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.SRMASKEn == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else X[t, 64] = SCTLRMASK_EL1; else UNDEFINED; elsif PSTATE.EL == EL3 then if ELIsInHost(EL2) then X[t, 64] = SCTLRMASK_EL1; else UNDEFINED;
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b101 | 0b0001 | 0b0100 | 0b000 |
if !IsFeatureImplemented(FEAT_SRMASK) then UNDEFINED; elsif PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EffectiveHCR_EL2_NVx() == '101' then NVMem[0x318] = X[t, 64]; elsif EffectiveHCR_EL2_NVx() IN {'xx1'} then AArch64.SystemAccessTrap(EL2, 0x18); else UNDEFINED; elsif PSTATE.EL == EL2 then if ELIsInHost(EL2) then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.SRMASKEn == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.SRMASKEn == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else SCTLRMASK_EL1 = X[t, 64]; else UNDEFINED; elsif PSTATE.EL == EL3 then if ELIsInHost(EL2) then SCTLRMASK_EL1 = X[t, 64]; else UNDEFINED;
15/12/2024 22:27; 5e0a212688c6bd7aee92394b6f5e491b4d0fee1d
Copyright © 2010-2024 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.