[U-Boot] [PATCH 3/5] api: Flush cache when closing api
Dr. Philipp Tomsich
philipp.tomsich at theobroma-systems.com
Mon Apr 30 08:37:50 UTC 2018
> On 30 Apr 2018, at 10:34, Emmanuel Vadot <manu at freebsd.org> wrote:
>
> Signed-off-by: Emmanuel Vadot <manu at freebsd.org>
> ---
> api/api.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/api/api.c b/api/api.c
> index 7eee2fc083..7d1608b520 100644
> --- a/api/api.c
> +++ b/api/api.c
> @@ -290,6 +290,17 @@ static int API_dev_close(va_list ap)
> if (!err)
> di->state = DEV_STA_CLOSED;
>
> +#if defined(CONFIG_SYS_HAVE_DCACHE_MAINTENANCE) && \
> + !defined(CONFIG_SYS_DCACHE_OFF)
> + if (dcache_status())
> + flush_dcache_all();
> +#endif
> +#if defined(CONFIG_SYS_HAVE_ICACHE_MAINTENANCE) && \
> + !defined(CONFIG_SYS_ICACHE_OFF)
> + if (icache_status())
> + invalidate_icache_all();
> +#endif
Wouldn’t it be a cleaner option to make flush_dcache_all and invalidate_icache_all
weak-functions and provide a default implementation that does nothing. Those
architectures that then need to implement specific cache maintenance, could
override these as required.
> return err;
> }
>
> --
> 2.16.3
>
More information about the U-Boot
mailing list