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

Page 93

Advertising
background image

. . . . .

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 in
formation 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

Advertising