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 />

Note<br />

Table B3-5 VMSAv7 simple access control model<br />

AP[2] AP[1] Access a<br />

0 0 Kernel, read/write<br />

0 1 User, read/write<br />

1 0 Kernel, read-only<br />

1 1 User, read-only<br />

a. Kernel access corresponds to access by privileged code<br />

only.<br />

This model depends on the definition of the AP[2] == 1, AP[1:0] == 0b11 encoding shown in Table B3-4<br />

on page B3-28. This encoding is introduced in VMSAv7, <strong>and</strong> therefore the simplified access permissions<br />

model cannot be supported in VMSAv6.<br />

When the SCTLR.AFE bit is set to 1 the AP[0] bit becomes an access flag, see The access flag on<br />

page B3-21. In this case, this simplified access permissions model becomes the only supported access<br />

permissions model.<br />

B3.6.2 The Execute Never (XN) attribute <strong>and</strong> instruction prefetching<br />

An implementation must not fetch instructions from any memory location that is marked as Execute Never.<br />

A location is marked as Execute Never when it has its XN attribute set to 1 in a Client domain. When the<br />

MMU is enabled, instructions can only be fetched or prefetched from memory locations in Client domains<br />

where:<br />

XN is set to 0<br />

valid read permissions exist<br />

no other Prefetch Abort condition exists.<br />

Any region of memory that is read-sensitive must be marked as Execute Never, to avoid the possibility of a<br />

speculative prefetch accessing the memory region. For example, any memory region that corresponds to a<br />

read-sensitive peripheral must be marked as Execute Never.<br />

The XN attribute is not checked for domains marked as Manager. Read-sensitive memory must not be<br />

included in domains marked as Manager, because the XN bit does not prevent prefetches in these cases.<br />

The XN attribute is not checked when the MMU is disabled. All VMSAv7 implementations must ensure<br />

that, when the MMU is disabled, prefetching down non-sequential paths cannot cause unwanted accesses to<br />

read-sensitive devices.<br />

B3-30 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!