System Control Coprocessor
ARM DDI 0301H
Copyright © 2004-2009 ARM Limited. All rights reserved.
3-47
ID012310
Non-Confidential, Unrestricted Access
Attempts to read or write the Control Register from Secure or Non-secure User modes results
in an Undefined exception.
Attempts to write to this register in Secure Privileged mode when
CP15SDISABLE
is HIGH
result in an Undefined exception, see
TrustZone write access disable
on page 2-9.
Attempts to write Secure modify only bit in Non-secure privileged modes are ignored.
Attempts to read Secure modify only bits return the Secure bit value. Table 3-40 lists the actions
that result from attempted access for each mode.
Use of the Control Register
To use the Control Register it is recommended that you use a read modify write technique. To
use the Control Register read or write CP15 with:
•
Opcode_1 set to 0
•
CRn set to c1
•
CRm set to c0
•
Opcode_2 set to 0.
For example:
MRC p15, 0, <Rd>, c1, c0, 0
; Read Control Register configuration data
MCR p15, 0, <Rd>, c1, c0, 0
; Write Control Register configuration data
Normally, to set the V bit and the B, EE, and U bits you configure signals at reset.
The V bit depends on
VINITHI
at reset:
•
VINITHI
LOW sets V to 0
•
VINITHI
HIGH sets V to 1.
[2]
C bit
Banked
Enables level one data cache.
0 = Data cache disabled, reset value.
1 = Data cache enabled.
[1]
A bit
Banked
Enables strict alignment of data to detect alignment faults in data accesses. The A bit
setting takes priority over the U bit.
0 = Strict alignment fault checking disabled, reset value.
1 = Strict alignment fault checking enabled.
[0]
M bit
Banked
Enables the MMU.
0 = MMU disabled, reset value.
1 = MMU enabled.
Table 3-39 Control Register bit functions (continued)
Bits
Field
name
Access
Function
Table 3-40 Results of access to the Control Register
Access type
Secure Privileged
Non-secure Privileged
User
Read
Write
Secure modify only
Secure bit
Secure bit
Ignored
Undefined exception
Banked
Secure bit
Non-secure bit
Non-secure bit
Undefined exception