[PATCH] ARM: Add relocatable binary support
Sascha Hauer
s.hauer at pengutronix.de
Mon Mar 4 15:03:03 EST 2013
The following adds relocatable binary support for ARM. This can
be useful when a suitable memory location for the barebox binary
is not known at compile time, for example when compiling for multiple
SoCs.
In most cases enabling this feature will only result in the visible
effect that the binary gets bigger, so this feature is fully optional.
The relocatable support can be enabled for the PBL and the real binary
independently for greater flexibility and better debugability.
This series has been tested on various boards and I hope I have
covered all combinations of PBL enabled/disabled, PBL relocation
enabled/disabled, relocation enabled/disabled and MMU enabled/disabled.
Sascha
----------------------------------------------------------------
Sascha Hauer (6):
ARM: make cpu architecture detection available as static inline function
ARM: add early mmu cache flush function and use it in setup_c
ARM: provide accessor functions for linker variables
ARM boards: Use accessor functions to access linker variables
ARN: fixup vector addresses for relocatable binaries
ARM: Add relocatable binary support
arch/arm/Kconfig | 9 ++++
arch/arm/Makefile | 4 ++
arch/arm/boards/friendlyarm-tiny210/lowlevel.c | 3 +-
arch/arm/cpu/Makefile | 3 ++
arch/arm/cpu/cache.c | 33 +++++++++++++
arch/arm/cpu/common.c | 68 ++++++++++++++++++++++++++
arch/arm/cpu/cpu.c | 34 +------------
arch/arm/cpu/exceptions.S | 55 ++++++++++++++++++---
arch/arm/cpu/mmu.c | 2 +
arch/arm/cpu/setupc.S | 62 +++++++++++++++++++++++
arch/arm/cpu/start-pbl.c | 18 +++++--
arch/arm/cpu/start.c | 5 ++
arch/arm/include/asm/barebox-arm.h | 34 +++++++++++++
arch/arm/include/asm/cache.h | 8 +++
arch/arm/include/asm/mmu.h | 1 -
arch/arm/include/asm/sections.h | 33 +++++++++++++
arch/arm/include/asm/system_info.h | 43 ++++++++++++++++
arch/arm/lib/barebox.lds.S | 17 +++++++
arch/arm/lib/runtime-offset.S | 32 ++++++++++++
arch/arm/mach-imx/external-nand-boot.c | 27 +++++-----
arch/arm/pbl/Makefile | 3 ++
arch/arm/pbl/zbarebox.lds.S | 16 ++++++
common/Kconfig | 2 +-
drivers/mtd/nand/nand_s3c24xx.c | 2 +-
pbl/Kconfig | 10 ++++
25 files changed, 466 insertions(+), 58 deletions(-)
create mode 100644 arch/arm/cpu/common.c
More information about the barebox
mailing list