[PATCH] arm: l2c: unlock ways when in non-secure mode

From: Peng Fan
Date: Sun Nov 26 2017 - 07:26:19 EST


To boot Linux in Non-secure mode with l2x0, the l2x0 controller
is enabled in secure mode and ways locked to make it seems L2 cache
disabled during linux boot process. So during l2x0 initialization,
need to unlock the ways to make l2x0 could cache data/inst.

Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
Cc: Russell King <linux@xxxxxxxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Chris Brandt <chris.brandt@xxxxxxxxxxx>
Cc: Will Deacon <will.deacon@xxxxxxx>
---
arch/arm/mm/cache-l2x0.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
index 808efbb89b88..de8eed0871ec 100644
--- a/arch/arm/mm/cache-l2x0.c
+++ b/arch/arm/mm/cache-l2x0.c
@@ -879,6 +879,10 @@ static int __init __l2c_init(const struct l2c_init_data *data,
l2x0_saved_regs.aux_ctrl = aux;

data->enable(l2x0_base, data->num_lock);
+ } else {
+ pr_info("%s: unlock cache controller\n", data->type);
+
+ data->unlock(l2x0_base, data->num_lock);
}

outer_cache = fns;
--
2.14.1