3.2.17. 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:

Figure 3.36 shows the bit arrangement in the Data Fault Status Register.

Figure 3.36. Data Fault Status Register format


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

BitsField nameFunction

[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 PrivilegedNon-secure PrivilegedUser
ReadWriteReadWrite
Secure dataSecure dataNon-secure dataNon-secure dataUndefined exception

Note

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:

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
Copyright © 2004-2009 ARM Limited. All rights reserved.ARM DDI 0301H
Non-Confidential