[U-Boot] [RFC PATCH] arm: arm926ejs: flush cache before disable it

Albert ARIBAUD
2013-07-05T21:02:00Z

Hi Bo,

On Tue, 2 Jul 2013 12:35:54 +0000, Bo Shen <voice.shen@gmail.com>
wrote:

> flush cache before disable it
>
> Signed-off-by: Bo Shen <voice.shen@gmail.com>
> ---
> arch/arm/cpu/arm926ejs/cpu.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/cpu/arm926ejs/cpu.c b/arch/arm/cpu/arm926ejs/cpu.c
> index 626384c..10aa165 100644
> --- a/arch/arm/cpu/arm926ejs/cpu.c
> +++ b/arch/arm/cpu/arm926ejs/cpu.c
> @@ -46,15 +46,14 @@ int cleanup_before_linux (void)
>
> disable_interrupts ();
>
> + /* flush I/D-cache */
> + cache_flush();
>
> /* turn off I/D-cache */
> icache_disable();
> dcache_disable();
> l2_cache_disable();
>
> - /* flush I/D-cache */
> - cache_flush();
> -
> return 0;
> }

What is this change supposed to fix? There is no need to flush before
disabling, and actually, flushing before disabling runs the risk that
between the two, some cache lines be dirtied again so that cache and
memory won't be coherent any more.

Amicalement,
--
Albert.