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

Simon Glass
2012-11-30T22:10:01Z

Hi Albert,

On Wed, Nov 28, 2012 at 2:34 PM, Albert ARIBAUD
<albert.u.boot@aribaud.net> wrote:
> 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).

OK I will try a bit harder and come back to you. Sorry I can't do that
immediately but will be soon...

Regards,
Simon

>
>> Regards,
>> Simon
>
> Amicalement,
> --
> Albert.