[U-Boot] [PATCH 3/5] api: Flush cache when closing api
Emmanuel Vadot
manu at bidouilliste.com
Fri May 4 07:12:49 UTC 2018
On Mon, 30 Apr 2018 10:37:50 +0200
"Dr. Philipp Tomsich" <philipp.tomsich at theobroma-systems.com> wrote:
>
> > 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.
Tom had some concern about using weak function for this, see
https://lists.denx.de/pipermail/u-boot/2017-February/280652.html
But if everybody is happy with me adding some global weak function for
caches I'll do that.
> > return err;
> > }
> >
> > --
> > 2.16.3
> >
--
Emmanuel Vadot <manu at bidouilliste.com> <manu at freebsd.org>
More information about the U-Boot
mailing list