summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnson Huang <b20788@freescale.com>2011-07-25 16:14:24 +0800
committerAnson Huang <b20788@freescale.com>2011-07-25 16:21:02 +0800
commitad53b52bc8d526e8b2c967d2c12b4040d7e5bb26 (patch)
tree7886836b6d7488e21c225970e8483b203c75582f
parent591ecdada27d1594aa76a87a67ba80ed0d6300b5 (diff)
ENGR00153601 [MX6]Adjust L2 cache parameter
Adjust L2 cache parameter to improve both performance and power consumption. Signed-off-by: Anson Huang <b20788@freescale.com>
-rw-r--r--arch/arm/mach-mx6/mm.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-mx6/mm.c b/arch/arm/mach-mx6/mm.c
index ab91c38f433e..f1d6d6d76924 100644
--- a/arch/arm/mach-mx6/mm.c
+++ b/arch/arm/mach-mx6/mm.c
@@ -66,6 +66,18 @@ void __init mx6_map_io(void)
#ifdef CONFIG_CACHE_L2X0
static int mxc_init_l2x0(void)
{
+ unsigned int val;
+
+ writel(0x132, IO_ADDRESS(L2_BASE_ADDR + L2X0_TAG_LATENCY_CTRL));
+ writel(0x132, IO_ADDRESS(L2_BASE_ADDR + L2X0_DATA_LATENCY_CTRL));
+
+ val = readl(IO_ADDRESS(L2_BASE_ADDR + L2X0_PREFETCH_CTRL));
+ val |= 0x40800000;
+ writel(val, IO_ADDRESS(L2_BASE_ADDR + L2X0_PREFETCH_CTRL));
+ val = readl(IO_ADDRESS(L2_BASE_ADDR + L2X0_POWER_CTRL));
+ val |= L2X0_DYNAMIC_CLK_GATING_EN;
+ val |= L2X0_STNDBY_MODE_EN;
+ writel(val, IO_ADDRESS(L2_BASE_ADDR + L2X0_POWER_CTRL));
l2x0_init(IO_ADDRESS(L2_BASE_ADDR), 0x0, ~0x00000000);
return 0;