3 correctable fault location register, 4 usage models – ARM Cortex R4F User Manual

Page 206

Advertising
background image

Level One Memory System

ARM DDI 0363E

Copyright © 2009 ARM Limited. All rights reserved.

8-10

ID013010

Non-Confidential, Unrestricted Access

Precise abort exceptions

The following registers are updated when a precise abort exception is taken:

Fault Address Register

There are two fault address registers, one for prefetch aborts (IFAR) and one for
data aborts (DFAR). These indicate the address of the memory access that caused
the fault. See Fault Status and Address Registers on page 4-45.

Auxiliary Fault Status Register

There are two auxiliary fault status registers, one for prefetch aborts (AIFSR) and
one for data aborts (ADFSR). These record additional information about the
nature and location of the fault, including whether it was a recoverable error or
not, whether it occurred in the cache or AXI-master interface, ATCM or BTCM
and, if appropriate, which cache way the error occurred in. The cache index is not
recorded on a precise abort, because this information can be derived from the fault
address. See Fault Status and Address Registers on page 4-45.

Imprecise abort exceptions

The following register is updated when an imprecise abort exception is taken:

Auxiliary Data Fault Status Register

The ADFSR is updated to indicate whether or not the fault was recoverable,
whether it occurred in the cache, ATCM or BTCM and, if appropriate, which
cache set and way the error occurred in. Because the DFAR is not updated on
imprecise aborts, imprecise aborts cannot normally be located, except when the
error occurred in the cache.

The effect of debug events on these registers is described in Debug exception on page 11-41.

8.3.3

Correctable Fault Location Register

When a correctable fault generates an abort exception, information about the location of that
fault is recorded in the various fault status registers. However, if the fault is automatically
corrected by the processor, depending on the configuration, an exception might not be
generated, and the fault status registers might not be not updated. In all cases, information about
the location of the fault is recorded in the Correctable Fault Location Register (CFLR).

All correctable faults are recorded in the same register, regardless of whether it was an
instruction-fetch, a data-access, or a DMA (AXI-slave) access that generated the fault, and
whether the fault occurred in the ATCM, BTCM or cache. The CFLR contains information to
identify what sort of access generated the fault, and which device it occurred in. See Correctable
Fault Location Register
on page 4-70 fo
r more details of the format of this register. Each time
the CFLR is updated, the information already in the CFLR is discarded and therefore the CFLR
can only contain information about the most recent correctable fault.

8.3.4

Usage models

This section describes some ways in which errors can be handled in a system. Exactly how you
program the processor to handle errors depends on the configuration of your processor and
system, and what you are trying to achieve.

If an abort exception is taken, the abort handler reads the information in the link register, SPSR,
and fault status registers to determine the type of abort. Some types of abort are fatal to the
system, and others can be fixed, and program execution resumed. For example, an MPU
background fault might indicate a stack overflow, and be rectified by allocating more stack and

Advertising
This manual is related to the following products: