4.3.65. L2 Auxiliary Control Register, EL1

The L2ACTLR_EL1 characteristics are:

Purpose

Provides implementation defined configuration and control options for the L2 memory system. There is one L2 Auxiliary Control Register for the Cortex-A57 MPCore device.

Usage constraints

The accessibility to the L2ACTLR by Exception level is:

EL0EL1(NS)EL1(S)EL2EL3(SCR.NS = 1)EL3(SCR.NS = 0)
-RW[a]RW[a]RW[b]RWRW

[a] Write access if ACTLR_EL3.L2ACTLR is 1 and ACTLR_EL2.L2ACTLR is 1, or ACTLR_EL3.L2ACTLR is 1 and the Secure SCR.NS is 0.

[b] Write access if ACTLR_EL3.L2ACTLR is 1.

Note

The L2ACTLR_EL1 must be set statically and not dynamically changed.

The L2 Auxiliary Control Register can only be written when the L2 memory system is idle. ARM recommends that you write to this register after a powerup reset, before the MMU is enabled, and before any ACE, CHI, or ACP traffic begins.

If the register must be modified after a powerup reset sequence, you must to idle the L2 memory system with the following sequence:

  1. Disable the MMU from each processor followed by an ISB to ensure the MMU disable operation is complete, then execute a DSB to drain previous memory transactions.

  2. Ensure that the system has no outstanding ACE AC channel or CHI RXRSP coherence requests to the multiprocessor.

  3. Ensure that the system has no outstanding ACP requests to the multiprocessor.

When the L2 is idle, the processor can update the L2 Auxiliary Control Register followed by an ISB. After the L2 Auxiliary Control Register is updated, you can enable the MMUs and normal ACE or CHI and ACP traffic can resume.

Configurations

The L2ACTLR_EL1 is:

  • Common to the Secure and Non-secure states.

  • A 32 bit register in AArch64 state.

  • Architecturally mapped to the AArch32 L2ACTLR register.

Attributes

See the register summary in Table 4.15.

Figure 4.72 shows the L2ACTLR_EL1 bit assignments.

Figure 4.72. L2ACTLR_EL1 bit assignments

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.


Table 4.74 shows the L2ACTLR_EL1 bit assignments.

Table 4.74. L2ACTLR_EL1 bit assignments

BitsNameFunction
[31:29]-

Reserved, res0.

[28][a]Force L2 tag bank clock enable active

Forces L2 tag bank clock enable active:

0

Does not prevent the clock generator from stopping the L2 tag bank clock. This is the reset value.

1

Prevents the clock generator from stopping the L2 tag bank clock.

This bit applies to each of the two L2 cache tag bank clocks.

See L2 control and tag banks clock gating.

If the L2 dynamic retention feature is used then this bit must be zero. See L2 RAMs dynamic retention.

[27][a]Force L2 logic clock enable active

Forces L2 logic clock enable active:

0

Does not prevent the clock generator from stopping the L2 logic clock. This is the reset value.

1

Prevents the clock generator from stopping the L2 logic clock.

See L2 control and tag banks clock gating.

If the L2 dynamic retention feature is used then this bit must be zero. See L2 RAMs dynamic retention.

[26][a]Force L2, GIC, Timer RCG enables active

Forces L2, GIC CPU interface, and Timer Regional Clock Gate (RCG) enables active:

0

Enables L2, GIC CPU interface, and Timer RCGs for additional clock gating and potentially reduce dynamic power dissipation. This is the reset value.

1

Forces L2, GIC CPU interface, and Timer RCG enables HIGH.

Setting this bit to 1 has no effect if the multiprocessor is configured to not include RCGs. See Regional clock gating.

[25][a]Enable single issue across all tbnks when L2 arbitration replay threshold is reached

Enables single issue across all tag banks when the L2 arbitration replay threshold is reached, so that only one request can be active across both tag banks at any given time:

0

Disables single issue across the tag banks when the L2 arbitration replay threshold is reached. This is the reset value.

1

Enables single issue across the tag banks when the L2 arbitration replay threshold is reached.

[24]-

Reserved, res0.

[23][a]Disable prefetch requests from ReadUnique transactions

Disables prefetch requests from ReadUnique transactions:

0

Enables prefetch requests to be generated by ReadUnique transactions. This is the reset value.

1

Disables prefetch requests to be generated by ReadUnique transactions.

[22][a]Disable dynamic throttling of load/store prefetch requests

Disables dynamic throttling of load/store prefetch requests:

0

Enables dynamic throttling of load/store prefetch requests. This is the reset value.

1

Disables dynamic throttling of load/store prefetch requests.

[21:20]Disable throttling of L2 prefetch requests based on Fill/Evict Queue (FEQ) occupancy count[b]

Disables throttling of L2 prefetch requests based on FEQ occupancy count:

00

For a 16-entry FEQ implementation, enables throttling of L2 prefetch requests when FEQ count exceeds 12.

For a 20-entry FEQ implementation, enables throttling of L2 prefetch requests when FEQ count exceeds 16.

This is the reset value.

01

For a 16-entry FEQ implementation, enables throttling of L2 prefetch requests when FEQ count exceeds 10.

For a 20-entry FEQ implementation, enables throttling of L2 prefetch requests when FEQ count exceeds 14.

10

For a 16-entry FEQ implementation, enables throttling of L2 prefetch requests when FEQ count exceeds 8.

For a 20-entry FEQ implementation, enables throttling of L2 prefetch requests when FEQ count exceeds 12.

11

Disables throttling of L2 prefetch requests based on FEQ occupancy count.

[19:18]Disable limit on NC/SO/Dev stores in Address Sequence Queue (ASQ)

Disables limit on NC/SO/Dev stores in ASQ:

00

NC/SO/Dev stores limited to 12 entries in the ASQ. This is the reset value.

01

NC/SO/Dev stores limited to 10 entries in the ASQ.

10

NC/SO/Dev stores limited to 8 entries in the ASQ.

11

There is no limit on NC/SO/Dev stores in the ASQ.

[17][a]Disable L2 round-robin arbitration that only clocks through paths with an active requestor waiting to be arbitrated

Disable L2 round-robin arbitration that only clocks through paths with an active requestor waiting to be arbitrated:

0

Enables L2 round-robin arbitration that only clocks through paths with an active requestor waiting to be arbitrated. This is the reset value.

1

Disables L2 round-robin arbitration that only clocks through paths with an active requestor waiting to be arbitrated.

[16][a]Enable replay threshold single issue

Enables replay threshold single issue:

0

Disables replay threshold single issue. This is the reset value.

1

Enables replay threshold single issue. If there are 32 consecutive transactions on a tag bank replay, then single issue is forced until a transaction successfully passes hazard checking.

[15][a]Disable fast forwarding of data from ACE or CHI to LS and IF

Disables fast forwarding of data from ACE or CHI to LS and IF:

0

Enables fast forwarding of data from ACE or CHI to LS and IF. This is the reset value.

1

Disables fast forwarding of data from ACE or CHI to LS and IF.

[14]Enable UniqueClean evictions with data

Enables UniqueClean evictions with data:

0

Disables UniqueClean evictions with data. This is the reset value if the multiprocessor implements the ACE interface.

1

Enables UniqueClean evictions with data. This is the reset value if the multiprocessor implements the CHI interface.

[13][a]Disable clean evict optimization

Disables clean evict optimization:

0

Enables clean evict optimization. This is the reset value.

1

Disables clean evict optimization.

[12]-

Reserved, res0.

[11][a]Disable DSB with no DVM synchronization

Disables Data Synchronization Barrier (DSB) with no Distributed Virtual Memory (DVM) synchronization:

0

Enables DSB with no DVM synchronization. This is the reset value.

A DSB does not cause a DVM Sync message to occur. However, if a TLB maintenance operation, cache maintenance operation, or branch predictor maintenance operation occurs after the previous DSB then a DVM Sync message is generated regardless of the setting of this bit.

1

Disables DSB with no DVM synchronization. Therefore, a DSB always causes a DVM Sync message to occur.

[10]Disable Non-secure debug array read

Disables Non-secure debug array read:

0

Enables Non-secure debug array read access to Non-secure memory. This is the reset value.

1

Disables Non-secure debug array read access.

[9]-

Reserved, res0.

[8][a]Disable DVM and cache maintenance operation message broadcast

Disables DVM transactions and cache maintenance operation message broadcast:

0

Enables DVM and cache maintenance operation message broadcast. This is the reset value.

1

Disables DVM and cache maintenance operation message broadcast.

[7][a]Enable hazard detect timeout

Enables hazard detect timeout:

0

Disables hazard detect timeout. This is the reset value.

1

Enables hazard detect timeout.

[6][a]Disable ACE shareable or CHI snoopable transactions from master

Disables shareable or snoopable transactions from master:

0

Enables ACE shareable or CHI snoopable transactions from master. This is the reset value.

1

Disables ACE shareable or CHI snoopable transactions from master.

[5]-Reserved, res0.
[4]Disable WriteUnique and WriteLineUnique transactions from master

Disables WriteUnique and WriteLineUnique transactions from master:

0

Enables WriteUnique and WriteLineUnique transactions from master.

1

Disables WriteUnique and WriteLineUnique transactions from master. This is the reset value.

[3]Disable clean/evict push to external

Disables clean/evict push to external:

0

Enables clean/evict to be pushed out to external. This is the reset value if the multiprocessor implements the ACE interface.

1

Disables clean/evict from being pushed to external. This is the reset value if the multiprocessor implements the CHI interface.

[2][a]Limit to one request per tag bank

Limit to one request per tag bank:

0

Normal behavior permitting parallel requests to the tag banks. This is the reset value.

1

Limits to one request per tag bank.

[1][a]Enable arbitration replay threshold timeout

Enables arbitration replay threshold timeout:

0

Disables arbitration replay threshold timeout. This is the reset value.

1

Enables arbitration replay threshold timeout.

[0][a]Disable hardware prefetch forwarding

Disables hardware prefetch forwarding:

0

Enables hardware prefetch forwarding. This is the reset value.

1

Disables hardware prefetch forwarding.

[a] This bit is provided for debugging and characterization purpose only. For normal operation, ARM recommends that you do not change the value of this bit from its reset value.

[b] The 20-entry FEQ implementation option is available only in r1p0 and later revisions.


To access the L2ACTLR_EL1 in AArch64 state, read or write the register with:

MRS <Xt>, s3_1_c15_c0_0; Read EL1 L2 Auxiliary Control Register
MSR s3_1_c15_c0_0, <Xt>; Write EL1 L2 Auxiliary Control Register

To access the L2ACTLR in AArch32 state, read or write the CP15 register with:

MRC p15, 1, <Rt>, c15, c0, 0; Read L2 Auxiliary Control Register
MCR p15, 1, <Rt>, c15, c0, 0; Write L2 Auxiliary Control Register
Copyright © 2013, 2014 ARM. All rights reserved.ARM DDI 0488D
Non-ConfidentialID012914