05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Protected Memory System <strong>Architecture</strong> (PMSA)<br />

D32DIS, bit[30]<br />

Disable use of D16-D31 of the VFP register file:<br />

0 This bit does not cause any instructions to be UNDEFINED.<br />

1 All instruction encodings identified in the Alphabetical list of instructions on<br />

page A8-14 as being VFPv3 instructions are UNDEFINED if they access any of<br />

registers D16-D31.<br />

If this bit is 1 when CPACR.ASEDIS == 0, the result is UNPREDICTABLE.<br />

On an implementation that:<br />

Does not implement VFP, this bit is UNK/SBZP.<br />

Implements VFP <strong>and</strong> does not implement D16-D31, this bit is RAO/WI.<br />

Implements VFP <strong>and</strong> implements D16-D31, it is IMPLEMENTATION DEFINED whether<br />

this bit is supported. If it is not supported it is RAZ/WI.<br />

This bit resets to 0 if it is supported.<br />

Bits [29:28] Reserved. UNK/SBZP.<br />

cp, bits [2n+1, 2n], for n = 0 to 13<br />

Defines the access rights for coprocessor n. The possible values of the field are:<br />

00 Access denied. Any attempt to access the coprocessor generates an Undefined<br />

Instruction exception.<br />

01 Privileged access only. Any attempt to access the coprocessor in User mode<br />

generates an Undefined Instruction exception.<br />

10 Reserved. The effect of this value is UNPREDICTABLE.<br />

11 Full access. The meaning of full access is defined by the appropriate<br />

coprocessor.<br />

The value for a coprocessor that is not implemented is 00, access denied.<br />

If more than one coprocessor is used to provide a set of functionality then having different values for the<br />

CPACR fields for those coprocessors can lead to UNPREDICTABLE behavior. An example where this must be<br />

considered is with the VFP extension, that uses CP10 <strong>and</strong> CP11.<br />

Typically, an operating system uses this register to control coprocessor resource sharing among applications:<br />

Initially all applications are denied access to the shared coprocessor-based resources.<br />

When an application attempts to use a resource it results in an Undefined Instruction exception.<br />

The Undefined Instruction h<strong>and</strong>ler can then grant access to the resource by setting the appropriate<br />

field in the CPACR.<br />

For details of how this register can be used to check for implemented coprocessors see Access controls on<br />

CP0 to CP13 on page B1-63.<br />

B4-52 Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DDI 0406B

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!