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

Helmut Raiger helmut.raiger at hale.at
Wed Jul 9 10:22:31 CEST 2014


Hi,

     finally I have the SPL running again, with this fix:

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


I have no clue why the nops are necessary after cpu_init_crit(), but it 
won't work
unless there are at least 3 nops there (pipeline?).
It would be nice to have _some_ explanation for this before posting a patch.

Helmut

--
Scanned by MailScanner.



More information about the U-Boot mailing list