The HDFGWTR_EL2 characteristics are:
Provides controls for traps of MSR and MCR writes of debug, trace, PMU, and Statistical Profiling System registers.
This register is present only when FEAT_FGT is implemented. Otherwise, direct accesses to HDFGWTR_EL2 are UNDEFINED.
If EL2 is not implemented, this register is RES0 from EL3.
HDFGWTR_EL2 is a 64-bit register.
Reserved, RES0.
Trap MSR writes of PMSNEVFR_EL1 at EL1 using AArch64 to EL2.
| nPMSNEVFR_EL1 | Meaning |
|---|---|
| 0b0 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMSNEVFR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
| 0b1 |
MSR writes of PMSNEVFR_EL1 are not trapped by this mechanism. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
| nBRBDATA | Meaning |
|---|---|
| 0b0 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes at EL1 using AArch64 of any of the specified System registers are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
| 0b1 |
MSR writes of the specified System registers are not trapped by this mechanism. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
| nBRBCTL | Meaning |
|---|---|
| 0b0 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes at EL1 using AArch64 of any of the specified System registers are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
| 0b1 |
MSR writes of the specified System registers are not trapped by this mechanism. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Trap MSR writes of PMUSERENR_EL0 at EL1 using AArch64 to EL2.
| PMUSERENR_EL0 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMUSERENR_EL0 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMUSERENR_EL0 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of TRBTRG_EL1 at EL1 using AArch64 to EL2.
| TRBTRG_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of TRBTRG_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRBTRG_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of TRBSR_EL1 at EL1 using AArch64 to EL2.
| TRBSR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of TRBSR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRBSR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of TRBPTR_EL1 at EL1 using AArch64 to EL2.
| TRBPTR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of TRBPTR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRBPTR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of TRBMAR_EL1 at EL1 using AArch64 to EL2.
| TRBMAR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of TRBMAR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRBMAR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of TRBLIMITR_EL1 at EL1 using AArch64 to EL2.
| TRBLIMITR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of TRBLIMITR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRBLIMITR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Trap MSR writes of TRBBASER_EL1 at EL1 using AArch64 to EL2.
| TRBBASER_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of TRBBASER_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRBBASER_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of TRFCR_EL1 at EL1 using AArch64 to EL2.
| TRFCR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of TRFCR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRFCR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
In an Armv9 implementation, trap MSR writes of TRCVICTLR at EL1 using AArch64 to EL2.
In an Armv8 implementation, trap MSR writes of ETM TRCVICTLR at EL1 using AArch64 to EL2.
| TRCVICTLR | Meaning |
|---|---|
| 0b0 |
MSR writes of TRCVICTLR are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRCVICTLR at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
In an Armv9 implementation, trap MSR writes of TRCSSCSR<n> at EL1 using AArch64 to EL2.
In an Armv8 implementation, trap MSR writes of ETM TRCSSCSR<n> at EL1 using AArch64 to EL2.
| TRCSSCSRn | Meaning |
|---|---|
| 0b0 |
MSR writes of TRCSSCSR<n> are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRCSSCSR<n> at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
If Single-shot Comparator n is not implementented, a write of TRCSSCSR<n> is UNDEFINED.
The reset behavior of this field is:
Reserved, RES0.
In an Armv9 implementation, trap MSR writes of TRCSEQSTR at EL1 using AArch64 to EL2.
In an Armv8 implementation, trap MSR writes of ETM TRCSEQSTR at EL1 using AArch64 to EL2.
| TRCSEQSTR | Meaning |
|---|---|
| 0b0 |
MSR writes of TRCSEQSTR are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRCSEQSTR at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
In an Armv9 implementation, trap MSR writes of TRCPRGCTLR at EL1 using AArch64 to EL2.
In an Armv8 implementation, trap MSR writes of ETM TRCPRGCTLR at EL1 using AArch64 to EL2.
| TRCPRGCTLR | Meaning |
|---|---|
| 0b0 |
MSR writes of TRCPRGCTLR are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRCPRGCTLR at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
In an Armv8 implementation, trap MSR writes of ETM TRCOSLAR at EL1 using AArch64 to EL2.
| TRCOSLAR | Meaning |
|---|---|
| 0b0 |
MSR writes of ETM TRCOSLAR are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of ETM TRCOSLAR at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
In an Armv9 implementation, trap MSR writes of TRCIMSPEC<n> at EL1 using AArch64 to EL2.
In an Armv8 implementation, trap MSR writes of ETM TRCIMSPEC<n> at EL1 using AArch64 to EL2.
| TRCIMSPECn | Meaning |
|---|---|
| 0b0 |
MSR writes of TRCIMSPEC<n> are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRCIMSPEC<n> at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
TRCIMSPEC<1-7> are optional. If TRCIMSPEC<n> is not implemented, a write of TRCIMSPEC<n> is UNDEFINED.
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
In an Armv9 implementation, trap MSR writes of TRCCNTVR<n> at EL1 using AArch64 to EL2.
In an Armv8 implementation, trap MSR writes of ETM TRCCNTVR<n> at EL1 using AArch64 to EL2.
| TRCCNTVRn | Meaning |
|---|---|
| 0b0 |
MSR writes of TRCCNTVR<n> are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRCCNTVR<n> at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
If Counter n is not implemented, a write of TRCCNTVR<n> is UNDEFINED.
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
| TRCCLAIM | Meaning |
|---|---|
| 0b0 |
MSR writes of the specified System registers are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes at EL1 using AArch64 of any of the specified System registers are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
In an Armv9 implementation, trap MSR writes of TRCAUXCTLR at EL1 using AArch64 to EL2.
In an Armv8 implementation, trap MSR writes of ETM TRCAUXCTLR at EL1 using AArch64 to EL2.
| TRCAUXCTLR | Meaning |
|---|---|
| 0b0 |
MSR writes of TRCAUXCTLR are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of TRCAUXCTLR at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Trap MSR writes at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
In an Armv9 implementation:
In an Armv8 implementation:
| TRC | Meaning |
|---|---|
| 0b0 |
MSR writes of the specified System registers are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes at EL1 using AArch64 of any of the specified System registers are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
A write of an unimplemented register is UNDEFINED.
TRCEXTINSELR<n> and TRCRSR are implemented only if FEAT_ETE is implemented.
TRCEXTINSELR is implemented only if FEAT_ETE is not implemented and FEAT_ETMv4 is implemented.
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMSLATFR_EL1 at EL1 using AArch64 to EL2.
| PMSLATFR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMSLATFR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMSLATFR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMSIRR_EL1 at EL1 using AArch64 to EL2.
| PMSIRR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMSIRR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMSIRR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Trap MSR writes of PMSICR_EL1 at EL1 using AArch64 to EL2.
| PMSICR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMSICR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMSICR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMSFCR_EL1 at EL1 using AArch64 to EL2.
| PMSFCR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMSFCR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMSFCR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMSEVFR_EL1 at EL1 using AArch64 to EL2.
| PMSEVFR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMSEVFR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMSEVFR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMSCR_EL1 at EL1 using AArch64 to EL2.
| PMSCR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMSCR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMSCR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMBSR_EL1 at EL1 using AArch64 to EL2.
| PMBSR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMBSR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMBSR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMBPTR_EL1 at EL1 using AArch64 to EL2.
| PMBPTR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMBPTR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMBPTR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMBLIMITR_EL1 at EL1 using AArch64 to EL2.
| PMBLIMITR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMBLIMITR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of PMBLIMITR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Trap MSR writes of PMCR_EL0 at EL1 and EL0 using AArch64 and MCR writes of PMCR at EL0 using AArch32 when EL1 is using AArch64 to EL2.
| PMCR_EL0 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMCR_EL0 at EL1 and EL0 using AArch64 and MCR writes of PMCR at EL0 using AArch32 are not trapped by this mechanism. |
| 0b1 | If EL2 is implemented and enabled in the current Security state, the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then unless the write generates a higher priority exception: |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMSWINC_EL0 at EL1 and EL0 using AArch64 and MCR writes of PMSWINC at EL0 using AArch32 when EL1 is using AArch64 to EL2.
| PMSWINC_EL0 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMSWINC_EL0 at EL1 and EL0 using AArch64 and MCR writes of PMSWINC at EL0 using AArch32 are not trapped by this mechanism. |
| 0b1 | If EL2 is implemented and enabled in the current Security state, the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then unless the write generates a higher priority exception:
|
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMSELR_EL0 at EL1 and EL0 using AArch64 and MCR writes of PMSELR at EL0 using AArch32 when EL1 is using AArch64 to EL2.
| PMSELR_EL0 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMSELR_EL0 at EL1 and EL0 using AArch64 and MCR writes of PMSELR at EL0 using AArch32 are not trapped by this mechanism. |
| 0b1 | If EL2 is implemented and enabled in the current Security state, the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then unless the write generates a higher priority exception:
|
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes and MCR writes of any of the following System registers to EL2:
| PMOVS | Meaning |
|---|---|
| 0b0 |
MSR writes at EL1 and EL0 using AArch64 and MCR writes at EL0 using AArch32 of the specified System registers are not trapped by this mechanism. |
| 0b1 | If EL2 is implemented and enabled in the current Security state, the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then unless the write generates a higher priority exception:
|
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
| PMINTEN | Meaning |
|---|---|
| 0b0 |
MSR writes of the specified System registers are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes at EL1 using AArch64 of any of the specified System registers are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes and MCR writes of any of the following System registers to EL2:
| PMCNTEN | Meaning |
|---|---|
| 0b0 |
MSR writes at EL1 and EL0 using AArch64 and MCR writes at EL0 using AArch32 of the specified System registers are not trapped by this mechanism. |
| 0b1 | If EL2 is implemented and enabled in the current Security state, the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then unless the write generates a higher priority exception:
|
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMCCNTR_EL0 at EL1 and EL0 using AArch64 and MCR and MCRR writes of PMCCNTR at EL0 using AArch32 when EL1 is using AArch64 to EL2.
| PMCCNTR_EL0 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMCCNTR_EL0 at EL1 and EL0 using AArch64 and MCR and MCRR writes of PMCCNTR at EL0 using AArch32 are not trapped by this mechanism. |
| 0b1 | If EL2 is implemented and enabled in the current Security state, the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then unless the write generates a higher priority exception:
|
PMCCNTR_EL0 can also be indirectly set to zero by a write of 1 to PMCR_EL0.C or PMZR_EL0.C in AArch64 state, or a write of 1 to PMCR.C in AArch32 state. Setting this field to 1 has no effect on indirect writes to PMCCNTR_EL0 using PMCR_EL0, PMZR_EL0, or PMCR.
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of PMCCFILTR_EL0 at EL1 and EL0 using AArch64 and MCR writes of PMCCFILTR at EL0 using AArch32 when EL1 is using AArch64 to EL2.
| PMCCFILTR_EL0 | Meaning |
|---|---|
| 0b0 |
MSR writes of PMCCFILTR_EL0 at EL1 and EL0 using AArch64 and MCR writes of PMCCFILTR at EL0 using AArch32 are not trapped by this mechanism. |
| 0b1 | If EL2 is implemented and enabled in the current Security state, the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then unless the write generates a higher priority exception:
|
PMCCFILTR_EL0 can also be accessed in AArch64 state using PMXEVTYPER_EL0 when PMSELR_EL0.SEL == 31, and PMCCFILTR can also be accessed in AArch32 state using PMXEVTYPER when PMSELR.SEL == 31.
Setting this field to 1 has no effect on accesses to PMXEVTYPER_EL0 and PMXEVTYPER, regardless of the value of PMSELR_EL0.SEL or PMSELR.SEL.
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes and MCR writes of any of the following System registers to EL2:
| PMEVTYPERn_EL0 | Meaning |
|---|---|
| 0b0 |
MSR writes at EL1 and EL0 using AArch64 and MCR writes at EL0 using AArch32 of the specified System registers are not trapped by this mechanism. |
| 0b1 | If EL2 is implemented and enabled in the current Security state, the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then unless the write generates a higher priority exception:
|
Regardless of the value of this field, for each value n:
See also HDFGWTR_EL2.PMCCFILTR_EL0.
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes and MCR writes of any of the following System registers to EL2:
| PMEVCNTRn_EL0 | Meaning |
|---|---|
| 0b0 |
MSR writes at EL1 and EL0 using AArch64 and MCR writes at EL0 using AArch32 of the specified System registers are not trapped by this mechanism. |
| 0b1 | If EL2 is implemented and enabled in the current Security state, the Effective value of HCR_EL2.{E2H, TGE} is not {1, 1}, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then unless the write generates a higher priority exception:
|
Regardless of the value of this field, for each value n:
For values of n less than MDCR_EL2.HPMN, PMEVCNTR<n>_EL0 can also be indirectly set to zero by a write of 1 to PMCR_EL0.P or PMZR_EL0.P<n> in AArch64 state, or a write of 1 to PMCR.P in AArch32 state. Setting this field to 1 has no effect on indirect writes to PMEVCNTR<n>_EL0 using PMCR_EL0, PMZR_EL0, or PMCR.
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of OSDLR_EL1 at EL1 using AArch64 to EL2.
| OSDLR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of OSDLR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of OSDLR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of OSECCR_EL1 at EL1 using AArch64 to EL2.
| OSECCR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of OSECCR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of OSECCR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes of OSLAR_EL1 at EL1 using AArch64 to EL2.
| OSLAR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of OSLAR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of OSLAR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Trap MSR writes of DBGPRCR_EL1 at EL1 using AArch64 to EL2.
| DBGPRCR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of DBGPRCR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of DBGPRCR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Trap MSR writes at EL1 using AArch64 of any of the following AArch64 System registers to EL2:
| DBGCLAIM | Meaning |
|---|---|
| 0b0 |
MSR writes of the specified System registers are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes at EL1 using AArch64 of any of the specified System registers are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Trap MSR writes of MDSCR_EL1 at EL1 using AArch64 to EL2.
| MDSCR_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of MDSCR_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of MDSCR_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
The reset behavior of this field is:
Trap MSR writes of DBGWVR<n>_EL1 at EL1 using AArch64 to EL2.
| DBGWVRn_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of DBGWVR<n>_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of DBGWVR<n>_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
If watchpoint n is not implemented, a write of DBGWVR<n>_EL1 is UNDEFINED.
The reset behavior of this field is:
Trap MSR writes of DBGWCR<n>_EL1 at EL1 using AArch64 to EL2.
| DBGWCRn_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of DBGWCR<n>_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of DBGWCR<n>_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
If watchpoint n is not implemented, a write of DBGWCR<n>_EL1 is UNDEFINED.
The reset behavior of this field is:
Trap MSR writes of DBGBVR<n>_EL1 at EL1 using AArch64 to EL2.
| DBGBVRn_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of DBGBVR<n>_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of DBGBVR<n>_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
If breakpoint n is not implemented, a write of DBGBVR<n>_EL1 is UNDEFINED.
The reset behavior of this field is:
Trap MSR writes of DBGBCR<n>_EL1 at EL1 using AArch64 to EL2.
| DBGBCRn_EL1 | Meaning |
|---|---|
| 0b0 |
MSR writes of DBGBCR<n>_EL1 are not trapped by this mechanism. |
| 0b1 |
If EL2 is implemented and enabled in the current Security state, and either EL3 is not implemented or SCR_EL3.FGTEn == 1, then MSR writes of DBGBCR<n>_EL1 at EL1 using AArch64 are trapped to EL2 and reported with EC syndrome value 0x18, unless the write generates a higher priority exception. |
If breakpoint n is not implemented, a write of DBGBCR<n>_EL1 is UNDEFINED.
The reset behavior of this field is:
Accesses to this register use the following encodings in the System register encoding space:
| op0 | op1 | CRn | CRm | op2 |
|---|---|---|---|---|
| 0b11 | 0b100 | 0b0011 | 0b0001 | 0b101 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EffectiveHCR_EL2_NVx() IN {'1x1'} then X[t, 64] = NVMem[0x1D8]; elsif EffectiveHCR_EL2_NVx() IN {'xx1'} then AArch64.SystemAccessTrap(EL2, 0x18); else UNDEFINED; elsif PSTATE.EL == EL2 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.FGTEn == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.FGTEn == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else X[t, 64] = HDFGWTR_EL2; elsif PSTATE.EL == EL3 then X[t, 64] = HDFGWTR_EL2;
| op0 | op1 | CRn | CRm | op2 |
|---|---|---|---|---|
| 0b11 | 0b100 | 0b0011 | 0b0001 | 0b101 |
if PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then if EffectiveHCR_EL2_NVx() IN {'1x1'} then NVMem[0x1D8] = X[t, 64]; elsif EffectiveHCR_EL2_NVx() IN {'xx1'} then AArch64.SystemAccessTrap(EL2, 0x18); else UNDEFINED; elsif PSTATE.EL == EL2 then if HaveEL(EL3) && EL3SDDUndefPriority() && SCR_EL3.FGTEn == '0' then UNDEFINED; elsif HaveEL(EL3) && SCR_EL3.FGTEn == '0' then if EL3SDDUndef() then UNDEFINED; else AArch64.SystemAccessTrap(EL3, 0x18); else HDFGWTR_EL2 = X[t, 64]; elsif PSTATE.EL == EL3 then HDFGWTR_EL2 = X[t, 64];
26/03/2024 09:49; 67c0ae5282a7629ba0ea0ba7267b43cd4f7939f6
Copyright © 2010-2024 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.