The TCRMASK_EL1 characteristics are:
Mask register to prevent updates of fields in TCR_EL1 on writes to TCR_EL1 or TCRALIAS_EL1.
This register is present only when FEAT_SRMASK is implemented. Otherwise, direct accesses to TCRMASK_EL1 are UNDEFINED.
TCRMASK_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 |
RES0 | MTX1 | MTX0 | DS | TCMA1 | TCMA0 | E0PD1 | E0PD0 | NFD1 | NFD0 | TBID1 | TBID0 | HWU162 | HWU161 | HWU160 | HWU159 | HWU062 | HWU061 | HWU060 | HWU059 | HPD1 | HPD0 | HD | HA | TBI1 | TBI0 | AS | RES0 | IPS | |||
RES0 | TG1 | RES0 | SH1 | RES0 | ORGN1 | RES0 | IRGN1 | EPD1 | A1 | RES0 | T1SZ | RES0 | TG0 | RES0 | SH0 | RES0 | ORGN0 | RES0 | IRGN0 | EPD0 | RES0 | T0SZ |
Reserved, RES0.
Mask bit for MTX1.
MTX1 | Meaning |
---|---|
0b0 |
TCR_EL1.MTX1 is writeable. |
0b1 |
TCR_EL1.MTX1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for MTX0.
MTX0 | Meaning |
---|---|
0b0 |
TCR_EL1.MTX0 is writeable. |
0b1 |
TCR_EL1.MTX0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for DS.
DS | Meaning |
---|---|
0b0 |
TCR_EL1.DS is writeable. |
0b1 |
TCR_EL1.DS is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TCMA1.
TCMA1 | Meaning |
---|---|
0b0 |
TCR_EL1.TCMA1 is writeable. |
0b1 |
TCR_EL1.TCMA1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TCMA0.
TCMA0 | Meaning |
---|---|
0b0 |
TCR_EL1.TCMA0 is writeable. |
0b1 |
TCR_EL1.TCMA0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for E0PD1.
E0PD1 | Meaning |
---|---|
0b0 |
TCR_EL1.E0PD1 is writeable. |
0b1 |
TCR_EL1.E0PD1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for E0PD0.
E0PD0 | Meaning |
---|---|
0b0 |
TCR_EL1.E0PD0 is writeable. |
0b1 |
TCR_EL1.E0PD0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for NFD1.
NFD1 | Meaning |
---|---|
0b0 |
TCR_EL1.NFD1 is writeable. |
0b1 |
TCR_EL1.NFD1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for NFD0.
NFD0 | Meaning |
---|---|
0b0 |
TCR_EL1.NFD0 is writeable. |
0b1 |
TCR_EL1.NFD0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TBID1.
TBID1 | Meaning |
---|---|
0b0 |
TCR_EL1.TBID1 is writeable. |
0b1 |
TCR_EL1.TBID1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TBID0.
TBID0 | Meaning |
---|---|
0b0 |
TCR_EL1.TBID0 is writeable. |
0b1 |
TCR_EL1.TBID0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HWU162.
HWU162 | Meaning |
---|---|
0b0 |
TCR_EL1.HWU162 is writeable. |
0b1 |
TCR_EL1.HWU162 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HWU161.
HWU161 | Meaning |
---|---|
0b0 |
TCR_EL1.HWU161 is writeable. |
0b1 |
TCR_EL1.HWU161 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HWU160.
HWU160 | Meaning |
---|---|
0b0 |
TCR_EL1.HWU160 is writeable. |
0b1 |
TCR_EL1.HWU160 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HWU159.
HWU159 | Meaning |
---|---|
0b0 |
TCR_EL1.HWU159 is writeable. |
0b1 |
TCR_EL1.HWU159 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HWU062.
HWU062 | Meaning |
---|---|
0b0 |
TCR_EL1.HWU062 is writeable. |
0b1 |
TCR_EL1.HWU062 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HWU061.
HWU061 | Meaning |
---|---|
0b0 |
TCR_EL1.HWU061 is writeable. |
0b1 |
TCR_EL1.HWU061 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HWU060.
HWU060 | Meaning |
---|---|
0b0 |
TCR_EL1.HWU060 is writeable. |
0b1 |
TCR_EL1.HWU060 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HWU059.
HWU059 | Meaning |
---|---|
0b0 |
TCR_EL1.HWU059 is writeable. |
0b1 |
TCR_EL1.HWU059 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HPD1.
HPD1 | Meaning |
---|---|
0b0 |
TCR_EL1.HPD1 is writeable. |
0b1 |
TCR_EL1.HPD1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HPD0.
HPD0 | Meaning |
---|---|
0b0 |
TCR_EL1.HPD0 is writeable. |
0b1 |
TCR_EL1.HPD0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HD.
HD | Meaning |
---|---|
0b0 |
TCR_EL1.HD is writeable. |
0b1 |
TCR_EL1.HD is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for HA.
HA | Meaning |
---|---|
0b0 |
TCR_EL1.HA is writeable. |
0b1 |
TCR_EL1.HA is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TBI1.
TBI1 | Meaning |
---|---|
0b0 |
TCR_EL1.TBI1 is writeable. |
0b1 |
TCR_EL1.TBI1 is not writeable. |
The reset behavior of this field is:
Mask bit for TBI0.
TBI0 | Meaning |
---|---|
0b0 |
TCR_EL1.TBI0 is writeable. |
0b1 |
TCR_EL1.TBI0 is not writeable. |
The reset behavior of this field is:
Mask bit for AS.
AS | Meaning |
---|---|
0b0 |
TCR_EL1.AS is writeable. |
0b1 |
TCR_EL1.AS is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for IPS.
IPS | Meaning |
---|---|
0b0 |
TCR_EL1.IPS is writeable. |
0b1 |
TCR_EL1.IPS is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TG1.
TG1 | Meaning |
---|---|
0b0 |
TCR_EL1.TG1 is writeable. |
0b1 |
TCR_EL1.TG1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for SH1.
SH1 | Meaning |
---|---|
0b0 |
TCR_EL1.SH1 is writeable. |
0b1 |
TCR_EL1.SH1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for ORGN1.
ORGN1 | Meaning |
---|---|
0b0 |
TCR_EL1.ORGN1 is writeable. |
0b1 |
TCR_EL1.ORGN1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for IRGN1.
IRGN1 | Meaning |
---|---|
0b0 |
TCR_EL1.IRGN1 is writeable. |
0b1 |
TCR_EL1.IRGN1 is not writeable. |
The reset behavior of this field is:
Mask bit for EPD1.
EPD1 | Meaning |
---|---|
0b0 |
TCR_EL1.EPD1 is writeable. |
0b1 |
TCR_EL1.EPD1 is not writeable. |
The reset behavior of this field is:
Mask bit for A1.
A1 | Meaning |
---|---|
0b0 |
TCR_EL1.A1 is writeable. |
0b1 |
TCR_EL1.A1 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for T1SZ.
T1SZ | Meaning |
---|---|
0b0 |
TCR_EL1.T1SZ is writeable. |
0b1 |
TCR_EL1.T1SZ is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for TG0.
TG0 | Meaning |
---|---|
0b0 |
TCR_EL1.TG0 is writeable. |
0b1 |
TCR_EL1.TG0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for SH0.
SH0 | Meaning |
---|---|
0b0 |
TCR_EL1.SH0 is writeable. |
0b1 |
TCR_EL1.SH0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for ORGN0.
ORGN0 | Meaning |
---|---|
0b0 |
TCR_EL1.ORGN0 is writeable. |
0b1 |
TCR_EL1.ORGN0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for IRGN0.
IRGN0 | Meaning |
---|---|
0b0 |
TCR_EL1.IRGN0 is writeable. |
0b1 |
TCR_EL1.IRGN0 is not writeable. |
The reset behavior of this field is:
Mask bit for EPD0.
EPD0 | Meaning |
---|---|
0b0 |
TCR_EL1.EPD0 is writeable. |
0b1 |
TCR_EL1.EPD0 is not writeable. |
The reset behavior of this field is:
Reserved, RES0.
Mask bit for T0SZ.
T0SZ | Meaning |
---|---|
0b0 |
TCR_EL1.T0SZ is writeable. |
0b1 |
TCR_EL1.T0SZ 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 TCRMASK_EL1 or TCRMASK_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 | 0b0010 | 0b0111 | 0b010 |
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.nTCRMASK_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[0x330]; else X[t, 64] = TCRMASK_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] = TCRMASK_EL2; else X[t, 64] = TCRMASK_EL1; elsif PSTATE.EL == EL3 then X[t, 64] = TCRMASK_EL1;
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b000 | 0b0010 | 0b0111 | 0b010 |
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.nTCRMASK_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[0x330] = X[t, 64]; elsif !IsZero(EffectiveTCRMASK_EL1()) then UNDEFINED; else TCRMASK_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(EffectiveTCRMASK_EL2()) then UNDEFINED; else TCRMASK_EL2 = X[t, 64]; else TCRMASK_EL1 = X[t, 64]; elsif PSTATE.EL == EL3 then TCRMASK_EL1 = X[t, 64];
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b101 | 0b0010 | 0b0111 | 0b010 |
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[0x330]; 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] = TCRMASK_EL1; else UNDEFINED; elsif PSTATE.EL == EL3 then if ELIsInHost(EL2) then X[t, 64] = TCRMASK_EL1; else UNDEFINED;
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b101 | 0b0010 | 0b0111 | 0b010 |
if !IsFeatureImplemented(FEAT_SRMASK) then UNDEFINED; elsif PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EffectiveHCR_EL2_NVx() == '101' then NVMem[0x330] = 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 TCRMASK_EL1 = X[t, 64]; else UNDEFINED; elsif PSTATE.EL == EL3 then if ELIsInHost(EL2) then TCRMASK_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.