[U-Boot] Please pull ARC changes

Alexey Brodkin Alexey.Brodkin at synopsys.com
Fri Mar 23 13:23:53 UTC 2018


Hi Tom,

This is the first batch of ARC changes for the next release.

Here we:
 1. Significantly rework cache-related functionality.
    In particular that fixes coherency problems in some corner-cases,
    allows us to enable and disable caches in run-time and still
    have properly running system, finally support execution from
    real flash (before we used to run from DDR from the very beginning).

 2. Remove string routines implemented in assembly.
    That allows us to build and run U-Boot on wide range og ARC cores
    with different configurations. I.e. whatever tuning is used on GCC's
    command-line we'll get code for desired flavor of ARC.
    Otherwise for each and every corner-case we would need to add ifdefs
    in assembly code to accommodate missing instructions etc.

 3. Get use of GCC's garbage collector which helps to slim-down resulting image
    quite a bit.

 4. Also now we may disable U-Boot self-relocation for ARC if needed either
    by platform or for debugging purposes.

-Alexey

P.S. Do you have an idea when RC1 is going to be cut?
     We have some other pending changes and it's good to understand how much time
     we have for finalization if we want [and we do want] to still squeeze it all
     in the next release.



The following changes since commit 9c0e2f6ed391f199ba1bf30c7d0b71123a012958:

  Merge git://git.denx.de/u-boot-fsl-qoriq (2018-03-20 18:39:27 -0400)

are available in the Git repository at:

  git://git.denx.de/u-boot-arc.git 

for you to fetch changes up to f665c14f04d225597cd3cb0c6faa35ddc2a1b2df:

  ARC: bootm: Refactor GO and PREP subcommands implementation (2018-03-23 15:57:51 +0300)

----------------------------------------------------------------
Alexey Brodkin (5):
      arc: Get rid of handwritten string routines
      arc: Don't halt slaves
      arc: Eliminate unused code and data with GCC's garbage collector
      arc: Introduce a possibility to not relocate U-boot
      arc: Fine-tune implementation of memory barriers

Eugeniy Paltsev (21):
      ARC: Cache: Move I$ entire operation to a separate function
      ARC: Cache: Remove per-line I$ operations as unused
      ARC: Cache: Add support for FLUSH_N_INV D$ operations
      ARC: Introduce is_isa_X() functions
      ARC: Flush & invalidate D$ with a single command
      ARC: Cache: Move IOC initialization to a separate function
      ARC: Move BCR encodings to separate header file
      ARC: Cache: Allways check D$ status before entire/line ops
      ARC: Cache: Use is_isa_arcv2() instead of CONFIG_ISA_ARCV2 ifdef
      ARC: Cache: Move SLC status check into slc_entire_op() and slc_rgn_op()
      ARC: Cache: Get rid of [slc,pae,icache,dcache]_exists global variables
      ARC: Move cache global variables to arch_global_data
      ARC: Cache: Move PAE exists check into slc_upper_region_init()
      ARC: Move IOC enabling to compile-time options
      ARC: Cache: Implement [i,d]cache_enabled() as separate functions
      ARC: Cache: Fix SLC operations when SLC is bypassed for data
      ARC: Implement a function to sync and cleanup caches
      ARC: Cache: Add more HW configuration checks
      ARC: Cache: Add missing cache cleanup before cache disable
      ARC: Cache: Refactor arc_ioc_setup()
      ARC: bootm: Refactor GO and PREP subcommands implementation

 arch/arc/Kconfig                   |  18 ++++
 arch/arc/config.mk                 |   3 +-
 arch/arc/include/asm/arc-bcr.h     |  77 +++++++++++++
 arch/arc/include/asm/arcregs.h     |  11 ++
 arch/arc/include/asm/cache.h       |   7 ++
 arch/arc/include/asm/global_data.h |   6 ++
 arch/arc/include/asm/io.h          |   8 +-
 arch/arc/include/asm/string.h      |  26 -----
 arch/arc/lib/Makefile              |   7 --
 arch/arc/lib/bootm.c               |  55 +++++-----
 arch/arc/lib/cache.c               | 677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
---------
 arch/arc/lib/init_helpers.c        |   6 +-
 arch/arc/lib/memcmp.S              | 123 ---------------------
 arch/arc/lib/memcpy-700.S          |  63 -----------
 arch/arc/lib/memset.S              |  62 -----------
 arch/arc/lib/relocate.c            |   6 ++
 arch/arc/lib/start.S               |  28 ++---
 arch/arc/lib/strchr-700.S          | 141 ------------------------
 arch/arc/lib/strcmp.S              |  97 -----------------
 arch/arc/lib/strcpy-700.S          |  67 ------------
 arch/arc/lib/strlen.S              |  80 --------------
 board/synopsys/axs10x/axs10x.c     |  12 +++
 board/synopsys/hsdk/hsdk.c         |  11 ++
 common/board_f.c                   |   3 +-
 24 files changed, 635 insertions(+), 959 deletions(-)
 create mode 100644 arch/arc/include/asm/arc-bcr.h
 delete mode 100644 arch/arc/lib/memcmp.S
 delete mode 100644 arch/arc/lib/memcpy-700.S
 delete mode 100644 arch/arc/lib/memset.S
 delete mode 100644 arch/arc/lib/strchr-700.S
 delete mode 100644 arch/arc/lib/strcmp.S
 delete mode 100644 arch/arc/lib/strcpy-700.S
 delete mode 100644 arch/arc/lib/strlen.S


More information about the U-Boot mailing list