[U-Boot] [PATCH] arc/cache: really do flush_dcache_all() even if IOC exists
Alexey Brodkin
Alexey.Brodkin at synopsys.com
Thu Apr 21 19:12:59 CEST 2016
Hi,
On Mon, 2016-04-18 at 13:28 +0300, Alexey Brodkin wrote:
> flush_dcache_all() is used in the very end of U-Boot self relocation
> to write back all copied and then patched code and data to their
> new location in the very end of available memory space.
>
> Since that has nothing to do with IO (i.e. no external DMA happens
> here) IOC won't help here and we need to write back data cache contents
> manually.
>
> Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
> ---
> arch/arc/lib/cache.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arc/lib/cache.c b/arch/arc/lib/cache.c
> index 56988dd..d1fb661 100644
> --- a/arch/arc/lib/cache.c
> +++ b/arch/arc/lib/cache.c
> @@ -430,13 +430,10 @@ void invalidate_dcache_all(void)
>
> void flush_dcache_all(void)
> {
> -#ifdef CONFIG_ISA_ARCV2
> - if (!ioc_exists)
> -#endif
> - __dc_entire_op(OP_FLUSH);
> + __dc_entire_op(OP_FLUSH);
>
> #ifdef CONFIG_ISA_ARCV2
> - if (slc_exists && !ioc_exists)
> + if (slc_exists)
> __slc_entire_op(OP_FLUSH);
> #endif
> }
Applied, thanks!
-Alexey
More information about the U-Boot
mailing list