[U-Boot] [PATCH 0/8] MIPS cache code cleanup

Paul Burton paul.burton at imgtec.com
Wed Jan 28 22:05:06 CET 2015


On Wed, Jan 28, 2015 at 09:31:25PM +0100, Daniel Schwierzeck wrote:
> Hi Paul,
> 
> Am 26.01.2015 um 16:02 schrieb Paul Burton:
> > This series cleans up the MIPS cache code somewhat, and unifies the
> > mips32 & mips64 implementations of it. This is largely in preparation
> > for further patches adding L2 cache support. The final patch of this
> > series fixes a bug encountered with recent cores on Malta boards.
> 
> thanks for doing this. I also have this on my to-do list.
> 
> Just a thought: if we finally have just the mips_cache_reset function in
> cache_init.S, couldn't we reimplement it in C entirely? I see no reason
> to implement it in assembler.

The only issue with that is that mips_cache_reset currently runs before
we have a stack set up, so if the C compiler were to attempt to use the
stack things would fall over. I guess we could set up the temporary
stack earlier, and it's probably unlikely the compiler would actually
make use of it so it shouldn't really slow things down. Any chance we
could squeeze this into this merge window though, and I'll move the
cache init to C next time? That will simplify my L2 code somewhat too -
thanks for the suggestion!

Paul

> > 
> > Paul Burton (8):
> >   MIPS: avoid .set ISA for cache operations
> >   MIPS: unify cache maintenance functions
> >   MIPS: unify cache initialization code
> >   MIPS: refactor L1 cache config reads to a macro
> >   MIPS: refactor cache loops to a macro
> >   MIPS: inline mips_init_[id]cache functions
> >   MIPS: allow systems to skip loads during cache init
> >   MIPS: clear TagLo select 2 during cache init
> > 
> >  arch/mips/Kconfig                                  |   6 +
> >  arch/mips/cpu/mips32/Makefile                      |   3 +-
> >  arch/mips/cpu/mips32/cpu.c                         | 119 -----------
> >  arch/mips/cpu/mips64/Makefile                      |   2 +-
> >  arch/mips/cpu/mips64/cache.S                       | 213 --------------------
> >  arch/mips/cpu/mips64/cpu.c                         |  58 ------
> >  arch/mips/include/asm/cacheops.h                   |   7 +
> >  arch/mips/lib/Makefile                             |   2 +
> >  arch/mips/lib/cache.c                              | 118 +++++++++++
> >  arch/mips/{cpu/mips32/cache.S => lib/cache_init.S} | 222 +++++++++------------
> >  10 files changed, 226 insertions(+), 524 deletions(-)
> >  delete mode 100644 arch/mips/cpu/mips64/cache.S
> >  create mode 100644 arch/mips/lib/cache.c
> >  rename arch/mips/{cpu/mips32/cache.S => lib/cache_init.S} (59%)
> > 
> 
> -- 
> - Daniel


More information about the U-Boot mailing list