B1.114 TTBR0 with Short-descriptor translation table format

TTBR0 has a specific format when using the Short-descriptor translation table format. TTBCR.EAE determines which format of the register is in use.

The following figure shows the TTBR0 bit assignments when TTBCR.EAE is 0.

Figure B1-63 TTBR0 bit assignments, TTBCR.EAE is 0
To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


TTB0, [31:7]

Translation table base 0 address, bits[31:x], where x is 14-(TTBCR.N). Bits [x-1:7] are res0.

The value of x determines the required alignment of the translation table, that must be aligned to 2x bytes.

If bits [x-1:7] are not all zero, this is a misaligned Translation Table Base Address. Its effects are constrained unpredictable, where bits [x-1:7] are treated as if all the bits are zero. The value read back from those bits is the value written.

IRGN[0], [6]

See bit[0] for description of the IRGN field.

NOS, [5]

Not Outer Shareable bit. Indicates the Outer Shareable attribute for the memory associated with a translation table walk that has the Shareable attribute, indicated by TTBR0.S is 1. The possible values are:

0Outer Shareable.
1Inner Shareable.

This bit is ignored when TTBR0.S is 0.

RGN, [4:3]

Region bits. Indicates the Outer cacheability attributes for the memory associated with the translation table walks. The possible values are:

0b00Normal memory, Outer Non-cacheable.
0b01Normal memory, Outer Write-Back Write-Allocate Cacheable.
0b10Normal memory, Outer Write-Through Cacheable.
0b11Normal memory, Outer Write-Back no Write-Allocate Cacheable.
[2]
Reserved, res0.
S, [1]

Shareable bit. Indicates the Shareable attribute for the memory associated with the translation table walks. The possible values are:

0Non-shareable.
1Shareable.
IRGN[1], [0]

Inner region bits. Indicates the Inner Cacheability attributes for the memory associated with the translation table walks. The possible values of IRGN[1:0] are:

0b00Normal memory, Inner Non-cacheable.
0b01Normal memory, Inner Write-Back Write-Allocate Cacheable.
0b10Normal memory, Inner Write-Through Cacheable.
0b11Normal memory, Inner Write-Back no Write-Allocate Cacheable.

The encoding of the IRGN bits is counter-intuitive, with register bit[6] being IRGN[0] and register bit[0] being IRGN[1]. This encoding is chosen to give a consistent encoding of memory region types and to ensure that software written for ARMv7 without the Multiprocessing Extensions can run unmodified on an implementation that includes the functionality introduced by the ARMv7 Multiprocessing Extensions.

To access the TTBR0 when TTBCR.EAE is 0:

MRC p15,0,<Rt>,c2,c0,0 ; Read TTBR0 into Rt
MCR p15,0,<Rt>,c2,c0,0 ; Write Rt to TTBR0

Register access is encoded as follows:

Table B1-94 TTBR0 access encoding

coproc opc1 CRn CRm opc2
1111 000 0010 0000 000
Non-ConfidentialPDF file icon PDF versionARM 100241_0001_00_en
Copyright © 2016, 2017 ARM Limited or its affiliates. All rights reserved.