29.11.2014 Views

Fast Models Reference Manual - ARM Information Center

Fast Models Reference Manual - ARM Information Center

Fast Models Reference Manual - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

AEM <strong>ARM</strong>v7-A specifics<br />

When stepping through programs in Model Debugger, a reordered load is evident when the<br />

destination register of a load instruction is displayed as 0xAFAFAFAF (or 0xAFAF or 0xAF for<br />

sub-word operations). The real value is loaded into the destination register when that value is<br />

required for an operation that cannot be deferred any further, for example when it is used to<br />

compute the address of a subsequent memory access.<br />

If the value is never needed, for example when another value is written into the destination<br />

register before it is ever read, then the deferred operation is killed instead. In such cases, it is<br />

likely that the load operation is not visible from outside the core, and it also does not cause its<br />

usual side-effects such as filling cache lines.<br />

A.1.10<br />

Other checks<br />

The checks that are described in this section are always enabled. You can, however, suppress<br />

any message from being printed by adjusting the corresponding severity level parameter. See<br />

Message configuration on page 4-69.<br />

Exclusive access into non-normal memory<br />

LDREX, STREX and similar instructions are only guaranteed to operate correctly in normal memory.<br />

Their operation in other memory types such as Device or Strongly Ordered, is not architecturally<br />

defined and must not be relied on. For example, some implementations take an external abort.<br />

BX or BLX to illegal addresses<br />

An address ending 0b10 is not a legal branch target.<br />

Non-normal pagetables should have XN bit set<br />

The <strong>ARM</strong> architecture does not guarantee that a CPU executes instructions from non-normal<br />

memory types such as Device or Strongly Ordered. Some implementations can take a pre-fetch<br />

abort. It is recommended that the XN bit is set in pagetables for non-normal memory to avoid<br />

seeing IMPLEMENTATION DEFINED effects in executed code.<br />

Assumptions about cache geometry<br />

Cache maintenance operations can be indexed by set and way. Any program that uses these<br />

operations must have read the cache ID registers to determine the number of sets and ways<br />

present in the system. Compatibility is not guaranteed if the target code attempts to infer this<br />

information from reading the Main ID register.<br />

Overlapping pagetable entries<br />

It is an error if the TLB is allowed to contain more than one physical address mapping for each<br />

combination of virtual address, Application Space Identifier (ASID) and security state. This<br />

might occur if entries in the TLB are not flushed before loading a different set of pagetables<br />

describing regions of a different size, or if pagetable entries are not correctly repeated for a<br />

Supersection or Large Page entry.<br />

Pagetable properties remapped whilst MMU is enabled<br />

The status of System Control Register bits EE, AFE and TRE affect the way that pagetables are<br />

interpreted, but it is IMPLEMENTATION DEFINED whether the interpretation takes place when the<br />

TLB is loaded or when it is used. Therefore, if these bits are changed while there are active TLB<br />

entries, any entries currently in the TLB might not be correctly interpreted.<br />

<strong>ARM</strong> DUI 0423J Copyright © 2008-2011 <strong>ARM</strong>. All rights reserved. A-6<br />

ID051811<br />

Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!