diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-03-16 15:15:21 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-05-29 19:50:17 -0400 |
commit | 6716173347a87790a03fda6b8f978ac096ca7758 (patch) | |
tree | 53804481cfc5e119d9d6d1f262060c44b948c81f /arch/arm | |
parent | 00123d9a8d25a90cdd964062f7f7877e510ec7c1 (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.c | 19 |
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 | ||
38 | static 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 | |||
38 | static int __init ux500_l2x0_init(void) | 46 | static 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 | ||