| |||
| Home > System Control Coprocessor > System control coprocessor registers > c5, Data Fault Status Register | |||
The purpose of the Data Fault Status Register (DFSR) is to hold the source of the last data fault.
The Data Fault Status Register is:
a read/write register banked for Secure and Nonsecure states
accessible in privileged modes only.
Figure 3.30 shows the bit arrangement of the Data Fault Status Register when the data abort is not imprecise. When the data abort is imprecise, only bits [3:0] are valid.
Table 3.68 shows how the bit values correspond with the Data Fault Status Register functions.
Table 3.68. Data Fault Status Register bit functions
| Bits | Field | Function |
|---|---|---|
[31:13] | - | Reserved. UNP, SBZ. |
| [12] | SD | Indicates whether an AXI Decode or Slave error caused an abort. This bit is only valid for external aborts. For all other aborts this bit Should-Be-Zero: 0 = AXI Decode error caused the abort, reset value 1 = AXI Slave error caused the abort. |
| [11] | RW | Indicates whether a read or write access caused an abort: 0 = read access caused the abort, reset value 1 = write access caused the abort. |
| [10] | S | Part of the Status field. See bits [3:0] in this table. The reset value is 0. |
[9:8] | - | Reserved, RAZ and ignore writes. |
[7:4] | Domain | Indicates which one of the 16 domains, D15-D0, is accessed when a data fault occurs. This field takes values 0-15. |
[3:0] | Status | Indicates the type of exception generated. To determine the data fault, bits [12] and [10] must be used in conjunction with bits [3:0]. The following encodings are listed in priority order, highest first:
Any unused encoding not listed is reserved. Where x represents bit [12] in the encoding, bit [12] can be either: 0 = AXI Decode error caused the abort, reset value 1 = AXI Slave error caused the abort. |
When the SCR EA bit is set to 1, see c1, Secure Configuration Register, the processor writes to the Secure Data Fault Status Register on a Monitor entry caused by an external abort.
To access the Data Fault Status Register, read or write CP15 with:
MRC p15, 0, <Rd>, c5, c0, 0 ; Read Data Fault Status Register
MCR p15, 0, <Rd>, c5, c0, 0 ; Write Data Fault Status Register