aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2014-03-16 15:15:21 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-05-29 19:50:17 -0400
commit6716173347a87790a03fda6b8f978ac096ca7758 (patch)
tree53804481cfc5e119d9d6d1f262060c44b948c81f /arch/arm
parent00123d9a8d25a90cdd964062f7f7877e510ec7c1 (diff)
ARM: l2c: ux500: implement dummy write_sec method
ux500 can't write to any of the secure registers on the L2C controllers, so provide a dummy handler which ignores all writes. Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-ux500/cache-l2x0.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/arm/mach-ux500/cache-l2x0.c b/arch/arm/mach-ux500/cache-l2x0.c
index 132cd2b465e7..067c37a054fb 100644
--- a/arch/arm/mach-ux500/cache-l2x0.c
+++ b/arch/arm/mach-ux500/cache-l2x0.c
@@ -35,6 +35,14 @@ static int __init ux500_l2x0_unlock(void)
35 return 0; 35 return 0;
36} 36}
37 37
38static void ux500_l2c310_write_sec(unsigned long val, unsigned reg)
39{
40 /*
41 * We can't write to secure registers as we are in non-secure
42 * mode, until we have some SMI service available.
43 */
44}
45
38static int __init ux500_l2x0_init(void) 46static int __init ux500_l2x0_init(void)
39{ 47{
40 u32 aux_val = 0x3e000000; 48 u32 aux_val = 0x3e000000;
@@ -56,21 +64,14 @@ static int __init ux500_l2x0_init(void)
56 /* 64KB way size */ 64 /* 64KB way size */
57 aux_val |= L2C_AUX_CTRL_WAY_SIZE(3); 65 aux_val |= L2C_AUX_CTRL_WAY_SIZE(3);
58 66
67 outer_cache.write_sec = ux500_l2c310_write_sec;
68
59 /* 64KB way size, 8 way associativity, force WA */ 69 /* 64KB way size, 8 way associativity, force WA */
60 if (of_have_populated_dt()) 70 if (of_have_populated_dt())
61 l2x0_of_init(aux_val, 0xc0000fff); 71 l2x0_of_init(aux_val, 0xc0000fff);
62 else 72 else
63 l2x0_init(l2x0_base, aux_val, 0xc0000fff); 73 l2x0_init(l2x0_base, aux_val, 0xc0000fff);
64 74
65 /*
66 * We can't disable l2 as we are in non secure mode, currently
67 * this seems be called only during kexec path. So let's
68 * override outer.disable with nasty assignment until we have
69 * some SMI service available.
70 */
71 outer_cache.disable = NULL;
72 outer_cache.set_debug = NULL;
73
74 return 0; 75 return 0;
75} 76}
76 77