3.2.56. c10, TLB Lockdown Registers

The purpose of the TLB Lockdown Registers is to control which of the fully-associative TLB entries to allocate on the next table walk. The TLB is normally allocated on a rotating basis. The oldest entry is always the next allocated.

You can configure the TLB Lockdown Registers to exclude a range of entries from the round-robin allocation scheme. You must use the TLB Lockdown Registers with the TLB preload operation. See c10, TLB preload operation for more information.

The TLB Lockdown Registers are:

Figure 3.50 shows the bit arrangement of the Data and Instruction TLB Lockdown Registers.

Figure 3.50. TLB Lockdown Register format


Table 3.110 shows how the bit values correspond with the Data and Instruction TLB Lockdown Register functions.

Table 3.110. TLB Lockdown Register bit functions

BitsFieldFunction

[31:27]

BaseDefines the offset from TLB entry 0 for which entries 0 to base - 1 are locked assuming P equals 1 during a hardware translation table walk.
[26:22]Victim

Specifies the entry where the next hardware translation table walk can place a TLB entry. The reset value is 0. Each hardware translation table walk increments the value of the Victim field.

[21:1]

-Reserved. UNP, SBZP.
[0]P

Determines if TLB entries allocated by subsequent translation table walks are not invalidated by the Invalidate TLB unlocked entries operation:

0 = allocated TLB entries are invalidated, reset value

1 = allocated TLB entries are not invalidated.


For the Data or Instruction TLB Lockdown Register:

Note

Setting the P bit before a hardware translation table walk does not guarantee the locking down of an entry. The Base field must be set to the first unlocked entry. The Victim field must always be set to a value greater than or equal to the value of the Base field.

Table 3.111 shows the results of attempted access for each mode.

Table 3.111. Results of access to the TLB Lockdown Register[46]

 Secure privilegedNonsecure privilegedSecure UserNonsecure User
TL bit valueReadWriteReadWriteReadWriteReadWrite
0DataDataUndefinedUndefinedUndefinedUndefinedUndefinedUndefined
1DataDataDataDataUndefinedUndefinedUndefinedUndefined

[46] An entry of Undefined in the table means that the access gives an Undefined Instruction exception when the coprocessor instruction is executed.


To access the Data TLB Lockdown Register, read or write CP15 with:

MRC p15, 0, <Rd>, c10, c0, 0 ; Read Data TLB Lockdown Register
MCR p15, 0, <Rd>, c10, c0, 0 ; Write Data TLB Lockdown Register

To access the Instruction TLB Lockdown Register, read or write CP15 with:

MRC p15, 0, <Rd>, c10, c0, 1 ; Read Instruction TLB Lockdown Register
MCR p15, 0, <Rd>, c10, c0, 1 ; Write Instruction TLB Lockdown Register
Copyright © 2006-2009 ARM Limited. All rights reserved.ARM DDI 0344I
Non-Confidential