lib_ppc: Move trap_init to occur earlier
authorBecky Bruce <becky.bruce@freescale.com>
Fri, 31 Oct 2008 22:14:39 +0000 (17:14 -0500)
committerJon Loeliger <jdl@freescale.com>
Mon, 10 Nov 2008 16:10:06 +0000 (10:10 -0600)
Doing trap_init immediately once we're running from RAM
means we're no longer dependent on the physical location of
the flash on non-BookE platforms. Before trap_init, those
platforms switch to real mode and go to 0xfff00100 on exception.
After the switch, they go to 0x00000100  This makes it easier to
move the flash location.

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
lib_ppc/board.c

index ce07c4ed86ace5a92be5792af4114836dcbd6291..289a32a644169d0947f432d89c14a90fa22be330 100644 (file)
@@ -689,6 +689,11 @@ void board_init_r (gd_t *id, ulong dest_addr)
 
        WATCHDOG_RESET ();
 
+       /*
+        * Setup trap handlers
+        */
+       trap_init (dest_addr);
+
 #if defined(CONFIG_BOARD_EARLY_INIT_R)
        board_early_init_r ();
 #endif
@@ -765,11 +770,6 @@ void board_init_r (gd_t *id, ulong dest_addr)
 
        asm ("sync ; isync");
 
-       /*
-        * Setup trap handlers
-        */
-       trap_init (dest_addr);
-
 #if !defined(CONFIG_SYS_NO_FLASH)
        puts ("FLASH: ");