[U-Boot] [RFC] ARM: mx31pdk: Use the new relocation scheme

Magnus Lilja lilja.magnus at gmail.com
Mon Feb 7 20:48:58 CET 2011


Hi

On 2011-02-07 15:13, Stefano Babic wrote:
>>> I have no idea if this breaks other boards but at least it's start
>>> for further work. I tried it on the imx31 litekit (which boots from
>>> NOR) but that board doesn't seem to boot even before applying
>>> Fabios patch, I'll see if I can figure out why that board is broken
>>> now. Don't know when though.
>>
>> I will let others comment about the changes you did in
>> arch/arm/cpu/arm1136/start.S Will also try it later today.
>
> Anyway, arch/arm/cpu/arm1136/start.S cannot be compiled without the
> changes suggested by Magnus due to the following lines:
>
> _nand_boot_ofs
>         : .word nand_boot - _start
>
> ":" seems to me wrong in any case and should be fixed. Is this syntax
> accepted by newer compiler releases ?
>
> IMHO board_init_f must be called absolutely before nand_boot. I have
> tested the changes suggested by Magnus on a i.MX35 and the board boots
> from NAND. However, I do not see the problems with the console, and I
> can think they are not related to this issue. >

I agree on that last statement, the console thing must be something else.

Here's a somewhat cleaner version of my patch. Hope the mail looks ok, 
I'm having internet connectivity issues this evening so I'm using a 
different installation of Thunderbird than usual.

Regards, Magnus

diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S
index 12545c2..bab2868 100644
--- a/arch/arm/cpu/arm1136/start.S
+++ b/arch/arm/cpu/arm1136/start.S
@@ -163,15 +163,7 @@ call_board_init_f:
         bic     sp, sp, #7 /* 8-byte alignment for ABI compliance */
         ldr     r0,=0x00000000

-#ifdef CONFIG_NAND_SPL
-       bl      nand_boot
-#else
-#ifdef CONFIG_ONENAND_IPL
-       bl      start_oneboot
-#else
         bl      board_init_f
-#endif /* CONFIG_ONENAND_IPL */
-#endif /* CONFIG_NAND_SPL */

 
/*------------------------------------------------------------------------------*/

@@ -267,10 +259,10 @@ clbss_l:str       r2, [r0]                /* clear 
loop...                    */
   */
  #ifdef CONFIG_NAND_SPL
         ldr     r0, _nand_boot_ofs
-       adr     r1, _start
-       add     pc, r0, r1
-_nand_boot_ofs:
-       .word nand_boot - _start
+       mov     pc, r0
+
+_nand_boot_ofs:
+       .word nand_boot
  #else
  jump_2_ram:
         ldr     r0, _board_init_r_ofs




More information about the U-Boot mailing list