On Tue, 27 Nov 2012 13:43:24 +0100, Albert ARIBAUD <albert.u.b...@aribaud.net> wrote:
> The goal of this series is to scrub the start.S files > which have proliferated across arch/arm and eliminate > code redundancy. > > 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. > > Also, SPL currently makes board_init_f() perform all > of the setting up, including BSS clearing and chain- > loading. This could be streamlined by only putting > basic inits in board_init_f(), letting crt0 do the > BSS initialization and chain-loading U-Boot from > inside board_init_r(). > > 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 targets versatileqemu using gcc version 4.2.2 from > the ELDK4.2 toolchain, and wireless_space using gcc version > 4.7.2 (Ubuntu/Linaro 4.7.2-1ubuntu1). > > The whole changes have been build-tested across all ARM > targets using MAKEALL -a arm. > > Changes in v4: > - fixed bhs into blo in BSS init loop > - switched from explicit literals to '=target' notation > - fixed location of GD in initial environment > - stopped SPL boot sequence at calling board_init_f > > 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 > > Changes in v2: > - 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 > - removed useless includes in arm926ejs and arm925t > > 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 | 71 +++--------- > 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 | 173 > +++++++++++++++++++++++++++++ > 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, 322 insertions(+), 688 deletions(-) > create mode 100644 arch/arm/lib/crt0.S > Applied to u-boot-arm/master. Amicalement, -- Albert. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot