ARM R4 Computer Hardware User Manual


 
Level One Memory System
ARM DDI 0363E Copyright © 2009 ARM Limited. All rights reserved. 8-11
ID013010 Non-Confidential, Unrestricted Access
reprogramming the MPU to reflect this. Alternatively, an imprecise external abort might
indicate that a software error meant that a store instruction occurred to an unmapped memory
address. Such an abort is fatal to the system or process because no information is recorded about
the address the error occurred on, or the instruction which caused the error.
Table 8-1 shows which types of abort are typically fatal because either the location of the error
is not recorded or the error is unrecoverable. Some aborts that are marked as not fatal might turn
out to be fatal in some systems when the cause of the error has been determined. For example,
an MPU background fault might indicate a stack overflow, which can be rectified, or it might
indicate that, because of a bug, the software has accessed a nonexistent memory location, which
can be fatal. These cases can be distinguished by determining the location where the error
occurred. If an error is unrecoverable, that is, it is not a correctable parity or ECC error, and it
is not a TCM external retry request, it is normally fatal regardless of whether or not the location
of the error is recorded. When an abort is taken on an external TCM, parity, or ECC error, the
appropriate Auxiliary Fault Status Register records whether the error was recoverable. See Fault
Status and Address Registers on page 4-45.
Correctable errors
In a system in which the processor is configured to automatically correct ECC errors without
taking an abort exception, you can still configure it to respond to such errors. Connect the event
output or outputs that indicate a correctable error to an interrupt controller. When such an event
occurs, the interrupt input to the processor is set, and the processor will take an interrupt
exception. When your interrupt handler has identified the source of the interrupt as a correctable
error, it can read the CFLR to determine where the ECC error occurred. You can examine this
information to identify trends in such errors. By masking the interrupt when necessary, your
software can ensure that when critical code is executing, the processor corrects the error
automatically, but delays examining information about the error until after the critical code has
completed.
Table 8-1 Types of aborts
Type Conditions Source Precise Fatal
MPU fault
Access not permitted by MPU
a
MPU Yes No
Precise External Load using L2 memory interface AXI Yes No
Imprecise External Store to Normal or Device memory using L2 memory
interface
AXI No Yes
Precise Parity/ECC Cache
Load from cache
b
Cache Yes
Maybe
c
Precise Parity/ECC TCM
Load/store from/to TCM
d
TCM Yes
Maybe
c
Precise TCM external error
Load/store from/to TCM
e
TCM Yes Yes
Imprecise Parity/ECC Cache
Store to cache or cache maintenance operation
b
Cache No
Maybe
c
Imprecise TCM external
error
Store to TCM
e
TCM No Yes
a. See MPU faults on page 7-12 for more information about the types of MPU fault.
b. See Cache error detection and correction on page 8-20 for more information about parity/ECC errors from the cache.
c. These types of error can be correctable or uncorrectable. Uncorrectable errors are typically fatal. Correctable errors are
automatically corrected by the hardware and might not cause the abort handler to be called. See Cache error detection and
correction on page 8-20 and TCM internal error detection and correction on page 8-14.
d. See TCM internal error detection and correction on page 8-14 for more information about parity/ECC errors from the TCM.
e. Aborts generated by external TCM errors are always unrecoverable, and therefore fatal, see External TCM errors on page 8-16
for more information about external errors from the TCM.