[U-Boot] FW: [PATCH 18/30] riscv: invalidate the instruction cache before jumping to Linux

Rick Chen rickchen36 at gmail.com
Mon Oct 29 02:25:18 UTC 2018


Auer, Lukas <lukas.auer at aisec.fraunhofer.de> 於 2018年10月27日 週六 上午12:27寫道:
>
> Hi Rick,
>
> On Mon, 2018-10-22 at 09:39 +0800, Rick Chen wrote:
> > > From: Lukas Auer [mailto:lukas.auer at aisec.fraunhofer.de]
> > > Sent: Saturday, October 20, 2018 6:08 AM
> > > To: u-boot at lists.denx.de
> > > Cc: Bin Meng; Lukas Auer; Greentime Hu; Alexander Graf; Rick Jian-
> > > Zhi Chen(陳建志)
> > > Subject: [PATCH 18/30] riscv: invalidate the instruction cache
> > > before jumping to Linux
> > >
> > > Signed-off-by: Lukas Auer <lukas.auer at aisec.fraunhofer.de>
> > > ---
> > >
> > >  arch/riscv/lib/bootm.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c index
> > > a7a9fb921b..bc1d4b2864 100644
> > > --- a/arch/riscv/lib/bootm.c
> > > +++ b/arch/riscv/lib/bootm.c
> > > @@ -38,6 +38,7 @@ int do_bootm_linux(int flag, int argc, char
> > > *argv[], bootm_headers_t *images)
> > >                 return 1;
> > >
> > >         kernel = (void (*)(ulong, void *))images->ep;
> > > +       invalidate_icache_all();
> >
> > Hi Likas
> >
> > I wull use cleanup_before_linux() which is in cpu.c as below
> >
>
> I would prefer to keep the invalidate_icache_all() in bootm.c since it
> is important in the context of the function. I do agree that the data
> and instruction caches should be disabled in cleanup_before_linux().
>

Hi Lukas

It is ok to keep the invalidate_icache_all() in bootm.c

Rick

> Thanks,
> Lukas
>
> > int cleanup_before_linux(void)
> > {
> >   disable_interrupts();
> >
> >   /* turn off I/D-cache */
> >   cache_flush();
> >   icache_disable();
> >   dcache_disable();
> >
> >   return 0;
> > }
> >
> > and cache_flush() in cache.c as below
> >
> > void cache_flush(void)
> > {
> >   invalidate_icache_all();
> >   flush_dcache_all();
> > }
> >
> > Rick
> >
> > >
> > >         bootstage_mark(BOOTSTAGE_ID_RUN_OS);
> > >
> > > --
> > > 2.17.2
> > >


More information about the U-Boot mailing list