[U-Boot] [PATCH v4 1/2] arm: move C runtime setup code in crt0.S

Albert ARIBAUD
2012-11-28T22:34:34Z

Hi Simon,

On Wed, 28 Nov 2012 13:18:57 -0800, Simon Glass <sjg@chromium.org>
wrote:

> Hi Albert,
>
> On Tue, Nov 27, 2012 at 4:43 AM, Albert ARIBAUD
> <albert.u.boot@aribaud.net> 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>
>
> I tested this on Seaboard (Tegra 20).
>
> Tested-by: Simon Glass <sjg@chromium.org>
>
> I tried to test it on a snow (exynos5250) but couldn't really sync up
> with our tree, so gave up. I am not completely sure about how the
> CONFIG_SPL_BUILD stuff fits together in start.S and I got a build
> error I wasn't sure how to correct (arch/arm/cpu/armv7/start.S:179:
> undefined reference to `relocate_done')

Thansk Simon.

In file arch/arm/cpu/armv7/start.S, line 179 uses relocate_done and
line 228 provides it, and there is no preprocessor conditional
in-between, so I fail to see how you could get this error.

Is your tree (and branch) available so that I can try and see the issue
for myself? Either it'll uncover a problem in my patch series, or it'll
help you merge it (or both).

> Regards,
> Simon

Amicalement,
--
Albert.