diff mbox

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

Message ID 53BCFBC7.6040409@hale.at
State RFC
Delegated to: Stefano Babic
Headers show

Commit Message

Helmut Raiger July 9, 2014, 8:22 a.m. UTC
Hi,

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



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.
diff mbox

Patch

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