6.10. Fault status and address

Table 6.11 lists the encodings for the Fault Status Register.

Table 6.11. Fault Status Register encoding

PrioritySourcesFSR[10,3:0]DomainFSR[12]
HighestAlignmentb00001InvalidSBZ
 TLB miss b00000InvalidSBZ
 

Instruction cache maintenance[a]

operation fault

b00100InvalidSBZ
 External abort on translationfirst-levelb01100InvalidSLVERR !DECERR
  second-levelb01110ValidSLVERR !DECERR
 TranslationSectionb00101InvalidSBZ
  Pageb00111ValidSBZ
 Access Bit Fault, Force AP onlySectionb00011ValidSBZ
  Pageb00110ValidSBZ
 DomainSectionb01001ValidSBZ
  Pageb01011ValidSBZ
 PermissionSectionb01101ValidSBZ
  Pageb01111ValidSBZ
 Precise external abort b01000ValidSLVERR !DECERR
 Imprecise external abort b10110InvalidSLVERR !DECERR
 Parity error exception, not supported b11000InvalidSBZ
LowestInstruction debug eventb00010ValidSBZ

[a] These aborts cannot be signaled with the IFSR because they do not occur on the instruction side.


Note

All other Fault Status encodings are reserved.

If a translation abort occurs during a Data Cache maintenance operation by virtual address, then a Data Abort is taken and the DFSR indicates the reason. The FAR indicates the faulting address, and the IFAR indicates the address of the instruction causing the abort.

If a translation abort occurs during an Instruction Cache maintenance operation by virtual address, then a Data Abort is taken, and an Instruction Cache Maintenance Operation Fault is indicated in the DFSR. The IFSR indicates the reason. The FAR indicates the faulting address, and the IFAR indicates the address of the instruction causing the abort.

Domain and fault address information is only available for data accesses. For instruction aborts R14 must be used to determine the faulting address. You can determine the domain information by performing a TLB lookup for the faulting address and extracting the domain field.

Table 6.12 lists a summary of the abort vector that is taken, and the Fault Status and Fault Address Registers that are updated for each abort type.

Table 6.12. Summary of aborts

Abort typeAbort takenPrecise?Register updated?
IFSRIFARDFSRFARWFAR
Instruction MMU faultPrefetch AbortYesYesYesNoNoNo
Instruction debug abortPrefetch AbortYesYesNoNoNoNo
Instruction external abort on translationPrefetch AbortYes[a]YesaYesNoNoNo
Instruction external abortPrefetch AbortYesaYesaYesNoNoNo
Instruction cache maintenance operationData AbortYesYesNoYesYesNo
Data MMU faultData AbortYesNoNoYesYesNo
Data debug abortData AbortNoNoNoYesYesYes
Data external abort on translationData AbortYesaNoNoYesaYesaNoa
Data external abortData AbortNo[b]NoNoYesaYesNo
Data cache maintenance operation Data AbortYesNoNoYesYesNo

[a] When the EA bit is set, the updated FSR or FAR is always Secure.

[b] Data Aborts can be precise, see External aborts for more details.


Copyright © 2004-2009 ARM Limited. All rights reserved.ARM DDI 0301H
Non-Confidential, Unrestricted AccessID012310