Reviewing myself:

On Sun,  4 Nov 2012 12:32:04 +0100, Albert ARIBAUD
<albert.u.b...@aribaud.net> wrote:

> diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S
> new file mode 100644
> index 0000000..fd6bd92
> --- /dev/null
> +++ b/arch/arm/lib/crt0.S

> +clbss_l:cmp  r0, r1                  /* while not at end of BSS */
> +     strlo   r2, [r0]                /* clear 32-bit BSS word */
> +     addlo   r0, r0, #4              /* move to next

Unclosed comment here. This causes the following code to be ignored:

> +     bhs     clbss_l
> +
> +#ifdef CONFIG_SPL_BUILD
> +
> +     bl coloured_LED_init
> +     bl red_led_on
> +
> +#endif
> +
> +     /* call board_init_r(gd_t *id, ulong dest_addr) */

Which might explain why SPL builds did not complain about LED calls and
why some boards failed.

Also:

> +#if defined(CONFIG_NAND_SPL)
> +     ldr     pc, _nand_boot
> +
> +#elif ! defined(CONFIG_SPL_BUILD)
> +
> +     /* setup parameters for board_init_r */
> +     mov     r0, r8                  /* gd_t */
> +     ldr     r1, [r8, #GD_RELOCADDR] /* dest_addr */
> +     /* call board_init_r */
> +     ldr     pc, _board_init_r       /* this is auto-relocated! */
> +
> +#endif

The #elif is wrong, as it causes CONFIG_SPL_BUILD builds to not call
board_init_f() at all; actually, they overrun into whatever follows.
This might have been what Sughosh (Cc:) hit with the hawkboard.

Amicalement,
-- 
Albert.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to