The MDCR_EL3 characteristics are:
Provides EL3 configuration options for self-hosted debug and the Performance Monitors Extension.
This register is present only when EL3 is implemented. Otherwise, direct accesses to MDCR_EL3 are UNDEFINED.
MDCR_EL3 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 | EnPMS4 | TRBEE | PMSEE | EnSTEPOP | ETBAD | EnITE | EPMSSAD | EnPMSS | EBWE | EnPMS3 | PMEE | EnTB2 | E3BREC | E3BREW | EnPMSN | MPMX | MCCD | SBRBE | |||||||||||||
PMSSE | RES0 | MTPME | TDCC | NSTBE | NSTB | SCCD | ETAD | EPMAD | EDAD | TTRF | STE | SPME | SDD | SPD32 | NSPB | NSPBE | TDOSA | TDA | RES0 | EnPM2 | TPM | RES0 | EDADE | ETADE | EPMADE | RES0 | RLTE |
Reserved, RES0.
Enable access to SPE registers. When disabled, accesses to SPE registers generate a trap to EL3.
EnPMS4 | Meaning |
---|---|
0b0 |
Accesses of the specified SPE registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception. |
0b1 |
Accesses of the specified SPE registers are not trapped by this mechanism. |
In AArch64 state, the instructions affected by this control are: MRS and MSR accesses to PMBMAR_EL1.
Trapped instructions are reported using EC syndrome value 0x18.
The reset behavior of this field is:
Reserved, RES0.
Trace buffer management event Exception Enable.
TRBEE | Meaning |
---|---|
0b00 | Disabled. TRBE Profiling exceptions for all Exception levels are disabled. All of the following apply:
|
0b01 | Delegated. TRBE Profiling exceptions for EL3 are disabled, but might be enabled for EL2 or EL1 by TRFCR_EL2.EE or TRFCR_EL1.EE. All of the following apply: |
0b10 | Enabled. TRBE Profiling exceptions for EL3 are enabled for trace buffer management events targeting EL3, as follows:
|
0b11 | Trap all. TRBE Profiling exceptions for EL3 are enabled for all trace buffer management events, as follows: |
If EL3 is not implemented, then the Effective value of MDCR_EL3.TRBEE is 0b01.
The reset behavior of this field is:
Reserved, RES0.
Profiling Buffer management event Exception Enable.
PMSEE | Meaning |
---|---|
0b00 | Disabled. SPE Profiling exceptions for all Exception levels are disabled. All of the following apply:
|
0b01 | Delegated. SPE Profiling exceptions for EL3 are disabled, but might be enabled for EL2 or EL1 by PMSCR_EL2.EE or PMSCR_EL1.EE. All of the following apply: |
0b10 | Enabled. SPE Profiling exceptions for EL3 are enabled for Profiling Buffer management events targeting EL3, as follows:
|
0b11 | Trap all. SPE Profiling exceptions for EL3 are enabled for all Profiling Buffer management events, as follows: |
If EL3 is not implemented, then the Effective value of MDCR_EL3.PMSEE is 0b01.
The reset behavior of this field is:
Reserved, RES0.
EnSTEPOP | Meaning |
---|---|
0b0 |
Execution from MDSTEPOP_EL1 is disabled. EL2, EL1 and EL0 System register accesses to MDSTEPOP_EL1 are trapped to EL3, unless the access generates a higher priority exception. |
0b1 |
Execution from MDSTEPOP_EL1 is not disabled by this control. System register accesses to MDSTEPOP_EL1 are not trapped by this mechanism. |
The reset behavior of this field is:
Reserved, RES0.
External Trace Buffer Access Disable. Controls access to the Trace Buffer registers from an external debugger.
ETBAD | Meaning | Applies when |
---|---|---|
0b00 | Non-secure accesses from an external debugger to Trace Buffer registers are prohibited. If FEAT_RME is implemented, Secure and Realm accesses from an external debugger to Trace Buffer registers are prohibited and Root accesses to Trace Buffer registers are allowed. If FEAT_RME is not implemented, Secure accesses to Trace Buffer registers are allowed. | |
0b01 |
Secure and Non-secure accesses from an external debugger to Trace Buffer registers are prohibited. Root and Realm accesses to Trace Buffer registers are allowed. | When FEAT_RME is implemented |
0b10 |
Realm and Non-secure accesses from an external debugger to Trace Buffer registers are prohibited. Root and Secure accesses to Trace Buffer registers are allowed. | When FEAT_RME is implemented |
0b11 |
All accesses from an external debugger to Trace Buffer registers are allowed. |
If EL3 is not implemented, then the Effective value of this field is 0b11.
The reset behavior of this field is:
Reserved, RES0.
Enable access to Instrumentation trace registers. When disabled, accesses to Instrumentation trace registers generate a trap to EL3.
EnITE | Meaning |
---|---|
0b0 |
Accesses of the specified Instrumentation trace registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception. |
0b1 |
Accesses of the specified Instrumentation trace registers are not trapped by this mechanism. |
In AArch64 state, the instructions affected by this control are: MRS and MSR accesses to TRCITECR_EL1, TRCITECR_EL2, and TRCITECR_EL12.
Trapped instructions are reported using EC syndrome value 0x18.
The reset behavior of this field is:
Reserved, RES0.
External PMU Snapshot Access Disable. Controls access to the PMU Snapshot registers from an external debugger.
External accesses of the following registers are affected by this control:
EPMSSAD | Meaning | Applies when |
---|---|---|
0b00 | Non-secure accesses from an external debugger to the affected PMU Snapshot registers are prohibited. If FEAT_RME is implemented, Secure and Realm accesses from an external debugger to the affected PMU Snapshot registers are prohibited. Other accesses from an external debugger to the specified registers are not affected by this control. | |
0b01 | Secure and Non-secure accesses from an external debugger to the affected PMU Snapshot registers are prohibited. Other accesses from an external debugger to the specified registers are not affected by this control. | When FEAT_RME is implemented |
0b10 | Realm and Non-secure accesses from an external debugger to the affected PMU Snapshot registers are prohibited. Other accesses from an external debugger to the specified registers are not affected by this control. | When FEAT_RME is implemented |
0b11 |
No accesses from an external debugger to the affected PMU Snapshot registers are prohibited by this control. |
If EL3 is not implemented, then the Effective value of this field is 0b11.
The reset behavior of this field is:
Reserved, RES0.
Enable access to PMU Snapshot registers. When disabled, accesses to PMU Snapshot registers generate a trap to EL3.
EnPMSS | Meaning |
---|---|
0b0 |
Accesses of the specified PMU Snapshot registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception. |
0b1 |
Accesses of the specified PMU Snapshot registers are not trapped by this mechanism. |
In AArch64 state, the instructions affected by this control are:
Trapped instructions are reported using EC syndrome value 0x18.
The reset behavior of this field is:
Reserved, RES0.
Extended Breakpoint and Watchpoint Enable. Enables use of additional breakpoints or watchpoints, and enables a trap to EL3 on accesses to debug registers.
EBWE | Meaning |
---|---|
0b0 | The Effective values of MDSCR_EL1.EMBWE and MDCR_EL2.EBWE are 0. The Effective value of MDSELR_EL1.BANK is zero at EL3. Accesses of MDSELR_EL1 at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception. |
0b1 | The Effective values of MDSCR_EL1.EMBWE, MDCR_EL2.EBWE, and MDSELR_EL1.BANK are not affected by this field. Accesses of MDSELR_EL1 are not trapped by this mechanism. |
In AArch64 state, the instructions affected by this control are: MRS and MSR accesses to MDSELR_EL1.
Trapped instructions are reported using EC syndrome value 0x18.
It is IMPLEMENTATION DEFINED whether this field is implemented or is RES0 when 16 or fewer breakpoints are implemented, 16 or fewer watchpoints are implemented, and MDSELR_EL1 is implemented as RAZ/WI.
If EL3 is not implemented, then the Effective value of this field is 1.
The reset behavior of this field is:
Reserved, RES0.
Enable access to SPE registers. When disabled, accesses to SPE registers generate a trap to EL3.
EnPMS3 | Meaning |
---|---|
0b0 |
Accesses of the specified SPE registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception. |
0b1 |
Accesses of the specified SPE registers are not trapped by this mechanism. |
In AArch64 state, the instructions affected by this control are: MRS and MSR accesses to PMSDSFR_EL1.
Trapped instructions are reported using EC syndrome value 0x18.
The reset behavior of this field is:
Reserved, RES0.
Performance Monitors Exception Enable. Controls the generation of the PMUIRQ signal and the PMU Profiling exception at all Exception levels.
PMEE | Meaning |
---|---|
0b00 |
The PMUIRQ signal is asserted on a PMU overflow, and the PMU Profiling exception is disabled. |
0b01 |
The PMUIRQ signal and the PMU Profiling exception are both controlled by MDCR_EL2.PMEE. |
0b10 |
The PMUIRQ signal is deasserted, and the PMU Profiling exception is disabled. |
0b11 |
The PMUIRQ signal is deasserted, and the PMU Profiling exception is enabled. |
If EL3 is not implemented, then the Effective value of this field is 0b01.
The reset behavior of this field is:
Reserved, RES0.
Enable access to Trace Buffer registers. When disabled, accesses to Trace Buffer registers generate a trap to EL3.
EnTB2 | Meaning |
---|---|
0b0 |
Accesses of the specified Trace Buffer registers at EL2 and EL1 are trapped to EL3, unless the instruction generates a higher priority exception. |
0b1 |
Accesses of the specified Trace Buffer registers are not trapped by this mechanism. |
In AArch64 state, the instructions affected by this control are: MRS and MSR accesses to TRBMPAM_EL1.
Trapped instructions are reported using EC syndrome value 0x18.
The reset behavior of this field is:
Reserved, RES0.
Branch Record Buffer EL3 Cold Reset Enable. With MDCR_EL3.E3BREW, controls branch recording at EL3.
E3BREC | Meaning |
---|---|
0b0 | When MDCR_EL3.E3BREW == 0: Branch recording at EL3 is disabled. When MDCR_EL3.E3BREW == 1: Branch recording at EL3 is enabled. |
0b1 | When MDCR_EL3.E3BREW == 0: Branch recording at EL3 is enabled. When MDCR_EL3.E3BREW == 1: Branch recording at EL3 is disabled. |
The reset behavior of this field is:
Reserved, RES0.
Branch Record Buffer EL3 Warm Reset Enable. With MDCR_EL3.E3BREC, controls branch recording at EL3.
For a description of the values derived by evaluating MDCR_EL3.E3BREC and MDCR_EL3.E3BREW together, see MDCR_EL3.E3BREC.
The reset behavior of this field is:
Reserved, RES0.
Trap accesses to PMSNEVFR_EL1. Controls access to Statistical Profiling PMSNEVFR_EL1 System register from EL2 and EL1.
EnPMSN | Meaning |
---|---|
0b0 |
Accesses to PMSNEVFR_EL1 at EL2 and EL1 generate a Trap exception to EL3. |
0b1 |
Do not trap PMSNEVFR_EL1 to EL3. |
The reset behavior of this field is:
Reserved, RES0.
Monitor Performance Monitors Extended control. With MDCR_EL3.SPME, controls PMU operation at EL3.
MPMX | Meaning |
---|---|
0b0 |
Counters are not affected by this mechanism. |
0b1 | Affected counters are prohibited from counting at EL3. If PMCR_EL0.DP is 1, PMCCNTR_EL0 is disabled at EL3. Otherwise, PMCCNTR_EL0 is not affected by this mechanism. |
The counters affected by this field are:
Other event counters are not affected by this field. When PMCR_EL0.DP is 0, PMCCNTR_EL0 is not affected by this field.
For more information about event counter ranges, see MDCR_EL2.HPMN.
The reset behavior of this field is:
Reserved, RES0.
Monitor Cycle Counter Disable. Prohibits the Cycle Counter, PMCCNTR_EL0, from counting at EL3.
MCCD | Meaning |
---|---|
0b0 |
Cycle counting by PMCCNTR_EL0 is not affected by this mechanism. |
0b1 |
Cycle counting by PMCCNTR_EL0 is prohibited at EL3. |
This field does not affect the CPU_CYCLES event or any other event that counts cycles.
The reset behavior of this field is:
Reserved, RES0.
Secure Branch Record Buffer Enable. Controls branch recording by the BRBE, and access to BRBE registers and instructions at EL2 and EL1.
SBRBE | Meaning |
---|---|
0b00 |
Direct accesses to BRBE registers and instructions, except when in EL3, generate a Trap exception to EL3. EL0, EL1, and EL2 are prohibited regions. |
0b01 |
Direct accesses to BRBE registers and instructions in Secure state, except when in EL3, generate a Trap exception to EL3. EL0, EL1, and EL2 in Secure state are prohibited regions. This control does not cause any direct accesses to BRBE registers when not in Secure state to be trapped, and does not cause any Exception levels when not in Secure state to be a prohibited region. |
0b10 |
Direct accesses to BRBE registers and instructions, except when in EL3, generate a Trap exception to EL3. This control does not cause any Exception levels to be prohibited regions. |
0b11 |
This control does not cause any direct accesses to BRBE registers or instruction to be trapped, and does not cause any Exception levels to be a prohibited region. |
The Branch Record Buffer registers trapped by this control are: BRBCR_EL1, BRBCR_EL2, BRBCR_EL12, BRBFCR_EL1, BRBIDR0_EL1, BRBINF<n>_EL1, BRBINFINJ_EL1, BRBSRC<n>_EL1, BRBSRCINJ_EL1, BRBTGT<n>_EL1, BRBTGTINJ_EL1, and BRBTS_EL1.
The Branch Record Buffer instructions trapped by this control are:
If FEAT_BRBEv1p1 is not implemented, EL3 is a prohibited region.
If EL3 is not implemented then the Effective value of this field is 0b11.
The reset behavior of this field is:
Reserved, RES0.
Performance Monitors Snapshot Enable. Controls the generation of Capture events.
PMSSE | Meaning |
---|---|
0b00 |
Capture events are disabled. |
0b01 |
Capture events are controlled by MDCR_EL2.PMSSE. |
0b10 |
Capture events are enabled and prohibited. |
0b11 |
Capture events are enabled and allowed. |
If EL3 is not implemented, then the Effective value of this field is 0b01.
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Multi-threaded PMU Enable. Enables use of the PMEVTYPER<n>_EL0.MT bits.
MTPME | Meaning |
---|---|
0b0 |
FEAT_MTPMU is disabled. The Effective value of PMEVTYPER<n>_EL0.MT is 0. |
0b1 |
PMEVTYPER<n>_EL0.MT bits not affected by this field. |
If FEAT_MTPMU is disabled for any other PE in the system that has the same level 1 Affinity as the PE, it is IMPLEMENTATION DEFINED whether the PE behaves as if this field is 0.
The reset behavior of this field is:
Reserved, RES0.
Trap DCC. Traps use of the Debug Comms Channel at EL2, EL1, and EL0 to EL3.
TDCC | Meaning |
---|---|
0b0 |
This control does not cause any register accesses to be trapped. |
0b1 | Accesses to the DCC registers at EL2, EL1, and EL0 generate a Trap exception to EL3, unless the access also generates a higher priority exception. Traps on the DCC data transfer registers are ignored when the PE is in Debug state. |
The DCC registers trapped by this control are:
AArch64: OSDTRRX_EL1, OSDTRTX_EL1, MDCCSR_EL0, MDCCINT_EL1, and, when the PE is in Non-debug state, DBGDTR_EL0, DBGDTRRX_EL0, and DBGDTRTX_EL0.
AArch32: DBGDTRRXext, DBGDTRTXext, DBGDSCRint, DBGDCCINT, and, when the PE is in Non-debug state, DBGDTRRXint and DBGDTRTXint.
The traps are reported with EC syndrome value:
When the PE is in Debug state, MDCR_EL3.TDCC does not trap any accesses to:
AArch64: DBGDTR_EL0, DBGDTRRX_EL0, and DBGDTRTX_EL0.
AArch32: DBGDTRRXint and DBGDTRTXint.
The reset behavior of this field is:
Reserved, RES0.
Non-secure Trace Buffer Extended. Together with MDCR_EL3.NSTB, controls the trace buffer owning Security state and accesses to trace buffer System registers from EL2 and EL1.
For a description of the values derived by evaluating NSTB and NSTBE together, see MDCR_EL3.NSTB.
The reset behavior of this field is:
Reserved, RES0.
Non-secure Trace Buffer. Together with MDCR_EL3.NSTBE, controls the trace buffer owning Security state and accesses to trace buffer System registers from EL2 and EL1.
NSTBE | NSTB | Meaning |
---|---|---|
0b0 | 0b00 | Secure state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Realm and Non-secure states. Accesses to trace buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. When Secure state is not implemented, this encoding is reserved. |
0b0 | 0b01 | Secure state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Realm and Non-secure states. Accesses to trace buffer System registers at Realm and Non-secure EL2, and Realm and Non-secure EL1, generate Trap exceptions to EL3, unless the access generates a higher priority exception. When Secure state is not implemented, this encoding is reserved. |
0b0 | 0b10 | Non-secure state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure and Realm states. Accesses to trace buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b0 | 0b11 | Non-secure state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure and Realm states. Accesses to trace buffer System registers at Secure and Realm EL2, and Secure and Realm EL1, generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b1 | 0b10 | Realm state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure and Non-secure states. Accesses to trace buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b1 | 0b11 | Realm state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure and Non-secure states. Accesses to trace buffer System registers at Secure and Non-secure EL2, and Secure and Non-secure EL1, generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
All other combinations of MDCR_EL3.NSTBE and MDCR_EL3.NSTB are reserved.
In AArch64 state, the instructions affected by this control are:
Trapped instructions are reported using EC syndrome value 0x18.
When TraceBufferEnabled()==FALSE, these controls have no effect on whether tracing is prohibited.
If the Trace Buffer Unit is enabled and using Self-hosted mode, and MDCR_EL3.{NSTB, NSTBE} selects a reserved value, then the behavior is CONSTRAINED UNPREDICTABLE, and the Trace Buffer Unit does one of:
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 1, then the Effective value of this field is 0b11.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 0b01.
The reset behavior of this field is:
Non-secure Trace Buffer. Controls the trace buffer owning Security state and accesses to trace buffer System registers from EL2 and EL1.
NSTB | Meaning |
---|---|
0b00 |
Secure state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Non-secure state. Accesses to trace buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b01 |
Secure state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Non-secure state. Accesses to trace buffer System registers at EL2 and EL1 in Non-secure state generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b10 |
Non-secure state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure state. Accesses to trace buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b11 |
Non-secure state owns the trace buffer. When TraceBufferEnabled()==TRUE, tracing is prohibited in Secure state. Accesses to trace buffer System registers at EL2 and EL1 in Secure state generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
In AArch64 state, the instructions affected by this control are:
Trapped instructions are reported using EC syndrome value 0x18.
When TraceBufferEnabled()==FALSE, this control has no effect on whether tracing is prohibited.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 1, then the Effective value of this field is 0b11.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 0b01.
The reset behavior of this field is:
Reserved, RES0.
Secure Cycle Counter Disable. Prohibits PMCCNTR_EL0 from counting in Secure state and EL3.
SCCD | Meaning |
---|---|
0b0 |
Cycle counting by PMCCNTR_EL0 is not affected by this mechanism. |
0b1 |
Cycle counting by PMCCNTR_EL0 is prohibited in Secure state and EL3. |
This field does not affect the CPU_CYCLES event or any other event that counts cycles.
The reset behavior of this field is:
Reserved, RES0.
External Trace Access Disable. Together with MDCR_EL3.ETADE, controls access to trace unit registers by an external debugger.
ETADE | ETAD | Meaning |
---|---|---|
0b0 | 0b0 | No accesses from an external debugger to trace unit registers are prohibited by this control. |
0b0 | 0b1 | Realm and Non-secure accesses from an external debugger to trace unit registers are prohibited. Other accesses from an external debugger to trace unit registers are not affected by this control. |
0b1 | 0b0 | Secure and Non-secure accesses from an external debugger to trace unit registers are prohibited. Other accesses from an external debugger to trace unit registers are not affected by this control. |
0b1 | 0b1 | Secure, Non-secure, and Realm accesses from an external debugger to trace unit registers are prohibited. Other accesses from an external debugger to trace unit registers are not affected by this control. |
The reset behavior of this field is:
External Trace Access Disable. Controls Non-secure access to trace unit registers by an external debugger.
ETAD | Meaning |
---|---|
0b0 |
No accesses from an external debugger to the trace unit registers are prohibited by this control. |
0b1 |
Non-secure accesses from an external debugger to some trace unit registers are prohibited. See individual registers for the effect of this field. |
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 1.
The reset behavior of this field is:
Reserved, RES0.
External Performance Monitors Access Disable. Together with MDCR_EL3.EPMADE, controls access to Performance Monitor registers by an external debugger.
External accesses of the following Performance Monitor registers are affected by this control:
EPMADE | EPMAD | Meaning |
---|---|---|
0b0 | 0b0 | No accesses from an external debugger to affected Performance Monitor registers are prohibited by this control. |
0b0 | 0b1 | Realm and Non-secure accesses from an external debugger to affected Performance Monitor registers are prohibited. Other accesses from an external debugger to affected Performance Monitor registers are not affected by this control. |
0b1 | 0b0 | Secure and Non-secure accesses from an external debugger to affected Performance Monitor registers are prohibited. Other accesses from an external debugger to affected Performance Monitor registers are not affected by this control. |
0b1 | 0b1 | Secure, Non-secure, and Realm accesses from an external debugger to affected Performance Monitor registers are prohibited. Other accesses from an external debugger to affected Performance Monitor registers are not affected by this control. |
The reset behavior of this field is:
External Performance Monitors Access Disable. Controls Non-secure access to Performance Monitor registers by an external debugger.
External accesses of the following Performance Monitor registers are affected by this control:
EPMAD | Meaning |
---|---|
0b0 |
No accesses from an external debugger to the Performance Monitor registers are prohibited by this control. |
0b1 |
Non-secure accesses from an external debugger to the affected Performance Monitor registers are prohibited. |
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 1.
The reset behavior of this field is:
External Performance Monitors Access Disable. Controls access to Performance Monitor registers by an external debugger.
External accesses of the following Performance Monitor registers are affected by this control:
EPMAD | Meaning |
---|---|
0b0 |
No accesses from an external debugger to the Performance Monitor registers are prohibited by this control. |
0b1 |
If the IMPLEMENTATION DEFINED authentication interface function ExternalSecureInvasiveDebugEnabled() returns FALSE, then accesses from an external debugger to the affected Performance Monitor registers are prohibited. |
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 1.
The reset behavior of this field is:
Reserved, RES0.
External Debug Access Disable. Together with MDCR_EL3.EDADE, controls access to breakpoint registers, watchpoint registers, and OSLAR_EL1 by an external debugger.
External accesses of the following debug registers are affected by this control:
EDADE | EDAD | Meaning |
---|---|---|
0b0 | 0b0 | No accesses from an external debugger to affected debug registers are prohibited by this control. |
0b0 | 0b1 | Realm and Non-secure accesses from an external debugger to affected debug registers are prohibited. Other accesses from an external debugger to affected debug registers are not affected by this control. |
0b1 | 0b0 | Secure and Non-secure accesses from an external debugger to affected debug registers are prohibited. Other accesses from an external debugger to affected debug registers are not affected by this control. |
0b1 | 0b1 | Secure, Non-secure, and Realm accesses from an external debugger to affected debug registers are prohibited. Other accesses from an external debugger to affected debug registers are not affected by this control. |
The reset behavior of this field is:
External Debug Access Disable. Controls Non-secure access to breakpoint registers, watchpoint registers, and OSLAR_EL1 by an external debugger.
External accesses of the following debug registers are affected by this control:
EDAD | Meaning |
---|---|
0b0 |
No accesses from an external debugger to the debug registers are prohibited by this control. |
0b1 |
Non-secure accesses from an external debugger to the affected debug registers are prohibited. |
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 1.
The reset behavior of this field is:
External Debug Access Disable. Controls access to breakpoint registers, watchpoint registers, and OSLAR_EL1 by an external debugger.
External accesses of the following debug registers are affected by this control:
EDAD | Meaning |
---|---|
0b0 |
No accesses from an external debugger to the debug registers are prohibited by this control. |
0b1 |
If the IMPLEMENTATION DEFINED authentication interface function ExternalSecureInvasiveDebugEnabled() returns FALSE, then accesses from an external debugger to the affected debug registers are prohibited. |
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 1.
The reset behavior of this field is:
External Debug Access Disable. Controls access to breakpoint registers, watchpoint registers, and optionally OSLAR_EL1 by an external debugger.
External accesses of the following debug registers are affected by this control:
EDAD | Meaning |
---|---|
0b0 |
No accesses from an external debugger to the debug registers are prohibited by this control. |
0b1 |
If the IMPLEMENTATION DEFINED authentication interface function ExternalSecureInvasiveDebugEnabled() returns FALSE, then accesses from an external debugger to the affected debug registers are prohibited. |
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 1.
The reset behavior of this field is:
Trap Trace Filter controls. Traps use of the Trace Filter control registers at EL2 and EL1 to EL3.
The Trace Filter registers trapped by this control are:
TTRF | Meaning |
---|---|
0b0 |
Accesses to Trace Filter registers at EL2 and EL1 are not affected by this field. |
0b1 |
Accesses to Trace Filter registers at EL2 and EL1 generate a Trap exception to EL3, unless the access generates a higher priority exception. |
The reset behavior of this field is:
Reserved, RES0.
Secure Trace enable. Enables tracing in Secure state.
STE | Meaning |
---|---|
0b0 |
Trace prohibited in Secure state unless overridden by the IMPLEMENTATION DEFINED authentication interface. |
0b1 |
Trace in Secure state is not affected by this field. |
This field also controls the level of authentication required by an external debugger to enable external tracing. See 'Register controls to enable self-hosted trace'.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, the Effective value of this field is 1.
The reset behavior of this field is:
Reserved, RES0.
Secure Performance Monitors Enable. Controls PMU operation in Secure state and at EL3 when MDCR_EL3.MPMX is 0.
SPME | Meaning |
---|---|
0b0 |
Affected counters are prohibited from counting in Secure state and at EL3. If PMCR_EL0.DP is 1, PMCCNTR_EL0 is disabled in Secure state and at EL3. Otherwise, PMCCNTR_EL0 is not affected by this mechanism. |
0b1 |
Counters are not affected by this mechanism. |
When MDCR_EL3.MPMX is 0, the counters affected by this field are:
When PMCR_EL0.DP is 0, PMCCNTR_EL0 is not affected by this field.
When MDCR_EL3.MPMX is 1, this field controls which event counters are affected by MDCR_EL3.MPMX at EL3. See MDCR_EL3.MPMX for more information.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 1.
The reset behavior of this field is:
Secure Performance Monitors Enable. Controls PMU operation in Secure state.
SPME | Meaning |
---|---|
0b0 | Event counting is prohibited in Secure state. If PMCR_EL0.DP is 1, PMCCNTR_EL0 is disabled in Secure state. Otherwise, PMCCNTR_EL0 is not affected by this mechanism. |
0b1 |
Event counting and PMCCNTR_EL0 are not affected by this mechanism. |
The counters affected by this field are:
When PMCR_EL0.DP is 0, PMCCNTR_EL0 is not affected by this field.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 1.
The reset behavior of this field is:
Secure Performance Monitors Enable. Controls PMU operation in Secure state.
SPME | Meaning |
---|---|
0b0 | If ExternalSecureNoninvasiveDebugEnabled() is FALSE, then all the following apply:
|
0b1 |
Event counting and PMCCNTR_EL0 are not affected by this mechanism. |
If ExternalSecureNoninvasiveDebugEnabled() is TRUE then the event counters and PMCCNTR_EL0 are not affected by this field.
Otherwise, the counters affected by this field are:
When PMCR_EL0.DP is 0, PMCCNTR_EL0 is not affected by this field.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 1.
The reset behavior of this field is:
Reserved, RES0.
AArch64 Secure Self-hosted invasive debug disable. Disables Software debug exceptions in Secure state, other than Breakpoint Instruction exceptions.
SDD | Meaning |
---|---|
0b0 |
Debug exceptions in Secure state are not affected by this field. |
0b1 |
Debug exceptions, other than Breakpoint Instruction exceptions, are disabled from all Exception levels in Secure state. |
The SDD bit is ignored unless both of the following are true:
If Secure EL2 is implemented and enabled, and Secure EL1 is using AArch32, then:
The reset behavior of this field is:
Reserved, RES0.
AArch32 Secure self-hosted privileged debug. Enables or disables debug exceptions from Secure EL1 using AArch32, other than Breakpoint Instruction exceptions.
SPD32 | Meaning |
---|---|
0b00 |
Legacy mode. Debug exceptions from Secure EL1 are enabled by the IMPLEMENTATION DEFINED authentication interface. |
0b10 |
Secure privileged debug disabled. Debug exceptions from Secure EL1 are disabled. |
0b11 |
Secure privileged debug enabled. Debug exceptions from Secure EL1 are enabled. |
Other values are reserved, and have the CONSTRAINED UNPREDICTABLE behavior that they must have the same behavior as 0b00. Software must not rely on this property as the behavior of reserved values might change in a future revision of the architecture.
This field has no effect on Breakpoint Instruction exceptions. These are always enabled.
This field is ignored unless both of the following are true:
If Secure EL1 is using AArch32, then:
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 0b11.
The reset behavior of this field is:
Reserved, RES0.
Non-secure Profiling Buffer. Together with MDCR_EL3.NSPBE, controls the Profiling Buffer owning Security state and accesses to Statistical Profiling and Profiling Buffer System registers from EL2 and EL1.
NSPBE | NSPB | Meaning |
---|---|---|
0b0 | 0b00 | Secure state owns the Profiling Buffer. Profiling is disabled in Realm and Non-secure states. Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. When Secure state is not implemented, this encoding is reserved. |
0b0 | 0b01 | Secure state owns the Profiling Buffer. Profiling is disabled in Realm and Non-secure states. Accesses to Statistical Profiling and Profiling Buffer System registers at Realm and Non-secure EL2, and Realm and Non-secure EL1, generate Trap exceptions to EL3, unless the access generates a higher priority exception. When Secure state is not implemented, this encoding is reserved. |
0b0 | 0b10 | Non-secure state owns the Profiling Buffer. Profiling is disabled in Secure and Realm states. Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b0 | 0b11 | Non-secure state owns the Profiling Buffer. Profiling is disabled in Secure and Realm states. Accesses to Statistical Profiling and Profiling Buffer System registers at Secure and Realm EL2, and Secure and Realm EL1, generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b1 | 0b10 | Realm state owns the Profiling Buffer. Profiling is disabled in Secure and Non-secure states. Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b1 | 0b11 | Realm state owns the Profiling Buffer. Profiling is disabled in Secure and Non-secure states. Accesses to Statistical Profiling and Profiling Buffer System registers at Secure and Non-secure EL2, and Secure and Non-secure EL1, generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
All other combinations of MDCR_EL3.NSPBE and MDCR_EL3.NSPB are reserved.
In AArch64 state, the instructions affected by this control are:
Trapped instructions are reported using EC syndrome value 0x18.
If profiling is enabled and MDCR_EL3.{NSPB, NSPBE} selects a reserved value, then the behavior is CONSTRAINED UNPREDICTABLE, and the Statistical Profiling Unit does one of:
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 1, then the Effective value of this field is 0b11.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 0b01.
The reset behavior of this field is:
Non-secure Profiling Buffer. Controls the Profiling Buffer owning Security state and accesses to Statistical Profiling and Profiling Buffer System registers from EL2 and EL1.
NSPB | Meaning |
---|---|
0b00 |
Secure state owns the Profiling Buffer. Profiling is disabled in Non-secure state. Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b01 |
Secure state owns the Profiling Buffer. Profiling is disabled in Non-secure state. Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 in Non-secure state generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b10 |
Non-secure state owns the Profiling Buffer. Profiling is disabled in Secure state. Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
0b11 |
Non-secure state owns the Profiling Buffer. Profiling is disabled in Secure state. Accesses to Statistical Profiling and Profiling Buffer System registers at EL2 and EL1 in Secure state generate Trap exceptions to EL3, unless the access generates a higher priority exception. |
In AArch64 state, the instructions affected by this control are:
Trapped instructions are reported using EC syndrome value 0x18.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 1, then the Effective value of this field is 0b11.
If EL3 is not implemented and the Effective value of SCR_EL3.NS is 0, then the Effective value of this field is 0b01.
The reset behavior of this field is:
Reserved, RES0.
Non-secure Profiling Buffer Extended. Together with MDCR_EL3.NSPB, controls the Profiling Buffer owning Security state and accesses to Statistical Profiling and Profiling Buffer System registers from EL2 and EL1.
For a description of the values derived by evaluating NSPB and NSPBE together, see MDCR_EL3.NSPB.
The reset behavior of this field is:
Reserved, RES0.
Trap debug OS-related register access. Traps EL2 and EL1 System register accesses to the powerdown debug registers to EL3.
Accesses to the registers are trapped as follows:
TDOSA | Meaning |
---|---|
0b0 |
This control does not cause any instructions to be trapped. |
0b1 |
EL2 and EL1 System register accesses to the powerdown debug registers are trapped to EL3, unless it is trapped by HDCR.TDOSA or MDCR_EL2.TDOSA. |
The powerdown debug registers are not accessible at EL0.
The reset behavior of this field is:
Trap debug OS-related register access. Traps EL2 and EL1 System register accesses to the powerdown debug registers to EL3.
The following registers are affected by this trap:
TDOSA | Meaning |
---|---|
0b0 |
This control does not cause any instructions to be trapped. |
0b1 |
EL2 and EL1 System register accesses to the powerdown debug registers are trapped to EL3, unless it is trapped by HDCR.TDOSA or MDCR_EL2.TDOSA. |
The powerdown debug registers are not accessible at EL0.
The reset behavior of this field is:
Trap accesses of debug System registers. Enables a trap to EL3 on accesses of debug System registers.
TDA | Meaning |
---|---|
0b0 |
Accesses of the specified debug System registers are not trapped by this mechanism. |
0b1 |
Accesses of the specified debug System registers at EL2, EL1, and EL0 are trapped to EL3, unless the instruction generates a higher priority exception. |
In AArch64 state, the instructions affected by this control are:
In AArch32 state, the instructions affected by this control are:
Trapped AArch64 instructions are reported using EC syndrome value 0x18.
Trapped AArch32 instructions are reported using EC syndrome value 0x03 for MRC and MCR accesses with coproc == 0b1111, 0x05 for MCR and MCR accesses with coproc == 0b1110, 0x06 for LDC and STC accesses, and 0x0C for MRRC accesses.
The following instructions are not trapped in Debug state:
If 16 or fewer breakpoints and 16 or fewer watchpoints are implemented, and MDSELR_EL1 is implemented as RAZ/WI, then it is IMPLEMENTATION DEFINED whether AArch64 accesses to MDSELR_EL1 are trapped to EL3 when MDCR_EL3.TDA is 1.
The reset behavior of this field is:
Reserved, RES0.
Enable access to PMU registers. When disabled, accesses to PMU registers generate a trap to EL3.
EnPM2 | Meaning |
---|---|
0b0 | Accesses of the specified PMU registers at EL2, EL1, and EL0 are trapped to EL3, unless the instruction generates a higher priority exception. If FEAT_PMUv3_ICNTR is implemented, then:
|
0b1 |
Accesses of the specified PMU registers are not trapped by this mechanism. |
In AArch64 state, the instructions affected by this control are:
Trapped instructions are reported using EC syndrome value 0x18.
The reset behavior of this field is:
Reserved, RES0.
Trap accesses of PMU registers. Enables a trap to EL3 on accesses of PMU registers.
TPM | Meaning |
---|---|
0b0 |
Accesses of the specified PMU registers are not trapped by this mechanism. |
0b1 |
Accesses of the specified PMU registers at EL2, EL1, and EL0 are trapped to EL3, unless the instruction generates a higher priority exception. |
In AArch64 state, the instructions affected by this control are:
In AArch32 state, the instructions affected by this control are:
Trapped AArch64 instructions are reported using EC syndrome value 0x18.
Trapped AArch32 instructions are reported using EC syndrome value 0x03 for MRC and MCR accesses, and 0x04 for MRRC and MCRR accesses.
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
External Debug Access Disable Extended. Together with MDCR_EL3.EDAD, controls access to breakpoint registers, watchpoint registers, and OSLAR_EL1 by an external debugger.
For a description of the values derived by evaluating MDCR_EL3.EDAD and MDCR_EL3.EDADE together, see MDCR_EL3.EDAD.
The reset behavior of this field is:
Reserved, RES0.
External Trace Access Disable Extended. Together with MDCR_EL3.ETAD, controls access to trace unit registers by an external debugger.
For a description of the values derived by evaluating MDCR_EL3.ETAD and MDCR_EL3.ETADE together, see MDCR_EL3.ETAD.
The reset behavior of this field is:
Reserved, RES0.
External Performance Monitors Access Disable Extended. Together with MDCR_EL3.EPMAD, controls access to Performance Monitor registers by an external debugger.
For a description of the values derived by evaluating MDCR_EL3.EPMAD and MDCR_EL3.EPMADE together, see MDCR_EL3.EPMAD.
The reset behavior of this field is:
Reserved, RES0.
Reserved, RES0.
Realm Trace enable. Enables tracing in Realm state.
RLTE | Meaning |
---|---|
0b0 |
Trace prohibited in Realm state, unless overridden by the IMPLEMENTATION DEFINED authentication interface. |
0b1 |
Trace in Realm state is not affected by this field. |
This field also controls the level of authentication that is required by an external debugger to enable external tracing.
The reset behavior of this field is:
Reserved, RES0.
Accesses to this register use the following encodings in the System register encoding space:
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b110 | 0b0001 | 0b0011 | 0b001 |
if !HaveEL(EL3) then UNDEFINED; elsif PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then UNDEFINED; elsif PSTATE.EL == EL2 then UNDEFINED; elsif PSTATE.EL == EL3 then X[t, 64] = MDCR_EL3;
op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|
0b11 | 0b110 | 0b0001 | 0b0011 | 0b001 |
if !HaveEL(EL3) then UNDEFINED; elsif PSTATE.EL == EL0 then UNDEFINED; elsif PSTATE.EL == EL1 then UNDEFINED; elsif PSTATE.EL == EL2 then UNDEFINED; elsif PSTATE.EL == EL3 then if IsFeatureImplemented(FEAT_FGWTE3) && FGWTE3_EL3.MDCR_EL3 == '1' then AArch64.SystemAccessTrap(EL3, 0x18); else MDCR_EL3 = X[t, 64];
15/12/2024 22:27; 5e0a212688c6bd7aee92394b6f5e491b4d0fee1d
Copyright © 2010-2024 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.