You copied the Doc URL to your clipboard.

3.2.38. c6, Data Fault Address Register

The purpose of the Data Fault Address Register (DFAR) is to hold the Modified Virtual Address (MVA) of the fault when a precise abort occurs.

The DFAR is:

  • a read/write register banked for Secure and Nonsecure states

  • accessible in privileged modes only.

The Data Fault Address Register bits [31:0] contain the MVA on which the precise abort occurred.

Table 3.71 shows the results of attempted access for each mode.

Results of access to the Data Fault Address RegisterAn entry of Undefined in the table means that the access gives an Undefined Instruction exception when the coprocessor instruction is executed.
Secure privilegedNonsecure privilegedSecure User Nonsecure User
Secure dataSecure dataNonsecure dataNonsecure dataUndefinedUndefinedUndefinedUndefined

To access the DFAR, read or write CP15 with:

MRC p15, 0, <Rd>, c6, c0, 0 ; Read Data Fault Address Register
MCR p15, 0, <Rd>, c6, c0, 0 ; Write Data Fault Address Register

A write to this register sets the DFAR to the value of the data written. This is useful for a debugger to restore the value of the DFAR.

The processor also updates the DFAR on debug exception entry because of watchpoints. See Effect of debug exceptions on CP15 registers and WFAR for more information.