PMCID2SR, CONTEXTIDR_EL2 Sample Register
The PMCID2SR characteristics are:
PMCID2SR is in the Core power domain.
Fields in this register reset to architecturally UNKNOWN values. These apply only on a Cold reset. The register is not affected by a Warm reset and is not affected by an External debug reset.
This register is present only from Armv8.2. Otherwise, direct accesses to PMCID2SR are RES0.
Implemented only when ARMv8.2-PCSample is implemented.
Before Armv8.2, the PC Sample-based Profiling Extension can be implemented in the external debug register space, as indicated by the value of EDDEVID.PCSample.
If EL2 is not implemented, this register is RES0.
PMCID2SR is a 32-bit register.
The PMCID2SR bit assignments are:
CONTEXTIDR_EL2, bits [31:0]
Context ID. The value of CONTEXTIDR that is associated with the most recent PMPCSR sample.
- If EL2 is using AArch64, then the Context ID sampled from CONTEXTIDR_EL2.
- If EL2 is using AArch32, then this field is set to an UNKNOWN value.
Because the value written to PMCID2SR is an indirect read of CONTEXTIDR, therefore it is CONSTRAINED UNPREDICTABLE whether PMCID2SR is set to the original or new value if a read of PMPCSR samples:
- An instruction that writes to CONTEXTIDR_EL2.
- The next Context synchronization event.
- Any instruction executed between these two instructions.
On a Cold reset, this field resets to an architecturally UNKNOWN value.
Accessing the PMCID2SR
IMPLEMENTATION DEFINED extensions to external debug might make the value of this register UNKNOWN, see 'Permitted behavior that might make the PC Sample-based profiling registers UNKNOWN' in the Arm® Architecture Reference Manual, Armv8, for Armv8-A architecture profile
PMCID2SR can be accessed through the external debug interface:
This interface is accessible as follows:
- When IsCorePowered(), !DoubleLockStatus() and !OSLockStatus() access to this register is RO.
- Otherwise access to this register returns an Error.