HFGRTR_EL2, Hypervisor Fine-Grained Read Trap Register
The HFGRTR_EL2 characteristics are:
Purpose
Provides controls for traps of MRS and MRC reads of System registers.
Configuration
This register is present only when FEAT_FGT is implemented. Otherwise, direct accesses to HFGRTR_EL2 are UNDEFINED.
Attributes
HFGRTR_EL2 is a 64-bit register.
Field descriptions
The HFGRTR_EL2 bit assignments are:
Bits [63:54]
Reserved, RES0.
nCSR_EL1, bit [53]
When FEAT_CSRE is implemented:
When FEAT_CSRE is implemented:
Trap MRS reads of multiple System registers. Enables a trap on MRS reads at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
nCSR_EL1 | Meaning |
---|---|
0b0 |
If EL2 is implemented and enabled in the current Security state then MRS reads at EL1 using AArch64 of any of the System registers listed above are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
0b1 |
MRS reads of the System registers listed above are not affected by this bit. |
This bit is ignored by the PE and treated as zero when EL3 is implemented and SCR_EL3.FGTEn == 0b0.
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
nCSR_EL0, bit [52]
When FEAT_CSRE is implemented:
When FEAT_CSRE is implemented:
Trap MRS reads of multiple System registers. Enables a trap on MRS reads at EL1 and EL0 using AArch64 of any of the following AArch64 System registers to EL2:
nCSR_EL0 | Meaning |
---|---|
0b0 |
If EL2 is implemented and enabled in the current Security state, and HCR_EL2.{E2H,TGE} != {1,1}, then MRS reads at EL1 and EL0 using AArch64 of any of the System registers listed above are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
0b1 |
MRS reads of the System registers listed above are not affected by this bit. |
This bit is ignored by the PE and treated as zero when EL3 is implemented and SCR_EL3.FGTEn == 0b0.
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
nCSRIDR_EL0, bit [51]
When FEAT_CSRE is implemented:
When FEAT_CSRE is implemented:
Trap MRS reads of CSRIDR_EL0 at EL1 and EL0 using AArch64 to EL2.
nCSRIDR_EL0 | Meaning |
---|---|
0b0 |
If EL2 is implemented and enabled in the current Security state, and HCR_EL2.{E2H,TGE} != {1,1}, then MRS reads of CSRIDR_EL0 at EL1 and EL0 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
0b1 |
MRS reads of CSRIDR_EL0 are not affected by this bit. |
This bit is ignored by the PE and treated as zero when EL3 is implemented and SCR_EL3.FGTEn == 0b0.
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
nACCDATA_EL1, bit [50]
When FEAT_LS64 is implemented:
When FEAT_LS64 is implemented:
Trap MRS reads of ACCDATA_EL1 at EL1 using AArch64 to EL2.
nACCDATA_EL1 | Meaning |
---|---|
0b0 |
If EL2 is implemented and enabled in the current Security state then MRS reads of ACCDATA_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
0b1 |
MRS reads of ACCDATA_EL1 are not affected by this bit. |
This bit is ignored by the PE and treated as zero when EL3 is implemented and SCR_EL3.FGTEn == 0b0.
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERXADDR_EL1, bit [49]
When FEAT_RAS is implemented:
When FEAT_RAS is implemented:
Trap MRS reads of ERXADDR_EL1 at EL1 using AArch64 to EL2.
ERXADDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERXADDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERXADDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERXPFGCDN_EL1, bit [48]
When FEAT_RASv1p1 is implemented:
When FEAT_RASv1p1 is implemented:
Trap MRS reads of ERXPFGCDN_EL1 at EL1 using AArch64 to EL2.
ERXPFGCDN_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERXPFGCDN_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERXPFGCDN_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERXPFGCTL_EL1, bit [47]
When FEAT_RASv1p1 is implemented:
When FEAT_RASv1p1 is implemented:
Trap MRS reads of ERXPFGCTL_EL1 at EL1 using AArch64 to EL2.
ERXPFGCTL_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERXPFGCTL_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERXPFGCTL_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERXPFGF_EL1, bit [46]
When FEAT_RAS is implemented:
When FEAT_RAS is implemented:
Trap MRS reads of ERXPFGF_EL1 at EL1 using AArch64 to EL2.
ERXPFGF_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERXPFGF_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERXPFGF_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERXMISCn_EL1, bit [45]
When FEAT_RAS is implemented:
When FEAT_RAS is implemented:
Trap MRS reads of ERXMISC<n>_EL1 at EL1 using AArch64 to EL2.
ERXMISCn_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERXMISC<n>_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERXMISC<n>_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERXSTATUS_EL1, bit [44]
When FEAT_RAS is implemented:
When FEAT_RAS is implemented:
Trap MRS reads of ERXSTATUS_EL1 at EL1 using AArch64 to EL2.
ERXSTATUS_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERXSTATUS_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERXSTATUS_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERXCTLR_EL1, bit [43]
When FEAT_RAS is implemented:
When FEAT_RAS is implemented:
Trap MRS reads of ERXCTLR_EL1 at EL1 using AArch64 to EL2.
ERXCTLR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERXCTLR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERXCTLR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERXFR_EL1, bit [42]
When FEAT_RAS is implemented:
When FEAT_RAS is implemented:
Trap MRS reads of ERXFR_EL1 at EL1 using AArch64 to EL2.
ERXFR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERXFR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERXFR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERRSELR_EL1, bit [41]
When FEAT_RAS is implemented:
When FEAT_RAS is implemented:
Trap MRS reads of ERRSELR_EL1 at EL1 using AArch64 to EL2.
ERRSELR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERRSELR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERRSELR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ERRIDR_EL1, bit [40]
When FEAT_RAS is implemented:
When FEAT_RAS is implemented:
Trap MRS reads of ERRIDR_EL1 at EL1 using AArch64 to EL2.
ERRIDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ERRIDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ERRIDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ICC_IGRPENn_EL1, bit [39]
When FEAT_GICv3 is implemented:
When FEAT_GICv3 is implemented:
Trap MRS reads of ICC_IGRPEN<n>_EL1 at EL1 using AArch64 to EL2.
ICC_IGRPENn_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ICC_IGRPEN<n>_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ICC_IGRPEN<n>_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
VBAR_EL1, bit [38]
Trap MRS reads of VBAR_EL1 at EL1 using AArch64 to EL2.
VBAR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of VBAR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of VBAR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
TTBR1_EL1, bit [37]
Trap MRS reads of TTBR1_EL1 at EL1 using AArch64 to EL2.
TTBR1_EL1 | Meaning |
---|---|
0b0 |
MRS reads of TTBR1_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of TTBR1_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
TTBR0_EL1, bit [36]
Trap MRS reads of TTBR0_EL1 at EL1 using AArch64 to EL2.
TTBR0_EL1 | Meaning |
---|---|
0b0 |
MRS reads of TTBR0_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of TTBR0_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
TPIDR_EL0, bit [35]
Trap MRS reads of TPIDR_EL0 at EL1 and EL0 using AArch64 and MRC reads of TPIDRURW at EL0 using AArch32 when EL1 is using AArch64 to EL2.
TPIDR_EL0 | Meaning |
---|---|
0b0 |
MRS reads of TPIDR_EL0 at EL1 and EL0 using AArch64 and MRC reads of TPIDRURW at EL0 using AArch32 are not affected by this bit. |
0b1 | If EL2 is implemented and enabled in the current Security state, HCR_EL2.{E2H,TGE} != {1,1}, EL1 is using AArch64, and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then, unless the read generates a higher priority exception: |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
TPIDRRO_EL0, bit [34]
Trap MRS reads of TPIDRRO_EL0 at EL1 and EL0 using AArch64 and MRC reads of TPIDRURO at EL0 using AArch32 when EL1 is using AArch64 to EL2.
TPIDRRO_EL0 | Meaning |
---|---|
0b0 |
MRS reads of TPIDRRO_EL0 at EL1 and EL0 using AArch64 and MRC reads of TPIDRURO at EL0 using AArch32 are not affected by this bit. |
0b1 | If EL2 is implemented and enabled in the current Security state, HCR_EL2.{E2H,TGE} != {1,1}, EL1 is using AArch64, and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then, unless the read generates a higher priority exception:
|
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
TPIDR_EL1, bit [33]
Trap MRS reads of TPIDR_EL1 at EL1 using AArch64 to EL2.
TPIDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of TPIDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of TPIDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
TCR_EL1, bit [32]
Trap MRS reads of TCR_EL1 at EL1 using AArch64 to EL2.
TCR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of TCR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of TCR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
SCXTNUM_EL0, bit [31]
When FEAT_CSV2 is implemented:
When FEAT_CSV2 is implemented:
Trap MRS reads of SCXTNUM_EL0 at EL1 and EL0 using AArch64 to EL2.
SCXTNUM_EL0 | Meaning |
---|---|
0b0 |
MRS reads of SCXTNUM_EL0 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state, HCR_EL2.{E2H,TGE} != {1,1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of SCXTNUM_EL0 at EL1 and EL0 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
SCXTNUM_EL1, bit [30]
When FEAT_CSV2 is implemented:
When FEAT_CSV2 is implemented:
Trap MRS reads of SCXTNUM_EL1 at EL1 using AArch64 to EL2.
SCXTNUM_EL1 | Meaning |
---|---|
0b0 |
MRS reads of SCXTNUM_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of SCXTNUM_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
SCTLR_EL1, bit [29]
Trap MRS reads of SCTLR_EL1 at EL1 using AArch64 to EL2.
SCTLR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of SCTLR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of SCTLR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
REVIDR_EL1, bit [28]
Trap MRS reads of REVIDR_EL1 at EL1 using AArch64 to EL2.
REVIDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of REVIDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of REVIDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
PAR_EL1, bit [27]
Trap MRS reads of PAR_EL1 at EL1 using AArch64 to EL2.
PAR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of PAR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of PAR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
MPIDR_EL1, bit [26]
Trap MRS reads of MPIDR_EL1 at EL1 using AArch64 to EL2.
MPIDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of MPIDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of MPIDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
MIDR_EL1, bit [25]
Trap MRS reads of MIDR_EL1 at EL1 using AArch64 to EL2.
MIDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of MIDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of MIDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
MAIR_EL1, bit [24]
Trap MRS reads of MAIR_EL1 at EL1 using AArch64 to EL2.
MAIR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of MAIR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of MAIR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
LORSA_EL1, bit [23]
When FEAT_LOR is implemented:
When FEAT_LOR is implemented:
Trap MRS reads of LORSA_EL1 at EL1 using AArch64 to EL2.
LORSA_EL1 | Meaning |
---|---|
0b0 |
MRS reads of LORSA_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of LORSA_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
LORN_EL1, bit [22]
When FEAT_LOR is implemented:
When FEAT_LOR is implemented:
Trap MRS reads of LORN_EL1 at EL1 using AArch64 to EL2.
LORN_EL1 | Meaning |
---|---|
0b0 |
MRS reads of LORN_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of LORN_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
LORID_EL1, bit [21]
When FEAT_LOR is implemented:
When FEAT_LOR is implemented:
Trap MRS reads of LORID_EL1 at EL1 using AArch64 to EL2.
LORID_EL1 | Meaning |
---|---|
0b0 |
MRS reads of LORID_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of LORID_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
LOREA_EL1, bit [20]
When FEAT_LOR is implemented:
When FEAT_LOR is implemented:
Trap MRS reads of LOREA_EL1 at EL1 using AArch64 to EL2.
LOREA_EL1 | Meaning |
---|---|
0b0 |
MRS reads of LOREA_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of LOREA_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
LORC_EL1, bit [19]
When FEAT_LOR is implemented:
When FEAT_LOR is implemented:
Trap MRS reads of LORC_EL1 at EL1 using AArch64 to EL2.
LORC_EL1 | Meaning |
---|---|
0b0 |
MRS reads of LORC_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of LORC_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
ISR_EL1, bit [18]
Trap MRS reads of ISR_EL1 at EL1 using AArch64 to EL2.
ISR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ISR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ISR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
FAR_EL1, bit [17]
Trap MRS reads of FAR_EL1 at EL1 using AArch64 to EL2.
FAR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of FAR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of FAR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
ESR_EL1, bit [16]
Trap MRS reads of ESR_EL1 at EL1 using AArch64 to EL2.
ESR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of ESR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of ESR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
DCZID_EL0, bit [15]
Trap MRS reads of DCZID_EL0 at EL1 and EL0 using AArch64 to EL2.
DCZID_EL0 | Meaning |
---|---|
0b0 |
MRS reads of DCZID_EL0 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state, HCR_EL2.{E2H,TGE} != {1,1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of DCZID_EL0 at EL1 and EL0 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
CTR_EL0, bit [14]
Trap MRS reads of CTR_EL0 at EL1 and EL0 using AArch64 to EL2.
CTR_EL0 | Meaning |
---|---|
0b0 |
MRS reads of CTR_EL0 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state, HCR_EL2.{E2H,TGE} != {1,1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of CTR_EL0 at EL1 and EL0 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
CSSELR_EL1, bit [13]
Trap MRS reads of CSSELR_EL1 at EL1 using AArch64 to EL2.
CSSELR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of CSSELR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of CSSELR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
CPACR_EL1, bit [12]
Trap MRS reads of CPACR_EL1 at EL1 using AArch64 to EL2.
CPACR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of CPACR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of CPACR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
CONTEXTIDR_EL1, bit [11]
Trap MRS reads of CONTEXTIDR_EL1 at EL1 using AArch64 to EL2.
CONTEXTIDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of CONTEXTIDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of CONTEXTIDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
CLIDR_EL1, bit [10]
Trap MRS reads of CLIDR_EL1 at EL1 using AArch64 to EL2.
CLIDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of CLIDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of CLIDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
CCSIDR_EL1, bit [9]
Trap MRS reads of CCSIDR_EL1 at EL1 using AArch64 to EL2.
CCSIDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of CCSIDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of CCSIDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
APIBKey, bit [8]
When FEAT_PAuth is implemented:
When FEAT_PAuth is implemented:
Trap MRS reads of multiple System registers. Enables a trap on MRS reads at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
APIBKey | Meaning |
---|---|
0b0 |
MRS reads of the System registers listed above are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads at EL1 using AArch64 of any of the System registers listed above are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
APIAKey, bit [7]
When FEAT_PAuth is implemented:
When FEAT_PAuth is implemented:
Trap MRS reads of multiple System registers. Enables a trap on MRS reads at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
APIAKey | Meaning |
---|---|
0b0 |
MRS reads of the System registers listed above are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads at EL1 using AArch64 of any of the System registers listed above are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
APGAKey, bit [6]
When FEAT_PAuth is implemented:
When FEAT_PAuth is implemented:
Trap MRS reads of multiple System registers. Enables a trap on MRS reads at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
APGAKey | Meaning |
---|---|
0b0 |
MRS reads of the System registers listed above are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads at EL1 using AArch64 of any of the System registers listed above are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
APDBKey, bit [5]
When FEAT_PAuth is implemented:
When FEAT_PAuth is implemented:
Trap MRS reads of multiple System registers. Enables a trap on MRS reads at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
APDBKey | Meaning |
---|---|
0b0 |
MRS reads of the System registers listed above are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads at EL1 using AArch64 of any of the System registers listed above are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
APDAKey, bit [4]
When FEAT_PAuth is implemented:
When FEAT_PAuth is implemented:
Trap MRS reads of multiple System registers. Enables a trap on MRS reads at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
APDAKey | Meaning |
---|---|
0b0 |
MRS reads of the System registers listed above are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads at EL1 using AArch64 of any of the System registers listed above are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Otherwise:
Otherwise:
Reserved, RES0.
AMAIR_EL1, bit [3]
Trap MRS reads of AMAIR_EL1 at EL1 using AArch64 to EL2.
AMAIR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of AMAIR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of AMAIR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
AIDR_EL1, bit [2]
Trap MRS reads of AIDR_EL1 at EL1 using AArch64 to EL2.
AIDR_EL1 | Meaning |
---|---|
0b0 |
MRS reads of AIDR_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of AIDR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
AFSR1_EL1, bit [1]
Trap MRS reads of AFSR1_EL1 at EL1 using AArch64 to EL2.
AFSR1_EL1 | Meaning |
---|---|
0b0 |
MRS reads of AFSR1_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of AFSR1_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
AFSR0_EL1, bit [0]
Trap MRS reads of AFSR0_EL1 at EL1 using AArch64 to EL2.
AFSR0_EL1 | Meaning |
---|---|
0b0 |
MRS reads of AFSR0_EL1 are not affected by this bit. |
0b1 |
If EL2 is implemented and enabled in the current Security state and either EL3 is not implemented or SCR_EL3.FGTEn == 0b1, then MRS reads of AFSR0_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the read generates a higher priority exception. |
On a Warm reset, in a system where the PE resets into EL2, this field resets to 0.
Accessing the HFGRTR_EL2
Accesses to this register use the following encodings:
MRS <Xt>, HFGRTR_EL2
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b100 | 0b0001 | 0b0001 | 0b100 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EL2Enabled() && HCR_EL2.<NV2,NV> == '11' then return NVMem[0x1B8]; elsif EL2Enabled() && HCR_EL2.NV == '1' then AArch64.SystemAccessTrap(EL2, 0x18); else UNDEFINED; elsif PSTATE.EL == EL2 then if Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.FGTEn == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.FGTEn == '0' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else return HFGRTR_EL2; elsif PSTATE.EL == EL3 then return HFGRTR_EL2;
MSR HFGRTR_EL2, <Xt>
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b100 | 0b0001 | 0b0001 | 0b100 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EL2Enabled() && HCR_EL2.<NV2,NV> == '11' then NVMem[0x1B8] = X[t]; elsif EL2Enabled() && HCR_EL2.NV == '1' then AArch64.SystemAccessTrap(EL2, 0x18); else UNDEFINED; elsif PSTATE.EL == EL2 then if Halted() && HaveEL(EL3) && EDSCR.SDD == '1' && boolean IMPLEMENTATION_DEFINED "EL3 trap priority when SDD == '1'" && SCR_EL3.FGTEn == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.FGTEn == '0' then if Halted() && EDSCR.SDD == '1' then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else HFGRTR_EL2 = X[t]; elsif PSTATE.EL == EL3 then HFGRTR_EL2 = X[t];