[U-Boot] [PATCH v3 0/2] Factorize ARM startup code as mush as possible.

Albert ARIBAUD albert.u.boot at aribaud.net
Sat Nov 10 18:00:11 CET 2012


The goal of this series is to scrub the start.S files
which have proliferated across arch/arm and eliminate
code redundancy.

Currently this series only factorizes the C runtime
framework, that is, the assembly code responsible for
setting up the C environments needed by board_init_*()
and relocate_code().

Further factorization is possible: relocate_code() can
be moved out and possibly rewritten in C now that it
has plain C function semantics; exception handlers
should also be pretty much cpu-independent.

Eventually, start.S files should disappear or contain
CPU-specific code only.

The new C runtime setup sequence has been validated step by
step on target versatileqemu using toolchain ELDK4.2.

The whole changes have been build-tested across all ARM
targets using MAKEALL -a arm.

Changes in v3:
- various clarifications and typo fixes
- fixed wrong LED calls conditional
- fixed open comment eating some code
- fixed code overrun in SPL case
Series-changes: 2
- moved description from cover letter to patch commit msg
- added note about tests in the cover letter
- fixed baords with CONFIG_SPL but not CONFIG_SPL_STACK
- no change

Changes in v2:
- introduced in V2

Albert ARIBAUD (2):
  arm: move C runtime setup code in crt0.S
  arm: remove useless code in start.S files

 arch/arm/cpu/arm1136/start.S              |   69 +++--------
 arch/arm/cpu/arm1176/start.S              |   62 ++--------
 arch/arm/cpu/arm720t/start.S              |   53 ++-------
 arch/arm/cpu/arm920t/start.S              |   61 ++--------
 arch/arm/cpu/arm925t/start.S              |   65 ++---------
 arch/arm/cpu/arm926ejs/start.S            |   86 ++------------
 arch/arm/cpu/arm946es/start.S             |   56 ++-------
 arch/arm/cpu/arm_intcm/start.S            |   63 ++--------
 arch/arm/cpu/armv7/start.S                |   58 +++-------
 arch/arm/cpu/ixp/start.S                  |   55 ++-------
 arch/arm/cpu/pxa/start.S                  |   63 ++--------
 arch/arm/cpu/s3c44b0/start.S              |   55 ++-------
 arch/arm/cpu/sa1100/start.S               |   50 ++------
 arch/arm/lib/Makefile                     |    2 +
 arch/arm/lib/board.c                      |   11 --
 arch/arm/lib/crt0.S                       |  180 +++++++++++++++++++++++++++++
 include/common.h                          |    2 +-
 include/configs/socfpga_cyclone5.h        |    2 +-
 lib/asm-offsets.c                         |   10 ++
 nand_spl/board/freescale/mx31pdk/Makefile |    6 +-
 nand_spl/board/karo/tx25/Makefile         |    6 +-
 21 files changed, 329 insertions(+), 686 deletions(-)
 create mode 100644 arch/arm/lib/crt0.S

-- 
1.7.9.5



More information about the U-Boot mailing list