5.10. Fault status and address

Table 5.11 shows the encodings for the Fault Status Register.

Table 5.11. Fault Status Register encoding

PrioritySources FSR[10,3:0]DomainFARSLVER/ DECERRR/W
HighestAlignmentb00001InvalidValidInvalidValid
 Instruction cache maintenance[1] operation fault b00100InvalidValidInvalidInvalid
 External Abort on translationFirst-levelb01100InvalidValidValidValid
 Second-levelb01110ValidValidValidValid
 TranslationSectionb00101InvalidValidInvalidValid
  Pageb00111ValidValidInvalidValid
 Access bitSectionb00011InvalidValidInvalidValid
 Pageb00110ValidValidInvalidValid
 DomainSectionb01001ValidValidInvalidValid
  Pageb01011ValidValidInvalidValid
 PermissionSectionb01101ValidValidInvalidValid
  Pageb01111ValidValidInvalidValid
 Precise External Abort-b01000ValidValidInvalidValid
 Imprecise External Abortb10110InvalidInvalidValidValid
LowestDebug eventb00010ValidInvalidInvalidInvalid

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


Note

All other Fault Status Register 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.

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 FAR indicates the faulting address.

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 5.12 is a summary of which abort vector is taken, and which of the Fault Status and Fault Address Registers are updated for each abort type.

Table 5.12. Summary of aborts

Abort typeAbort takenPrecise?Register updated?
IFSRWFARDFSRFAR
Instruction MMU faultPrefetch AbortYesYesNoNoNo
Instruction Debug AbortPrefetch AbortYesYesNoNoNo
Instruction External Abort on translationPrefetch AbortYesYesNoNoNo
Instruction External AbortPrefetch AbortYesYesNoNoNo
Memory barrier maintenance operationData AbortYesYesYes[1]YesYes
Data MMU faultData AbortYesNoYesaYesYes
Data Debug AbortData AbortNoNoYesYesYes[2]
Data External Abort on translationData AbortYesNoYesaYesYes
Data External AbortData AbortNo[3]NoNoYesNo
Data cache maintenance operationData AbortYesNoYesaYesYes

[1] Although the WFAR is updated by the processor the behavior is architecturally Unpredictable.

[2] The processor updates the FAR with an Unpredictable value.

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


Copyright © 2005, 2006, 2008. All rights reserved.ARM DDI 0360F
Non-Confidential