
8 Jan
2013
8 Jan
'13
8:26 p.m.
On Tue, Nov 27, 2012 at 01:43:25PM +0100, Albert ARIBAUD wrote:
Move all the C runtime setup code from every start.S in arch/arm into arch/arm/lib/crt0.S. This covers the code sequence from setting up the initial stack to calling into board_init_r().
Also, rewrite the C runtime setup and make functions board_init_*() and relocate_code() behave according to normal C semantics (no jumping across the C stack any more, etc).
Some SPL targets had to be touched because they use start.S explicitly or for some reason; the relevant maintainers and custodians are cc:ed.
Signed-off-by: Albert ARIBAUD albert.u.boot@aribaud.net
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
This change breaks sandbox, powerpc, mips and m68k. I suspect fixing sandbox will be the easiest test-case and catch all of the others.
--
Tom