| |||
| Home > System Control Coprocessor > System control processor registers > c5, Data Fault Status Register | |||
The purpose of the Data Fault Status Register is to hold the source of the last data fault.
Table 3.61 lists the purposes of the individual bits in the Data Fault Status Register.
The Data Fault Status Register is:
in CP15 c5
a 32-bit read/write register banked for Secure and Non-secure worlds
accessible in privileged modes only.
Figure 3.36 shows the bit arrangement in the Data Fault Status Register.
Table 3.61 shows how the bit values correspond with the Data Fault Status Register functions.
Table 3.61. Data Fault Status Register bit functions
| Bits | Field name | Function |
|---|---|---|
[31:13] | - | UNP/SBZ. |
[12] | SD | Indicates if an AXI Decode or Slave error caused an abort. This is only valid for external aborts. For all other aborts this Should Be Zero. See Fault status and address: 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] | - | Always read as 0. Writes ignored. |
[7:4] | Domain | Indicates the domain from the 16 domains, D15-D0, is accessed when a data fault occurs. Takes values 0-15. The reset value is 0. |
[3:0] with bit[10] = 0 | Status | Indicates type of fault generated. See Fault status and address for full details of Domain and FAR validity, and priorities: b0000 = no function, reset value b0001 = Alignment fault b0010 = Instruction debug event fault b0011 = Access Bit fault on Section b0100 = Instruction cache maintenance operation fault b0101 = Translation Section fault b0110 = Access Bit fault on Page b0111 = Translation Page fault b1000 = Precise external abort b1001 = Domain Section fault b1010 = no function b1011 = Domain Page fault b1100 = External abort on translation, first level b1101 = Permission Section fault b1110 = External abort on translation, second level b1111 = Permission Page fault. |
[3:0] with bit[10] = 1 | Status | Indicates type of fault generated. See Fault status and address for full details of Domain and FAR validity, and priorities: b0000 = no function, reset value b0001 = no function b0010 = no function b0011 = no function b0100 = no function b0101 = no function b0110 = Imprecise external abort b0111 = no function b1000 = no function b1001 = no function b1010 = no function b1011 = no function b1100 = no function b1101 = no function b1110 = no function b1111 = no function. |
Table 3.62 lists the results of attempted access for each mode.
Table 3.62. Results of access to the Data Fault Status Register
| Secure Privileged | Non-secure Privileged | User | ||
|---|---|---|---|---|
| Read | Write | Read | Write | |
| Secure data | Secure data | Non-secure data | Non-secure data | Undefined exception |
When the SCR EA bit is set, see c1, Secure Configuration Register, the processor writes to the Secure Data Fault Status Register on a Secure Monitor entry caused by an external abort.
To use the Data Fault Status Register read or write CP15 with:
Opcode_1 set to 0
CRn set to c5
CRm set to c0
Opcode_2 set to 0.
For example:
MRC p15, 0, <Rd>, c5, c0, 0 ; Read Data Fault Status Register
MCR p15, 0, <Rd>, c5, c0, 0 ; Write Data Fault Status Register