[U-Boot] [PATCH v3 0/2] Fix thumb interwork in assembly code

Klaus Goger klaus.goger at theobroma-systems.com
Thu Apr 26 18:18:08 UTC 2018


While trying to compile u-boot in thumb due space constraints on a mxs
platform it was observed that there are some thumb-interwork issues
in the handwritten assembly files.

Since the first patch only applies to ARM926EJS and no board on that platform
has thumb enabled for now,it was probably never observed.
Strictly speaking it is not thumb specific as it can be triggered in ARM
mode too. But as it was discovered by enabling thumb and no mxs board is
currently using any relevant ARM code in lowlevel_init, we put the series
under the thumb subject.

The second one applies to the ARM specific assembly memcpy implementation
that is not enabled on any of the boards enabling thumb.

grep -l CONFIG_SYS_THUMB_BUILD=y configs/* | \
  xargs grep -c CONFIG_USE_ARCH_MEMCPY
configs/apalis_imx6_nospl_com_defconfig:0
configs/apalis_imx6_nospl_it_defconfig:0
configs/bk4r1_defconfig:0
configs/colibri_imx6_nospl_defconfig:0
configs/colibri_imx7_defconfig:0
configs/colibri_vf_defconfig:0
configs/highbank_defconfig:0
configs/openrd_base_defconfig:0
configs/openrd_client_defconfig:0
configs/openrd_ultimate_defconfig:0
configs/pcm052_defconfig:0
configs/tbs2910_defconfig:0
configs/x600_defconfig:0

With CONFIG_USE_ARCH_MEMCPY on our mxs platform the speedup for memcopy
was about 100%.

Changes in v3:
- reword commit message as it isn't thumb specific
- use r10 instead of sl alias as we don't use it as stack limit pointer
- revert return to a pc mov as it is a unnecessary change for this patch

Changes in v2:
- use bl instead of blx to call lowlevel_init
- remove mxs tag as it apply to all arm926ejs platforms
- added memcpy patch to the series

Klaus Goger (2):
  arm: preserve lr correctly in arm926ejs startup code
  arm: Make arch specific memcpy thumb-safe.

 arch/arm/cpu/arm926ejs/start.S | 4 ++--
 arch/arm/lib/memcpy.S          | 8 +++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

-- 
2.11.0



More information about the U-Boot mailing list