The TCR_EL2 characteristics are:
The control register for stage 1 of the EL2, or EL2&0, translation regime:
This register is part of:
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.
TCR_EL2 is a 64-bit register.
The TCR_EL2 bit assignments are:
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | TBID | HWU62 | HWU61 | HWU60 | HWU59 | HPD | 1 | HD | HA | TBI | 0 | PS | TG0 | SH0 | ORGN0 | IRGN0 | 0 | 0 | T0SZ | |||||||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
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.
Reserved, RES0.
Reserved, RES1.
Reserved, RES0.
Present only if ARMv8.3-TPAuth is implemented.
Controls the use of the top byte of instruction addresses for address matching. Defined values are:
TBID | Meaning |
---|---|
0 |
TCR_EL2.TBI applies to Instruction and Data accesses. |
1 |
TCR_EL2.TBI applies to Data accesses only. |
This affects addresses where the address would be translated by tables pointed to by TTBR0_EL2.
If ARMv8.3-TPAuth is not implemented, this field is RES0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[62] of the stage 1 translation table Block or Page entry.
Defined values are:
HWU62 | Meaning |
---|---|
0 |
Bit[62] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
Bit[62] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[61] of the stage 1 translation table Block or Page entry.
Defined values are:
HWU61 | Meaning |
---|---|
0 |
Bit[61] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
Bit[61] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD is 1. |
This field is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[60] of the stage 1 translation table Block or Page entry.
Defined values are:
HWU60 | Meaning |
---|---|
0 |
Bit[60] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
Bit[60] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[59] of the stage 1 translation table Block or Page entry.
Defined values are:
HWU59 | Meaning |
---|---|
0 |
Bit[59] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
Bit[59] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD is 0.
Reserved, RES0.
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:
HPD | Meaning |
---|---|
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.
Reserved, RES0.
Reserved, RES1.
Hardware management of dirty state in stage 1 translations from EL2.
Defined values are:
HD | Meaning |
---|---|
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.
Reserved, RES0.
Hardware Access flag update in stage 1 translations from EL2.
Defined values are:
HA | Meaning |
---|---|
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.
Reserved, RES0.
Top Byte ignored - indicates whether the top byte of an address is used for address match for the TTBR0_EL2 region, or ignored and used for tagged addresses.
TBI | Meaning |
---|---|
0 |
Top Byte used in the address calculation. |
1 |
Top Byte ignored in the address calculation. |
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.
If ARMv8.3-TPAuth is implemented and TCR_EL2.TBID is 1, then this field only applies to Data accesses.
Otherwise, if the value of TBI is 1, then bits[63:56] of that target address are also set to 0 before the address is stored in the PC, in the following cases:
Reserved, RES0.
Physical Address Size.
PS | Meaning |
---|---|
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.
Granule size for the TTBR0_EL2.
TG0 | Meaning |
---|---|
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.
Shareability attribute for memory associated with translation table walks using TTBR0_EL2.
SH0 | Meaning |
---|---|
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.
Outer cacheability attribute for memory associated with translation table walks using TTBR0_EL2.
ORGN0 | Meaning |
---|---|
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 |
Inner cacheability attribute for memory associated with translation table walks using TTBR0_EL2.
IRGN0 | Meaning |
---|---|
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 |
Reserved, RES0.
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.
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NFD1 | NFD0 | TBID1 | TBID0 | HWU162 | HWU161 | HWU160 | HWU159 | HWU062 | HWU061 | HWU060 | HWU059 | HPD1 | HPD0 | HD | HA | TBI1 | TBI0 | AS | 0 | IPS | ||
TG1 | SH1 | ORGN1 | IRGN1 | EPD1 | A1 | T1SZ | TG0 | SH0 | ORGN0 | IRGN0 | EPD0 | 0 | T0SZ | ||||||||||||||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
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.
Reserved, RES0.
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 from EL0 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:
NFD1 | Meaning |
---|---|
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.
Reserved, RES0.
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 from EL0 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:
NFD0 | Meaning |
---|---|
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.
Reserved, RES0.
Present only if ARMv8.3-TPAuth is implemented.
Controls the use of the top byte of instruction addresses for address matching. Defined values are:
TBID1 | Meaning |
---|---|
0 |
TCR_EL2.TBI1 applies to Instruction and Data accesses. |
1 |
TCR_EL2.TBI1 applies to Data accesses only. |
This affects addresses where the address would be translated by tables pointed to by TTBR1_EL2.
If ARMv8.3-TPAuth is not implemented, this field is RES0.
Reserved, RES0.
Present only if ARMv8.3-TPAuth is implemented.
Controls the use of the top byte of instruction addresses for address matching. Defined values are:
TBID0 | Meaning |
---|---|
0 |
TCR_EL2.TBI0 applies to Instruction and Data accesses. |
1 |
TCR_EL2.TBI0 applies to Data accesses only. |
This affects addresses where the address would be translated by tables pointed to by TTBR0_EL2.
If ARMv8.3-TPAuth is not implemented, this field is RES0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[62] of the stage 1 translation table Block or Page entry for translations using TTBR1_EL2.
Defined values are:
HWU162 | Meaning |
---|---|
0 |
For translations using TTBR1_EL2, bit[62] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
For translations using TTBR1_EL2, bit[62] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD1 is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD1 is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[61] of the stage 1 translation table Block or Page entry for translations using TTBR1_EL2.
Defined values are:
HWU161 | Meaning |
---|---|
0 |
For translations using TTBR1_EL2, bit[61] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
For translations using TTBR1_EL2, bit[61] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD1 is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD1 is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[60] of the stage 1 translation table Block or Page entry for translations using TTBR1_EL2.
Defined values are:
HWU160 | Meaning |
---|---|
0 |
For translations using TTBR1_EL2, bit[60] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
For translations using TTBR1_EL2, bit[60] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD1 is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD1 is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[59] of the stage 1 translation table Block or Page entry for translations using TTBR1_EL2.
Defined values are:
HWU159 | Meaning |
---|---|
0 |
For translations using TTBR1_EL2, bit[59] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
For translations using TTBR1_EL2, bit[59] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD1 is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD1 is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[62] of the stage 1 translation table Block or Page entry for translations using TTBR0_EL1.
Defined values are:
HWU062 | Meaning |
---|---|
0 |
For translations using TTBR0_EL1, bit[62] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
For translations using TTBR0_EL1, bit[62] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD0 is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD0 is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[61] of the stage 1 translation table Block or Page entry for translations using TTBR0_EL1.
Defined values are:
HWU061 | Meaning |
---|---|
0 |
For translations using TTBR0_EL1, bit[61] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
For translations using TTBR0_EL1, bit[61] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD0 is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD0 is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[60] of the stage 1 translation table Block or Page entry for translations using TTBR0_EL1.
Defined values are:
HWU060 | Meaning |
---|---|
0 |
For translations using TTBR0_EL1, bit[60] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
For translations using TTBR0_EL1, bit[60] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD0 is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD0 is 0.
Reserved, RES0.
Hardware Use. Indicates IMPLEMENTATION DEFINED hardware use of bit[59] of the stage 1 translation table Block or Page entry for translations using TTBR0_EL1.
Defined values are:
HWU059 | Meaning |
---|---|
0 |
For translations using TTBR0_EL1, bit[59] of each stage 1 translation table Block or Page entry cannot be used by hardware for an IMPLEMENTATION DEFINED purpose. |
1 |
For translations using TTBR0_EL1, bit[59] of each stage 1 translation table Block or Page entry can be used by hardware for an IMPLEMENTATION DEFINED purpose if the value of TCR_EL2.HPD0 is 1. |
This bit is RES0 if ARMv8.2-TTPBHA is not implemented.
The Effective value of this field is 0 if the value of TCR_EL2.HPD0 is 0.
Reserved, RES0.
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:
HPD1 | Meaning |
---|---|
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.
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:
HPD0 | Meaning |
---|---|
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.
Hardware management of dirty state in stage 1 translations from EL2.
Defined values are:
HD | Meaning |
---|---|
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.
Hardware Access flag update in stage 1 translations from EL2.
Defined values are:
HA | Meaning |
---|---|
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.
Top Byte ignored - indicates whether the top byte of an address is used for address match for the TTBR1_EL2 region, or ignored and used for tagged addresses. Defined values are:
TBI1 | Meaning |
---|---|
0 |
Top Byte used in the address calculation. |
1 |
Top Byte ignored in the address calculation. |
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.
If ARMv8.3-TPAuth is implemented and TCR_EL2.TBID1 is 1, then this field only applies to Data accesses.
Otherwise, if the value of TBI1 is 1 and bit [55] of the target address to be stored to the PC is 1, then bits[63:56] of that target address are also set to 1 before the address is stored in the PC, in the following cases:
Top Byte ignored - indicates whether the top byte of an address is used for address match for the TTBR0_EL2 region, or ignored and used for tagged addresses. Defined values are:
TBI0 | Meaning |
---|---|
0 |
Top Byte used in the address calculation. |
1 |
Top Byte ignored in the address calculation. |
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.
If ARMv8.3-TPAuth is implemented and TCR_EL2.TBID0 is 1, then this field only applies to Data accesses.
Otherwise, if the value of TBI0 is 1 and bit [55] of the target address to be stored to the PC is 1, then bits[63:56] of that target address are also set to 1 before the address is stored in the PC, in the following cases:
ASID Size. Defined values are:
AS | Meaning |
---|---|
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.
Reserved, RES0.
Intermediate Physical Address Size.
IPS | Meaning |
---|---|
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.
Granule size for the TTBR1_EL2.
TG1 | Meaning |
---|---|
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.
Shareability attribute for memory associated with translation table walks using TTBR1_EL2. Defined values are:
SH1 | Meaning |
---|---|
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.
Outer cacheability attribute for memory associated with translation table walks using TTBR1_EL2.
ORGN1 | Meaning |
---|---|
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 |
Inner cacheability attribute for memory associated with translation table walks using TTBR1_EL2.
IRGN1 | Meaning |
---|---|
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 |
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:
EPD1 | Meaning |
---|---|
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. |
Selects whether TTBR0_EL2 or TTBR1_EL2 defines the ASID. The encoding of this bit is:
A1 | Meaning |
---|---|
0 |
TTBR0_EL2.ASID defines the ASID. |
1 |
TTBR1_EL2.ASID defines the ASID. |
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.
Granule size for the TTBR0_EL2.
TG0 | Meaning |
---|---|
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.
Shareability attribute for memory associated with translation table walks using TTBR0_EL2.
SH0 | Meaning |
---|---|
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.
Outer cacheability attribute for memory associated with translation table walks using TTBR0_EL2.
ORGN0 | Meaning |
---|---|
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 |
Inner cacheability attribute for memory associated with translation table walks using TTBR0_EL2.
IRGN0 | Meaning |
---|---|
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 |
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:
EPD0 | Meaning |
---|---|
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. |
Reserved, RES0.
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.
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> | op0 | op1 | CRn | CRm | op2 |
---|---|---|---|---|---|
TCR_EL2 | 11 | 100 | 0010 | 0000 | 010 |
TCR_EL1 | 11 | 000 | 0010 | 0000 | 010 |
The register is accessible as follows:
<systemreg> | Control | Accessibility | |||||
---|---|---|---|---|---|---|---|
E2H | TGE | NS | EL0 | EL1 | EL2 | EL3 | |
TCR_EL2 | x | x | 0 | - | - | n/a | RW |
TCR_EL2 | 0 | 0 | 1 | - | - | RW | RW |
TCR_EL2 | 0 | 1 | 1 | - | n/a | RW | RW |
TCR_EL2 | 1 | 0 | 1 | - | - | RW | RW |
TCR_EL2 | 1 | 1 | 1 | - | n/a | RW | RW |
TCR_EL1 | x | x | 0 | - | TCR_EL1 | n/a | TCR_EL1 |
TCR_EL1 | 0 | 0 | 1 | - | TCR_EL1 | TCR_EL1 | TCR_EL1 |
TCR_EL1 | 0 | 1 | 1 | - | n/a | TCR_EL1 | TCR_EL1 |
TCR_EL1 | 1 | 0 | 1 | - | TCR_EL1 | RW | TCR_EL1 |
TCR_EL1 | 1 | 1 | 1 | - | 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.
For a description of the prioritization of any generated exceptions, see section D1.13.2 (Synchronous exception prioritization) in the ARM® Architecture Reference Manual, ARMv8, for ARMv8-A architecture profile. Subject to the prioritization rules, the following traps and enables are applicable when accessing this register.
When EL2 is implemented and is using AArch64 and SCR_EL3.NS==1 && HCR_EL2.E2H==0 :
If HCR_EL2.NV==1, Non-secure accesses to this register from EL1 are trapped to EL2.
When EL2 is implemented and is using AArch64 and SCR_EL3.NS==1 && HCR_EL2.E2H==1 && HCR_EL2.TGE==0 :
If HCR_EL2.NV==1, Non-secure accesses to this register from EL1 are trapped to EL2.
28/09/2017 08:24
Copyright © 2010-2017 ARM Limited or its affiliates. All rights reserved. This document is Non-Confidential.