TCR_EL2, Translation Control Register (EL2)

The TCR_EL2 characteristics are:

Purpose

The control register for stage 1 of the EL2, or EL2&0, translation regime:

This register is part of:

Configuration

AArch64 System register TCR_EL2 is architecturally mapped to AArch32 System register HTCR.

If EL2 is not implemented, this register is RES0 from EL3.

RW fields in this register reset to architecturally UNKNOWN values.

Attributes

TCR_EL2 is a 64-bit register.

Field descriptions

The TCR_EL2 bit assignments are:

When HCR_EL2.E2H==0:

6362616059585756555453525150494847464544434241403938373635343332
00000000000000000000000000000000
100HWU62HWU61HWU60HWU59HPD1HDHATBI0PSTG0SH0ORGN0IRGN000T0SZ
313029282726252423222120191817161514131211109876543210

This format applies in Secure state, and in all ARMv8.0 implementations.

Any of the bits in TCR_EL2 are permitted to be cached in a TLB.

Bits [63:32]

Reserved, RES0.

Bit [31]

Reserved, RES1.

Bits [30:29]

Reserved, RES0.

HWU62, bit [28]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[62] of the stage 1 translation table block or level 3 entry if the TCR_EL2.HPD value is 1.

Defined values are:

HWU62Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1 and ARMv8.0:

Reserved, RES0.

HWU61, bit [27]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[61] of the stage 1 translation table block or level 3 entry if the TCR_EL2.HPD value is 1.

Defined values are:

HWU61Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1 and ARMv8.0:

Reserved, RES0.

HWU60, bit [26]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[60] of the stage 1 translation table block or level 3 entry if the TCR_EL2.HPD value is 1.

Defined values are:

HWU60Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD bit value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1 and ARMv8.0:

Reserved, RES0.

HWU59, bit [25]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[59] of the stage 1 translation table block or level 3 entry if the TCR_EL2.HPD value is 1.

Defined values are:

HWU59Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD bit value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1 and ARMv8.0:

Reserved, RES0.

HPD, bit [24]
In ARMv8.2 and ARMv8.1:

Hierarchical Permission Disables. This affects the hierarchical control bits, APTable, PXNTable, and UXNTable, except NSTable, in the translation tables pointed to by TTBR0_EL2.

Defined values are:

HPDMeaning
0

Hierarchical permissions are enabled.

1

Hierarchical permissions are disabled.

Note

In this case bit[61] (APTable[0]) and bit[59] (PXNTable) of the next level descriptor attributes are required to be ignored by the PE, and are no longer reserved, allowing them to be used by software.

When disabled, the permissions are treated as if the bits are zero.

This bit is RES0 if ARMv8.1-HPD is not implemented.


In ARMv8.0:

Reserved, RES0.

Bit [23]

Reserved, RES1.

HD, bit [22]
In ARMv8.2 and ARMv8.1:

Hardware management of dirty state in stage 1 translations from EL2.

Defined values are:

HDMeaning
0

Stage 1 hardware management of dirty state disabled.

1

Stage 1 hardware management of dirty state enabled, only if the HA bit is also set to 1.

This bit is RES0 if ARMv8.1-TTHM is not implemented.


In ARMv8.0:

Reserved, RES0.

HA, bit [21]
In ARMv8.2 and ARMv8.1:

Hardware Access flag update in stage 1 translations from EL2.

Defined values are:

HAMeaning
0

Stage 1 Access flag update disabled.

1

Stage 1 Access flag update enabled.

This bit is RES0 if ARMv8.1-TTHM is not implemented.


In ARMv8.0:

Reserved, RES0.

TBI, bit [20]

Additionally, this affects changes to the program counter, when TBI is 1, caused by:

In these cases bits [63:56] of the address are set to 0 before it is stored in the PC.

This affects addresses generated in EL2 using AArch64 where the address would be translated by tables pointed to by TTBR0_EL2. It has an effect whether the EL2, or EL2&0, translation regime is enabled or not.

Bit [19]

Reserved, RES0.

PS, bits [18:16]

Physical Address Size.

PSMeaning
000

32 bits, 4GB.

001

36 bits, 64GB.

010

40 bits, 1TB.

011

42 bits, 4TB.

100

44 bits, 16TB.

101

48 bits, 256TB.

110

52 bits, 4PB

Other values are reserved.

The reserved values behave in the same way as the 101 encoding, but software must not rely on this property as the behavior of the reserved values might change in a future revision of the architecture.

The value 110 is permitted only if ARMv8.2-LPA is implemented and the translation granule size is 64KB.

In an implementation that supports 52-bit PAs, if the value of this field is not 110, then bits[51:48] of every translation table base address for the stage of translation controlled by TCR_EL2 are 0000.

TG0, bits [15:14]

Granule size for the TTBR0_EL2.

TG0Meaning
00

4KB

01

64KB

10

16KB

Other values are reserved.

If the value is programmed to either a reserved value, or a size that has not been implemented, then the hardware will treat the field as if it has been programmed to an IMPLEMENTATION DEFINED choice of the sizes that has been implemented for all purposes other than the value read back from this register.

It is IMPLEMENTATION DEFINED whether the value read back is the value programmed or the value that corresponds to the size chosen.

SH0, bits [13:12]

Shareability attribute for memory associated with translation table walks using TTBR0_EL2.

SH0Meaning
00

Non-shareable

10

Outer Shareable

11

Inner Shareable

Other values are reserved. The effect of programming this field to a Reserved value is that behavior is CONSTRAINED UNPREDICTABLE, as described in 'Reserved values in AArch64 System registers and translation table entries' in the ARM ARM, section K1.2.2.

ORGN0, bits [11:10]

Outer cacheability attribute for memory associated with translation table walks using TTBR0_EL2.

ORGN0Meaning
00

Normal memory, Outer Non-cacheable

01

Normal memory, Outer Write-Back Read-Allocate Write-Allocate Cacheable

10

Normal memory, Outer Write-Through Read-Allocate No Write-Allocate Cacheable

11

Normal memory, Outer Write-Back Read-Allocate No Write-Allocate Cacheable

IRGN0, bits [9:8]

Inner cacheability attribute for memory associated with translation table walks using TTBR0_EL2.

IRGN0Meaning
00

Normal memory, Inner Non-cacheable

01

Normal memory, Inner Write-Back Read-Allocate Write-Allocate Cacheable

10

Normal memory, Inner Write-Through Read-Allocate No Write-Allocate Cacheable

11

Normal memory, Inner Write-Back Read-Allocate No Write-Allocate Cacheable

Bits [7:6]

Reserved, RES0.

T0SZ, bits [5:0]

The size offset of the memory region addressed by TTBR0_EL2. The region size is 2(64-T0SZ) bytes.

The maximum and minimum possible values for T0SZ depend on the level of translation table and the memory translation granule size, as described in the AArch64 Virtual Memory System Architecture chapter.

When HCR_EL2.E2H==1:

6362616059585756555453525150494847464544434241403938373635343332
000000000NFD1NFD000HWU162HWU161HWU160HWU159HWU062HWU061HWU060HWU059HPD1HPD0HDHATBI1TBI0AS0IPS
TG1SH1ORGN1IRGN1EPD1A1T1SZTG0SH0ORGN0IRGN0EPD00T0SZ
313029282726252423222120191817161514131211109876543210

This view of the register is only valid from ARMv8.1, in Non-secure state, when HCR_EL2.E2H is 1.

Any of the bits in TCR_EL2 are permitted to be cached in a TLB.

Bits [63:55]

Reserved, RES0.

NFD1, bit [54]
In ARMv8.2:

Present only if SVE is implemented.

Non-fault translation table walk disable for translations using TTBR1_EL2.

This bit controls whether to perform a translation table walk in response to an SVE non-fault access for an address that is translated using TTBR1_EL2. The affected access types are:

See 'The Scalable Vector Extension (SVE)', in the ARM ARM, chapter A1 for more information.

Defined values are:

NFD1Meaning
0

Perform translation table walks using TTBR1_EL2.

1

A TLB miss on an address that is translated using TTBR1_EL2 due to an SVE non-fault access generates a Translation fault. No translation table walk is performed.

If SVE is not implemented, this field is RES0.


In ARMv8.1:

Reserved, RES0.

NFD0, bit [53]
In ARMv8.2:

Present only if SVE is implemented.

Non-fault translation table walk disable for translations using TTBR0_EL2.

This bit controls whether to perform a translation table walk in response to an SVE non-fault access for an address that is translated using TTBR0_EL2. The affected access types are:

See 'The Scalable Vector Extension (SVE)', in the ARM ARM, chapter A1 for more information.

Defined values are:

NFD0Meaning
0

Perform translation table walks using TTBR0_EL2.

1

A TLB miss on an address that is translated using TTBR0_EL2 due to an SVE non-fault access generates a Translation fault. No translation table walk is performed.

If SVE is not implemented, this field is RES0.


In ARMv8.1:

Reserved, RES0.

Bits [52:51]

Reserved, RES0.

HWU162, bit [50]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[62] of the stage 1 translation table block or level 3 entry for pages pointed to by TTBR1_EL2 if the TCR_EL2.HPD1 value is 1.

Defined values are:

HWU162Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD1 value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1:

Reserved, RES0.

HWU161, bit [49]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[61] of the stage 1 translation table block or level 3 entry for pages pointed to by TTBR1_EL2 if the TCR_EL2.HPD1 value is 1.

Defined values are:

HWU161Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD1 value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1:

Reserved, RES0.

HWU160, bit [48]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[60] of the stage 1 translation table block or level 3 entry for pages pointed to by TTBR1_EL2 if the TCR_EL2.HPD1 value is 1.

Defined values are:

HWU160Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD1 value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1:

Reserved, RES0.

HWU159, bit [47]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[59] of the stage 1 translation table block or level 3 entry for pages pointed to by TTBR1_EL2 if the TCR_EL2.HPD1 value is 1.

Defined values are:

HWU159Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD1 value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1:

Reserved, RES0.

HWU062, bit [46]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[62] of the stage 1 translation table block or level 3 entry for pages pointed to by TTBR0_EL2 if the TCR_EL2.HPD0 value is 1.

Defined values are:

HWU062Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD0 value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1:

Reserved, RES0.

HWU061, bit [45]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[61] of the stage 1 translation table block or level 3 entry for pages pointed to by TTBR0_EL2 if the TCR_EL2.HPD0 value is 1.

Defined values are:

HWU061Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD0 value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1:

Reserved, RES0.

HWU060, bit [44]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[60] of the stage 1 translation table block or level 3 entry for pages pointed to by TTBR0_EL2 if the TCR_EL2.HPD0 value is 1.

Defined values are:

HWU060Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD0 value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1:

Reserved, RES0.

HWU059, bit [43]
In ARMv8.2:

Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[59] of the stage 1 translation table block or level 3 entry for pages pointed to by TTBR0_EL2 if the TCR_EL2.HPD0 value is 1.

Defined values are:

HWU059Meaning
0

The stage 1 translation table entry block or level 3 bit cannot be interpreted by hardware for an IMPLEMENTATION DEFINED purpose.

1

The stage 1 translation table entry block or level 3 bit can be interpreted by hardware for an IMPLEMENTATION DEFINED purpose if the TCR_EL2.HPD0 value is 1.

This bit is RES0 if ARMv8.2-TTPBHA is not implemented.


In ARMv8.1:

Reserved, RES0.

HPD1, bit [42]

Hierarchical Permission Disables. This affects the hierarchical control bits, APTable, PXNTable, and UXNTable, except NSTable, in the translation tables pointed to by TTBR1_EL2.

Defined values are:

HPD1Meaning
0

Hierarchical permissions are enabled.

1

Hierarchical permissions are disabled.

When disabled, the permissions are treated as if the bits are zero.

This bit is RES0 if ARMv8.1-HPD is not implemented.

HPD0, bit [41]

Hierarchical Permission Disables. This affects the hierarchical control bits, APTable, PXNTable, and UXNTable, except NSTable, in the translation tables pointed to by TTBR0_EL2.

Defined values are:

HPD0Meaning
0

Hierarchical permissions are enabled.

1

Hierarchical permissions are disabled.

When disabled, the permissions are treated as if the bits are zero.

This bit is RES0 if ARMv8.1-HPD is not implemented.

HD, bit [40]

Hardware management of dirty state in stage 1 translations from EL2.

Defined values are:

HDMeaning
0

Stage 1 hardware management of dirty state disabled.

1

Stage 1 hardware management of dirty state enabled, only if the HA bit is also set to 1.

This bit is RES0 if ARMv8.1-TTHM is not implemented.

HA, bit [39]

Hardware Access flag update in stage 1 translations from EL2.

Defined values are:

HAMeaning
0

Stage 1 Access flag update disabled.

1

Stage 1 Access flag update enabled.

This bit is RES0 if ARMv8.1-TTHM is not implemented.

TBI1, bit [38]

Additionally, this affects changes to the program counter, when TBI1 is 1 and bit [55] of the target address is 1, caused by:

In these cases bits [63:56] of the address are also set to 1 before it is stored in the PC.

This affects addresses generated in EL0 and EL2 using AArch64 where the address would be translated by tables pointed to by TTBR1_EL2. It has an effect whether the EL2, or EL2&0, translation regime is enabled or not.

TBI0, bit [37]

Additionally, this affects changes to the program counter, when TBI0 is 1 and bit [55] of the target address is 0, caused by:

In these cases bits [63:56] of the address are also set to 0 before it is stored in the PC.

This affects addresses generated in EL0 and EL2 using AArch64 where the address would be translated by tables pointed to by TTBR0_EL2. It has an effect whether the EL2, or EL2&0, translation regime is enabled or not.

AS, bit [36]

ASID Size. Defined values are:

ASMeaning
0

8 bit - the upper 8 bits of TTBR0_EL2 and TTBR1_EL2 are ignored by hardware for every purpose except reading back the register, and are treated as if they are all zeros for when used for allocation and matching entries in the TLB.

1

16 bit - the upper 16 bits of TTBR0_EL2 and TTBR1_EL2 are used for allocation and matching in the TLB.

If the implementation has only 8 bits of ASID, this field is RES0.

Bit [35]

Reserved, RES0.

IPS, bits [34:32]

Intermediate Physical Address Size.

IPSMeaning
000

32 bits, 4GB.

001

36 bits, 64GB.

010

40 bits, 1TB.

011

42 bits, 4TB.

100

44 bits, 16TB.

101

48 bits, 256TB.

110

52 bits, 4PB

Other values are reserved.

The reserved values behave in the same way as the 101 encoding, but software must not rely on this property as the behavior of the reserved values might change in a future revision of the architecture.

The value 110 is permitted only if ARMv8.2-LPA is implemented and the translation granule size is 64KB.

In an implementation that supports 52-bit PAs, if the value of this field is not 110, then bits[51:48] of every translation table base address for the stage of translation controlled by TCR_EL2 are 0000.

TG1, bits [31:30]

Granule size for the TTBR1_EL2.

TG1Meaning
01

16KB

10

4KB

11

64KB

Other values are reserved.

If the value is programmed to either a reserved value, or a size that has not been implemented, then the hardware will treat the field as if it has been programmed to an IMPLEMENTATION DEFINED choice of the sizes that has been implemented for all purposes other than the value read back from this register.

It is IMPLEMENTATION DEFINED whether the value read back is the value programmed or the value that corresponds to the size chosen.

SH1, bits [29:28]

Shareability attribute for memory associated with translation table walks using TTBR1_EL2. Defined values are:

SH1Meaning
00

Non-shareable

10

Outer Shareable

11

Inner Shareable

Other values are reserved. The effect of programming this field to a Reserved value is that behavior is CONSTRAINED UNPREDICTABLE, as described in 'Reserved values in AArch64 System registers and translation table entries' in the ARM ARM, section K1.2.2.

ORGN1, bits [27:26]

Outer cacheability attribute for memory associated with translation table walks using TTBR1_EL2.

ORGN1Meaning
00

Normal memory, Outer Non-cacheable

01

Normal memory, Outer Write-Back Read-Allocate Write-Allocate Cacheable

10

Normal memory, Outer Write-Through Read-Allocate No Write-Allocate Cacheable

11

Normal memory, Outer Write-Back Read-Allocate No Write-Allocate Cacheable

IRGN1, bits [25:24]

Inner cacheability attribute for memory associated with translation table walks using TTBR1_EL2.

IRGN1Meaning
00

Normal memory, Inner Non-cacheable

01

Normal memory, Inner Write-Back Read-Allocate Write-Allocate Cacheable

10

Normal memory, Inner Write-Through Read-Allocate No Write-Allocate Cacheable

11

Normal memory, Inner Write-Back Read-Allocate No Write-Allocate Cacheable

EPD1, bit [23]

Translation table walk disable for translations using TTBR1_EL2. This bit controls whether a translation table walk is performed on a TLB miss, for an address that is translated using TTBR1_EL2. The encoding of this bit is:

EPD1Meaning
0

Perform translation table walks using TTBR1_EL2.

1

A TLB miss on an address that is translated using TTBR1_EL2 generates a Translation fault. No translation table walk is performed.

A1, bit [22]

Selects whether TTBR0_EL2 or TTBR1_EL2 defines the ASID. The encoding of this bit is:

A1Meaning
0

TTBR0_EL2.ASID defines the ASID.

1

TTBR1_EL2.ASID defines the ASID.

T1SZ, bits [21:16]

The size offset of the memory region addressed by TTBR1_EL2. The region size is 2(64-T1SZ) bytes.

The maximum and minimum possible values for T1SZ depend on the level of translation table and the memory translation granule size, as described in the AArch64 Virtual Memory System Architecture chapter.

TG0, bits [15:14]

Granule size for the TTBR0_EL2.

TG0Meaning
00

4KB

01

64KB

10

16KB

Other values are reserved.

If the value is programmed to either a reserved value, or a size that has not been implemented, then the hardware will treat the field as if it has been programmed to an IMPLEMENTATION DEFINED choice of the sizes that has been implemented for all purposes other than the value read back from this register.

It is IMPLEMENTATION DEFINED whether the value read back is the value programmed or the value that corresponds to the size chosen.

SH0, bits [13:12]

Shareability attribute for memory associated with translation table walks using TTBR0_EL2.

SH0Meaning
00

Non-shareable

10

Outer Shareable

11

Inner Shareable

Other values are reserved. The effect of programming this field to a Reserved value is that behavior is CONSTRAINED UNPREDICTABLE, as described in 'Reserved values in AArch64 System registers and translation table entries' in the ARM ARM, section K1.2.2.

ORGN0, bits [11:10]

Outer cacheability attribute for memory associated with translation table walks using TTBR0_EL2.

ORGN0Meaning
00

Normal memory, Outer Non-cacheable

01

Normal memory, Outer Write-Back Read-Allocate Write-Allocate Cacheable

10

Normal memory, Outer Write-Through Read-Allocate No Write-Allocate Cacheable

11

Normal memory, Outer Write-Back Read-Allocate No Write-Allocate Cacheable

IRGN0, bits [9:8]

Inner cacheability attribute for memory associated with translation table walks using TTBR0_EL2.

IRGN0Meaning
00

Normal memory, Inner Non-cacheable

01

Normal memory, Inner Write-Back Read-Allocate Write-Allocate Cacheable

10

Normal memory, Inner Write-Through Read-Allocate No Write-Allocate Cacheable

11

Normal memory, Inner Write-Back Read-Allocate No Write-Allocate Cacheable

EPD0, bit [7]

Translation table walk disable for translations using TTBR0_EL2. This bit controls whether a translation table walk is performed on a TLB miss, for an address that is translated using TTBR0_EL2. The encoding of this bit is:

EPD0Meaning
0

Perform translation table walks using TTBR0_EL2.

1

A TLB miss on an address that is translated using TTBR0_EL2 generates a Translation fault. No translation table walk is performed.

Bit [6]

Reserved, RES0.

T0SZ, bits [5:0]

The size offset of the memory region addressed by TTBR0_EL2. The region size is 2(64-T0SZ) bytes.

The maximum and minimum possible values for T0SZ depend on the level of translation table and the memory translation granule size, as described in the AArch64 Virtual Memory System Architecture chapter.

Accessing the TCR_EL2

This register can be read using MRS with the following syntax:

MRS <Xt>, <systemreg>

This register can be written using MSR (register) with the following syntax:

MSR <systemreg>, <Xt>

This syntax uses the following encoding in the System instruction encoding space:

<systemreg> op0op1CRnCRmop2
TCR_EL21110000100000010
TCR_EL11100000100000010

Accessibility

The register is accessible as follows:

<systemreg> Control Accessibility
E2HTGENSEL0EL1EL2EL3
TCR_EL2xx0 - - n/a RW
TCR_EL2001 - - RWRW
TCR_EL2011 - n/a RWRW
TCR_EL2101 - - RWRW
TCR_EL2111 - n/a RWRW
TCR_EL1xx0 - TCR_EL1 n/a TCR_EL1
TCR_EL1001 - TCR_EL1 TCR_EL1 TCR_EL1
TCR_EL1011 - n/a TCR_EL1 TCR_EL1
TCR_EL1101 - TCR_EL1 RW TCR_EL1
TCR_EL1111 - n/a RW TCR_EL1

When HCR_EL2.E2H is 1, without explicit synchronization, access from EL2 using the mnemonic TCR_EL2 or TCR_EL1 are not guaranteed to be ordered with respect to accesses using the other mnemonic.




18/04/2017 17:00

Copyright © 2010-2017 ARM Limited or its affiliates. All rights reserved. This document is Confidential.