summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/cortex-a9.S
diff options
context:
space:
mode:
authorScott Williams <scwilliams@nvidia.com>2011-01-05 17:53:39 -0800
committerDan Willemsen <dwillemsen@nvidia.com>2011-04-26 15:49:06 -0700
commit6a7d0bbdfb3d0bfb177e18e8302e292dd7b8c078 (patch)
tree140caf75b2644f54c07348658e0060e01fdb534e /arch/arm/mach-tegra/cortex-a9.S
parent9c9f938f2c7d141a19668fe663cf186baca7f573 (diff)
arm: tegra: Add Tegra3 cluster-dependent PL310 timing values
The tag and data RAM latency values for the PL310 L2 cache controller are different between the G and LP CPU clusters. Set the correct cluster-dependent value whenever initializing or re-initializing the L2 cache controller. Original-Change-Id: I7681ebec58eaff293577269a85c51994140b1e34 Reviewed-on: http://git-master/r/15082 Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Tested-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Change-Id: I3f637783b52930f1d9303e044b645c7d136efc70
Diffstat (limited to 'arch/arm/mach-tegra/cortex-a9.S')
-rw-r--r--arch/arm/mach-tegra/cortex-a9.S12
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/cortex-a9.S b/arch/arm/mach-tegra/cortex-a9.S
index 1b2287033a4b..9fe221a097c6 100644
--- a/arch/arm/mach-tegra/cortex-a9.S
+++ b/arch/arm/mach-tegra/cortex-a9.S
@@ -538,6 +538,17 @@ ENTRY(__cortex_a9_l2x0_restart)
mov32 r9, (TEGRA_ARM_PL310_BASE-IO_CPU_PHYS+IO_CPU_VIRT)
add r10, r8, #CTX_L2_CTRL
ldmia r10, {r3-r7}
+#ifdef CONFIG_ARCH_TEGRA_3x_SOC
+#ifndef CONFIG_TEGRA_FPGA_PLATFORM
+ mov32 r5, (TEGRA_FLOW_CTRL_BASE-IO_PPSB_PHYS+IO_PPSB_VIRT)
+ ldr r5, [r5, #0x2C] @ FLOW_CTRL_CLUSTER_CONTROL
+ ands r5, r5, #1 @ 0 == G cluster, 1 == LP cluster
+ movweq r5, #0x331 @ G tag
+ movweq r6, #0x441 @ G data
+ movwne r5, #0x221 @ LP tag
+ movwne r6, #0x221 @ LP data
+#endif
+#endif
#ifndef CONFIG_TRUSTED_FOUNDATIONS
str r5, [r9, #L2X0_TAG_LATENCY_CTRL]
str r6, [r9, #L2X0_DATA_LATENCY_CTRL]
@@ -546,7 +557,6 @@ ENTRY(__cortex_a9_l2x0_restart)
mov r4, #0x2 @ L2X0_DYNAMIC_CLK_GATING_EN
str r4, [r9, #L2X0_PWR_CTRL]
cmp r0, #0
-
beq __reenable_l2x0
mov r0, #0xff