add DRAM offset into SYSCON and jump to DRAM if flash successfully
[ls2.git] / coldboot / coldboot.c
index a86d7fc2e449361de2c452a40bd320aa387481ff..097093078b083bf928078949f4eaccfa0ee75aec 100644 (file)
@@ -427,8 +427,12 @@ for (i=0;i<1000;i++) {
         (ftr & SYS_REG_INFO_HAS_DRAM) &&
         (failcnt == 0))
     {
-        copy_flash(spi_offs);
-        return DRAM_BASE;
+        // identify ELF, copy if present, and get the offset/addr
+        unsigned long faddr = copy_flash(spi_offs);
+        if (faddr != -1ul) {
+            // jump to offset/addr relative to DRAM base
+            return DRAM_BASE + faddr;
+        }
     }
 
        return 0;