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