(old) | htmldiff from- | (new) |
The PMCR_EL0 characteristics are:
Provides details of the Performance Monitors implementation, including the number of counters implemented, and configures and controls the counters.
External register PMCR_EL0 bits [76:0]
are architecturally mapped to
AArch32 System register PMCR[76:0]
.
External register PMCR_EL0 bits [76:0]
are architecturally mapped to
AArch64 System register PMCR_EL0[76:0]
.
PMCR_EL0 is in the Core power domain. Some or all RW fields of this register have defined reset values. The field descriptions identify when the reset values apply.
This register is only partially mapped to the internal PMCR System register. An external agent must use other means to discover the information held in PMCR[31:11], such as accessing PMCFGR and the ID registers.
PMCR_EL0 is a 32-bit register.
The PMCR_EL0 bit assignments are:
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 |
LP | LC | DP | X | D | C | P | E |
ReservedRAZ/WI. Hardware must implement this field as RAZ/WI. Software must not rely on the register reading as zero, and must use a read-modify-write sequence to write to the register. RAZ/WI.
Hardware must implement this field as RAZ/WI. Software must not rely on the register reading as zero, and must use a read-modify-write sequence to write to the register.
Reserved, RES0.
Long event counter enable. Determines when unsigned overflow is recorded by a counter overflow bit.
LP | Meaning |
---|---|
0b0 | Event counter overflow on increment that causes unsigned overflow of PMEVCNTR<n>_EL0[31:0]. |
0b1 | Event counter overflow on increment that causes unsigned overflow of PMEVCNTR<n>_EL0[63:0]. |
If EL2 is implemented and MDCR_EL2.HPMN or HDCR.HPMN is less than PMCR_EL0.N, this bit does not affect the operation of event counters in the range [HDCR.HPMN:(PMCR_EL0.N-1)] or [MDCR_EL2.HPMN:(PMCR_EL0.N-1)].
The effect of MDCR_EL2.HPMN or HDCR.HPMN on the operation of this bit applies if EL2 is implemented regardless of whether EL2 is enabled in the current Security state. For more information, see the description of MDCR_EL2.HPMN or HDCR.HPMN.
If the highest implemented Exception level is using AArch32, it is IMPLEMENTATION DEFINED whether this bit is RW or RAZ/WI.
Reserved, RES0.
Long cycle counter enable. Determines when unsigned overflow is recorded by the cycle counter overflow bit.
LC | Meaning |
---|---|
0b0 | Cycle counter overflow on increment that causes unsigned overflow of PMCCNTR_EL0[31:0]. |
0b1 | Cycle counter overflow on increment that causes unsigned overflow of PMCCNTR_EL0[63:0]. |
Arm deprecates use of PMCR_EL0.LC = 0.
In an AArch64 only implementation, this field is RES1.
On a Warm reset, this field resets to an architecturally UNKNOWN value.
Disable cycle counter when event counting is prohibited. The possible values of this bit are:
DP | Meaning |
---|---|
0b0 | Cycle counting by PMCCNTR_EL0 is |
0b1 | When event counting for counters in the range [0..(MDCR_EL2.HPMN-1)] is prohibited, cycle counting by PMCCNTR_EL0 |
Counting events is never prohibited in Non-secure state. However, there are some restrictions on counting events in Secure state. For more information about the interaction between the Performance Monitors and EL3, see 'EffectInteraction ofwith EL3 and EL2' in the Arm® Architecture Reference Manual, Armv8, for Armv8-A architecture profile, section D5.5.1.
When EL3 is not implemented, this field is RES0:
Otherwise this field is RW.
When this register has an architecturally-defined reset value, if this field is implemented as an RW field it resets to:
Enable export of events in an IMPLEMENTATION DEFINED event stream. The possible values of this bit are:
X | Meaning |
---|---|
0b0 | Do not export events. |
0b1 | Export events where not prohibited. |
This field enables the exporting of events over an event bus to another device, for example to an OPTIONAL PE trace unit. If the implementation does not include such an event bus then this field is RAZ/WI, otherwise it is an RW field.
In an implementation that includes an event bus, no events are exported when counting is prohibited.
This field does not affect the generation of Performance Monitors overflow interrupt requests or signaling to a cross-trigger interface (CTI) that can be implemented as signals exported from the PE.
When this register has an architecturally-defined reset value, if this field is implemented as an RW field it resets to:
Clock divider. The possible values of this bit are:
D | Meaning |
---|---|
0b0 | When enabled, PMCCNTR_EL0 counts every clock cycle. |
0b1 | When enabled, PMCCNTR_EL0 counts once every 64 clock cycles. |
In an AArch64 only implementation this field is RES0, otherwise it is an RW field. If PMCR_EL0.LC == 1, this bit is ignored and the cycle counter counts every clock cycle.
Arm deprecates use of PMCR_EL0.D = 1.
When this register has an architecturally-defined reset value, if this field is implemented as an RW field it resets to:
Cycle counter reset. This bit is WO. The effects of writing to this bit are:
C | Meaning |
---|---|
0b0 | No action. |
0b1 | Reset PMCCNTR_EL0 to zero. |
This bit is always RAZ.
Resetting PMCCNTR_EL0 does not change the cycle counter overflow bit.
Event counter reset. This bit is WO. The effects of writing to this bit are:
P | Meaning |
---|---|
0b0 | No action. |
0b1 | Reset all event counters, not including PMCCNTR_EL0, to zero. |
This bit is always RAZ.
Resetting the event counters does not change the event counter overflow bits.
If ARMv8.5-PMU is implemented, the value of MDCR_EL2.HLP, or PMCR_EL0.LP is ignored and bits [63:0] of all event counters are reset.
Enable.
E | Meaning |
---|---|
0b0 | All event counters in the range [0:(PMN-1)] and PMCCNTR_EL0, are disabled. |
0b1 | All event counters in the range [0:(PMN-1)] and PMCCNTR_EL0, are enabled by PMCNTENSET_EL0. |
This bit is RW.
If EL2 is implemented then:
If EL2 is not implemented, PMN is PMCR_EL0.N.
The effect of MDCR_EL2.HPMN or HDCR.HPMN on the operation of this bit applies if EL2 is implemented regardless of whether EL2 is enabled in the current Security state. For more information, see the description of MDCR_EL2.HPMN or HDCR.HPMN.
On a Warm reset, this field resets to 0.
SoftwareLockStatus() depends on the type of access attempted and AllowExternalPMUAccess() has a new definition from Armv8.4. Refer to the Pseudocode definitions for more information.
Component | Offset | Instance |
---|---|---|
PMU | 0xE04 | PMCR_EL0 |
This interface is accessible as follows:
2713/0312/20192018 2116:5942; e5e4db499bf9867a4b93324c4dbac985d3da93766379d01c197f1d40720d32d0f84c419c9187c009
Copyright © 2010-20192010-2018 Arm Limited or its affiliates. All rights reserved. This document is Non-Confidential.
(old) | htmldiff from- | (new) |