ARM R4 Computer Hardware User Manual


 
System Control Coprocessor
ARM DDI 0363E Copyright © 2009 ARM Limited. All rights reserved. 4-45
ID013010 Non-Confidential, Unrestricted Access
Table 4-26 shows how the bit values correspond with the Coprocessor Access Register
functions.
To access the Coprocessor Access Register, read or write CP15 with:
MRC p15, 0, <Rd>, c1, c0, 2 ; Read Coprocessor Access Register
MCR p15, 0, <Rd>, c1, c0, 2 ; Write Coprocessor Access Register
4.2.18 Fault Status and Address Registers
The processor reports the status and address of faults that occur during its operation. For both
data and instruction faults there are two Fault Status Registers (FSRs) and one Fault Address
Register (FAR).
Fields within the Data and Instruction FSRs indicate the priority and source of a fault and the
validity of the address in the corresponding FAR. Table 4-27 shows this encoding for the FSRs.
All other encodings for these FSR bits are Reserved.
c5, Data Fault Status Register
The Data Fault Status Register (DFSR) holds status information regarding the source of the last
data abort.
Table 4-26 Coprocessor Access Register bit functions
Bits Field Function
[31:28] Reserved SBZ.
[27:0]
cp<n>
a
Defines access permissions for each coprocessor.
Access denied is the reset condition, and is the behavior for non-existent coprocessors.
b00 = Access denied. Attempts to access generates an Undefined exception.
b01 = Privileged mode access only
b10 = Reserved
b11 = Privileged and User mode access.
Access permissions for the FPU are set by fields cp10 and cp11. For all other
coprocessor fields, the value is fixed to b00.
a. n is the coprocessor number between 0 and 13.
Table 4-27 Fault Status Register encodings
Priority Sources
FSR
[10,3:0]
FAR
Highest Alignment 0b00001 Valid
Background 0b00000 Valid
Permission 0b01101 Valid
Precise External Abort 0b01000 Valid
Imprecise External Abort 0b10110 Unpredictable
Precise Parity/ECC Error 0b11001 Valid
Imprecise Parity/ECC Error 0b11000 Unpredictable
Lowest Debug Event 0b00010 Unchanged