Thumb-2 support

Sascha Hauer s.hauer at pengutronix.de
Sat Dec 17 09:52:00 EST 2011


The following series adds Thumb-2 support to barebox. To do this
we have to update the Arm assembly functions which are from the
kernel anyway, so we just update them to newer versions. Some
boards may need additional updates for their lowlevel assembly
code. At least the babbage lowlevel code did not work in Thumb-2,
so this series contains an update for this board. If Omap works
in Thumb-2 remains to be tested.

This series was tested on a babbage board and reduces the binary
size by about 25%.

Sascha

Sascha Hauer (9):
      ARM i.MX5: prepare to add a imx51_lowlevel_init
      ARM i.MX51: implement a imx51_lowlevel_init
      ARM i.MX51 babbage: use generic lowlevel init function
      ARM eukrea i.MX51: use generic lowlevel init
      ARM: update string functions from Linux Kernel
      ARM cache-armv7: use thumb-2 instructions where necessary
      ARM: move exception vectors away from start of binary
      ARM: get runtime offset of board_init_lowlevel_return by using separate section
      ARM: Allow to compile in thumb-2 mode

 arch/arm/Kconfig                                   |   12 +
 arch/arm/Makefile                                  |   11 +-
 arch/arm/boards/eukrea_cpuimx25/eukrea_cpuimx25.c  |    3 +-
 arch/arm/boards/eukrea_cpuimx35/flash_header.c     |    3 +-
 arch/arm/boards/eukrea_cpuimx51/Makefile           |    1 -
 arch/arm/boards/eukrea_cpuimx51/eukrea_cpuimx51.c  |    3 +
 arch/arm/boards/eukrea_cpuimx51/flash_header.c     |    3 +-
 arch/arm/boards/eukrea_cpuimx51/lowlevel_init.S    |  216 --------------------
 arch/arm/boards/freescale-mx25-3-stack/3stack.c    |    3 +-
 .../boards/freescale-mx35-3-stack/flash_header.c   |    3 +-
 arch/arm/boards/freescale-mx51-pdk/Makefile        |    1 -
 arch/arm/boards/freescale-mx51-pdk/board.c         |    3 +
 arch/arm/boards/freescale-mx51-pdk/flash_header.c  |    3 +-
 arch/arm/boards/freescale-mx51-pdk/lowlevel_init.S |  216 --------------------
 arch/arm/boards/freescale-mx53-loco/board.c        |    2 +-
 arch/arm/boards/freescale-mx53-loco/flash_header.c |    3 +-
 arch/arm/boards/freescale-mx53-smd/board.c         |    2 +-
 arch/arm/boards/freescale-mx53-smd/flash_header.c  |    3 +-
 arch/arm/cpu/cache-armv7.S                         |    8 +-
 arch/arm/cpu/cpu.c                                 |   27 +++
 arch/arm/cpu/exceptions.S                          |    1 +
 arch/arm/cpu/mmu.c                                 |    4 +-
 arch/arm/cpu/start.c                               |   44 +++--
 arch/arm/include/asm/barebox-arm-head.h            |   29 +++
 arch/arm/include/asm/barebox-arm.h                 |    3 +
 arch/arm/include/asm/unified.h                     |    8 +-
 arch/arm/lib/armlinux.c                            |   16 ++-
 arch/arm/lib/barebox.lds.S                         |    7 +-
 arch/arm/lib/copy_template.S                       |   24 ++-
 arch/arm/lib/findbit.S                             |   84 +++++---
 arch/arm/lib/io-writesw-armv4.S                    |   11 +-
 arch/arm/lib/memcpy.S                              |    7 +-
 arch/arm/mach-imx/Kconfig                          |    2 -
 arch/arm/mach-imx/Makefile                         |    4 +-
 arch/arm/mach-imx/imx51.c                          |  105 ++++++++++
 arch/arm/mach-imx/imx53.c                          |   61 +-----
 arch/arm/mach-imx/include/mach/imx5.h              |    9 +
 arch/arm/mach-imx/include/mach/imx53.h             |    6 -
 commands/go.c                                      |    6 +-
 common/misc.c                                      |    3 +
 include/common.h                                   |    6 +
 41 files changed, 387 insertions(+), 579 deletions(-)
 delete mode 100644 arch/arm/boards/eukrea_cpuimx51/lowlevel_init.S
 delete mode 100644 arch/arm/boards/freescale-mx51-pdk/lowlevel_init.S
 create mode 100644 arch/arm/include/asm/barebox-arm-head.h
 create mode 100644 arch/arm/mach-imx/include/mach/imx5.h
 delete mode 100644 arch/arm/mach-imx/include/mach/imx53.h



More information about the barebox mailing list