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.

Virtual Memory System <strong>Architecture</strong> (VMSA)<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, then this bit 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 />

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

Instruction exception.<br />

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

generates an Undefined Instruction exception.<br />

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

0b11 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 0b00, access denied.<br />

When the Security Extensions are implemented, the NSACR controls whether each coprocessor can be<br />

accessed from the Non-secure state, see c1, Non-Secure Access Control Register (NSACR) on page B3-110.<br />

When the NSACR permits Non-secure access to a coprocessor the level of access permitted is determined<br />

by the CPACR. Because the CPACR is not banked, the options for Non-secure state access to a coprocessor<br />

are:<br />

no access<br />

identical access rights to the Secure state.<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. This 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 />

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

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

Saved successfully!

Ooh no, something went wrong!