[PATCH] ARM: Add relocatable binary support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox


[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux