You copied the Doc URL to your clipboard.

ARM Cortex-A72 MPCore Processor Technical Reference Manual : CPU Memory Error Syndrome Register, EL1

CPU Memory Error Syndrome Register, EL1

The CPUMERRSR_EL1 characteristics are:

Purpose

Holds the number of memory errors that have occurred in the following L1 and L2 RAMs:

  • L1-I Tag RAM.
  • L1-I Data RAM.
  • L1-D Tag RAM.
  • L1-D Data RAM.
  • TLB RAM.

A write of any value to the register updates the register to zero.

Usage constraints

The accessibility to the CPUMERRSR_EL1 by Exception level is:

EL0 EL1(NS) EL1(S) EL2 EL3(SCR.NS = 1) EL3(SCR.NS = 0)
- RW RW RW RW RW
Configurations

The CPUMERRSR_EL1 is:

  • Common to the Secure and Non-secure states.
  • A 64-bit read/write register.
  • Architecturally mapped to the AArch32 CPUMERRSR register.
Attributes
See the register summary in Table 4-15 AArch64 IMPLEMENTATION DEFINED registers.

The following figure shows the CPUMERRSR_EL1 bit assignments.

Figure 4-76 CPUMERRSR_EL1 bit assignments


The following table shows the CPUMERRSR_EL1 bit assignments.

Table 4-80 CPUMERRSR_EL1 bit assignments

Bits Name Function
[63] Fatal Fatal bit. This bit is set to 1 on the first memory error that caused a Data Abort. It is a sticky bit so that after it is set, it remains set until the register is written. The reset value is 0.
[62:48] - Reserved, RES0.
[47:40]

Other error count

This field is set to 0 on the first memory error and is incremented on any memory error that does not match the RAMID, bank, way, or index information in this register while the sticky Valid bit is set. The reset value is 0.
[39:32] Repeat error count This field is set to 0 on the first memory error and is incremented on any memory error that exactly matches the RAMID, bank, way or index information in this register while the sticky Valid bit is set. The reset value is 0.
[31] Valid Valid bit. This bit is set to 1 on the first memory error. It is a sticky bit so that after it is set, it remains set until the register is written. The reset value is 0.
[30:24] RAMID

RAM Identifier. Indicates the RAM, the first memory error occurred in. The possible values are:

0x00L1-I Tag RAM.
0x01L1-I Data RAM.
0x08L1-D Tag RAM.
0x09L1-D Data RAM.
0x18L2 TLB RAM.
[23] - Reserved, RES0.
[22:18] Bank/Way Indicates the bank or way of the RAM where the first memory error occurred.
[17:0] Index Indicates the index address of the first memory error.

Note

  • If two or more memory errors in the same RAM occur in the same cycle, only one error is reported.
  • If two or more first memory error events from different RAMs occur in the same cycle, one of the errors is selected arbitrarily, while the Other error count field is only incremented by one.
  • If two or more memory error events from different RAMs, that do not match the RAMID, bank, way, or index information in this register while the sticky Valid bit is set, occur in the same cycle, the Other error count field is only incremented by one.

To access the CPUMERRSR_EL1 in AArch64 state, read or write the register with:

MRS <Xt>, S3_1_c15_c2_2 ; Read EL1 CPU Memory Error Syndrome Register
MSR S3_1_c15_c2_2 , <Xt>; Write EL1 CPU Memory Error Syndrome Register

To access the CPUMERRSR in AArch32 state, read or write the CP15 register with:

MRRC p15, 2, <Rt>, <Rt2>, c15; Read CPU Memory Error Syndrome Register
MCRR p15, 2, <Rt>, <Rt2>, c15; Write CPU Memory Error Syndrome Register