arm/davinci/da850: add uart0 pinmux
[oweals/u-boot.git] / arch / arm / cpu / arm926ejs / mx28 / start.S
index 94696d6cdc5b5731fcb5b98bf79d977ed361ede8..e572b786bb19844488d0b9c273bbc32948159adb 100644 (file)
 #include <common.h>
 #include <version.h>
 
-#if defined(CONFIG_OMAP1610)
-#include <./configs/omap1510.h>
-#elif defined(CONFIG_OMAP730)
-#include <./configs/omap730.h>
-#endif
-
 /*
  *************************************************************************
  *
@@ -173,10 +167,15 @@ _reset:
         */
        push    {r0-r12,r14}
 
+       /* save control register c1 */
+       mrc     p15, 0, r0, c1, c0, 0
+       push    {r0}
+
        /*
-        * set the cpu to SVC32 mode
+        * set the cpu to SVC32 mode and store old CPSR register content
         */
        mrs     r0,cpsr
+       push    {r0}
        bic     r0,r0,#0x1f
        orr     r0,r0,#0xd3
        msr     cpsr,r0
@@ -191,6 +190,20 @@ _reset:
 
        bl      board_init_ll
 
+       /*
+        * restore bootrom's cpu mode (especially FIQ)
+        */
+       pop     {r0}
+       msr     cpsr,r0
+
+       /*
+        * restore c1 register
+        * (especially set exception vector location back to
+        * bootrom space which is required by bootrom for USB boot)
+        */
+       pop     {r0}
+       mcr     p15, 0, r0, c1, c0, 0
+
        pop     {r0-r12,r14}
        bx      lr