[PATCH 1/2] arm: disable L2 cache in the v7 finish function

Catalin Marinas catalin.marinas at arm.com
Tue Mar 9 11:43:04 EST 2010


On Tue, 2010-03-09 at 14:07 +0000, Saeed Bishara wrote:
> Signed-off-by: Saeed Bishara <saeed at marvell.com>
> ---
>  arch/arm/mm/proc-v7.S |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
> index 7aaf88a..06cc36c 100644
> --- a/arch/arm/mm/proc-v7.S
> +++ b/arch/arm/mm/proc-v7.S
> @@ -52,6 +52,11 @@ ENTRY(cpu_v7_proc_fin)
>         bic     r0, r0, #0x1000                 @ ...i............
>         bic     r0, r0, #0x0006                 @ .............ca.
>         mcr     p15, 0, r0, c1, c0, 0           @ disable caches
> +#ifdef CONFIG_OUTER_CACHE
> +       mrc     p15, 0, r0, c1, c0, 1
> +       bic     r0, r0, #0x2
> +       mcr     p15, 0, r0, c1, c0, 1           @ disable L2 cache
> +#endif
>         ldmfd   sp!, {pc}
>  ENDPROC(cpu_v7_proc_fin)

NACK.

I'm not sure why kexec doesn't work but bit 1 in this register has
different meanings on Cortex-A8 and A9.

Also, on Cortex-A8, it means L2EN but this refers to the inner L2 rather
than the outer cache (that's configurable via the L2 Auxiliary Cache
Control Register but the Linux meaning of outer cache is a separate
device outside the CPU acting as a cache controller).

-- 
Catalin




More information about the linux-arm-kernel mailing list