[U-Boot] SPL broken on i.mx31 platforms

Magnus Lilja lilja.magnus at gmail.com
Mon Aug 4 22:23:10 CEST 2014


Hi

On 15 July 2014 11:31, Helmut Raiger <helmut.raiger at hale.at> wrote:
> Hi,
>
>    thx Magnus for the test, could you possibly change the few lines of code
> and test again:
>
> diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S
> index 1cfcca9..53bde12 100644
> --- a/arch/arm/cpu/arm1136/start.S
> +++ b/arch/arm/cpu/arm1136/start.S
> @@ -91,4 +91,9 @@ cpu_init_crit:
>
>         bl      lowlevel_init   /* go setup pll,mux,memory */
>         mov     lr, ip          /* restore link */
>         mov     pc, lr          /* back to my caller */
> +
> +       nop
> +       nop
> +       nop
> +
>  #endif /* CONFIG_SKIP_LOWLEVEL_INIT */
> diff --git a/arch/arm/lib/vectors.S b/arch/arm/lib/vectors.S
> index d68cc47..8c0e3c1 100644
> --- a/arch/arm/lib/vectors.S
> +++ b/arch/arm/lib/vectors.S
> @@ -50,7 +50,8 @@ _start:
>  #endif
>
>  _start:
> -       ldr     pc, _reset
> +       /* be position independent if SPL is linked at different location */
> +       b       reset
>         ldr     pc, _undefined_instruction
>         ldr     pc, _software_interrupt
>         ldr     pc, _prefetch_abort
>
>
> This fixes the SPL, in a later test I had to another nop and I still have
> no explanation why.
>
> Again thanks for the support.

I have now done some tests on i.MX31 PDK:
* v2013.04 and v2014.04 works
* v2014.07 and "tip of tree as of this mail" does not work

To make it work (both v2014.07 and tip of tree) I only have to change
the "ldr pc, _reset" to "b reset". I do not have to apply the nop-part
of the patch.

On a different note I noticed that I received a warning that the PDK
board does not use "generic board", I will try to fix this but I don't
know how much work that is and when I can submit a patch.

Regards, Magnus


More information about the U-Boot mailing list