R6: fault address register, Status and domain fields, Access instructions – Digi NS9215 User Manual
Page 93

. . . . .
W O R K I N G W I T H T H E C P U
R6: Fault Address register
www.digiembedded.com
93
Status and
domain fields
This table shows the encodings used for the status field in the Fault Status register,
and indicates whether the domain field contains valid information. See “MMU faults
and CPU aborts” on page 119 for information about MMU aborts in Fault Address and
Fault Status registers.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
R 6 : F a u l t A d d r e s s r e g i s t e r
Register R6 accesses the Fault Address register (FAR). The Fault Address register
contains the modified virtual address of the access attempted when a data abort
occurred. This register is updated only for data aborts, not for prefetch aborts; it is
updated also for alignment faults and external aborts that occur while the MMU is
disabled.
Writing R6 sets the Fault Address register to the value of the data written. This is
useful for debugging, to restore the value of a Fault Address register to a previous
state.
The
CRm
and
opcode_2
fields
SHOULD BE ZERO
when reading or writing R6.
Access
instructions
Use these instructions to access the Fault Address register:
MRC p15, 0, Rd, c6, c0, 0; read FAR
MCR p15, 0, Rd, c6, c0, 0; write FAR
Priority
Source
Size
Status
Domain
Highest
Alignment
N/A
0b00x1
Invalid
External abort on translation
First level
Second level
0b1100
0b1110
Invalid
Valid
Translation
Section page
0b0101
0b0111
Invalid
Valid
Domain
Section page
0b1001
0b1011
Valid
Valid
Permission
Section page
0b1101
0b1111
Valid
Valid
Lowest
External abort
Section page
0b1000
0b1010
Valid
Valid