4.3.32. Coprocessor Access Control Register

The CPACR characteristics are:

Purpose

Controls access to coprocessors CP10 and CP11.

Usage constraints

The CPACR is:

  • A read/write register.

  • Common to the Secure and Non-secure states.

  • Only accessible from PL1 or higher.

  • Has no effect on instructions executed in Hyp mode.

Configurations

Bits in the NSACR, see Non-Secure Access Control Register, control Non-secure access to the CPACR fields.

Attributes

See the register summary in Table 4.3.

Figure 4.28 shows the CPACR bit assignments.

Figure 4.28. CPACR bit assignments

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


Table 4.61 shows the CPACR bit assignments.

Table 4.61. CPACR bit assignments

BitsNameFunction
[31]ASEDIS

Disable Advanced SIMD Functionality:

0

All Advanced SIMD and VFP instructions execute normally.

1

All Advanced SIMD instructions executed take an Undefined instruction exception.

See the Cortex-A7 MPCore Floating-Point Unit Technical Reference Manual and Cortex-A7 MPCore NEON Media Processing Engine Technical Reference Manual for more information.

If FPU is implemented and Advanced SIMD is not implemented, this bit is RAO/WI.

If FPU and Advanced SIMD are not implemented, this bit is UNK/SBZP.

[30]D32DIS

Disable use of registers D16-D31 of the VFP register file:

0

All instructions accessing D0-D31 execute normally.

1

Any VFP instruction that attempts to access any of registers D16-D31 is undefined.

See the Cortex-A7 MPCore Floating-Point Unit Technical Reference Manual and Cortex-A7 MPCore NEON Media Processing Engine Technical Reference Manual for more information.

If FPU is implemented and Advanced SIMD is implemented, ARM deprecates writing a value that is not zero to this bit.

If FPU is implemented and Advanced SIMD is not implemented, this bit is RAO/WI.

If FPU and Advanced SIMD are not implemented, this bit is UNK/SBZP.

[29:24]-

Reserved, RAZ/WI.

[23:22]cp11

Defines the access rights for coprocessor 11:

0b00

Access denied. Attempted accesses generate an Undefined Instruction exception. This is the reset value.

0b01

Access at PL1 or higher only. Attempted accesses in User mode generate an Undefined Instruction exception. Any attempt to access the coprocessor from software executing at PL0 generates an Undefined Instruction exception.

0b10

Reserved. The effect of this value is unpredictable.

0b11

Full access.

If FPU and Advanced SIMD are not implemented, this field is RAZ/WI.

[21:20]cp10

Defines the access rights for coprocessor 10:

0b00

Access denied. Attempted accesses generate an Undefined Instruction exception. This is the reset value.

0b01

Access at PL1 or higher only. Any attempt to access the coprocessor from software executing at PL0 generates an Undefined Instruction exception.

0b10

Reserved. The effect of this value is unpredictable.

0b11

Full access.

If FPU and Advanced SIMD are not implemented, this field is RAZ/WI.

[19:0]-

Reserved, RAZ/WI.


Note

If the values of the cp11 and cp10 fields are not the same, the behavior is unpredictable.

To access the CPACR, read or write the CP15 register with:

MRC p15, 0, <Rt>, c1, c0, 2; Read Coprocessor Access Control Register
MCR p15, 0, <Rt>, c1, c0, 2; Write Coprocessor Access Control Register
Copyright © 2011-2013 ARM. All rights reserved.ARM DDI 0464F
Non-ConfidentialID051113