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

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.

Figure 3.30. Data Fault Status Register format


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

BitsFieldFunction

[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:

  • b000001 alignment fault

  • b000100 instruction cache maintenance fault

  • bx01100 L1 translation, precise external abort

  • bx01110 L2 translation, precise external abort

  • b011100 L1 translation precise parity error

  • b011110 L2 translation precise parity error

  • b000101 translation fault, section

  • b000111 translation fault, page

  • b000011 access flag fault, section

  • b000110 access flag fault, page

  • b001001 domain fault, section

  • b001011 domain fault, page

  • b001101 permission fault, section

  • b001111 permission fault, page

  • bx01000 precise external abort, nontranslation

  • bx10110 imprecise external abort

  • b011000 imprecise error, parity or ECC

  • b000010 debug event.

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.


Note

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
Copyright © 2006-2009 ARM Limited. All rights reserved.ARM DDI 0344I
Non-Confidential