3.5. Addresses in the Cortex-A9 processor

In the Cortex-A9 the VA and MVA are identical.

When the Cortex-A9 processor is executing in Non-secure state, the processor performs translation table look-ups using the Non-secure versions of the Translation Table Base Registers. In this situation, any VA can only translate into a Non-secure PA.When it is in Secure state, the Cortex-A9 processor performs translation table look-ups using the Secure versions of the Translation Table Base Registers. In this situation, the security state of any VA is determined by the NS bit of the translation table descriptors for that address.

Table 3.1 shows the address types in the processor system.

Table 3.1. Address types in the processor system

Processor

Caches

Translation Lookaside Buffers

AXI bus

Data VA

Data cache is Physically Indexed Physically Tagged (PIPT)

Translates Virtual Address

to Physical Address

Physical

Address

Instruction VA

Instruction cache is Virtually Indexed Physically Tagged (VIPT)


This is an example of the address manipulation that occurs when the Cortex-A9 processor requests an instruction.

  1. The Cortex-A9 processor issues the VA of the instruction as Secure or Non-secure VA according to the state the processor is in.

  2. The instruction cache is indexed by the lower bits of the VA. The TLB performs the translation in parallel with the cache look-up. The translation uses Secure descriptors if the processor is in the Secure state. Otherwise it uses the Non-secure descriptors.

  3. If the protection check carried out by the TLB on the VA does not abort and the PA tag is in the instruction cache, the instruction data is returned to the processor.

  4. If there is a cache miss, the PA is passed to the AXI bus interface to perform an external access. The external access is always Non-secure when the core is in the Non-secure state. In the Secure state, the external access is Secure or Non-secure according to the NS attribute value in the selected descriptor. In Secure state, both L1 and L2 table walks accesses are marked as Secure, even if the first level descriptor is marked as NS.

    Note

    Secure L2 look-ups are secure even if the L1 entry is marked Non-secure.

Copyright © 2008-2009 ARM. All rights reserved.ARM DDI 0388E
Non-Confidential