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 <[email protected]> Cc: Russell King <[email protected]> Cc: Mark Rutland <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Chris Brandt <[email protected]> Cc: Will Deacon <[email protected]> --- 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

