]> git.sur5r.net Git - u-boot/blobdiff - lib_nios/board.c
Update make target for ARM supported boards.
[u-boot] / lib_nios / board.c
index fb477e94e0cfc537837127fffba43fa524053d1f..e6cda521ed1743c7aa1b41a4e8c8334da85b7303 100644 (file)
@@ -49,7 +49,6 @@
 
 extern void malloc_bin_reloc (void);
 typedef int (init_fnc_t) (void);
-extern unsigned _vectors[];
 
 /*
  * Begin and End of memory area for malloc(), and current "brk"
@@ -118,11 +117,10 @@ void board_init (void)
         * Nios treats CFG_GBL_DATA_OFFSET as an address.
         */
        gd = (gd_t *)CFG_GBL_DATA_OFFSET;
-       memset( gd, 0, CFG_GBL_DATA_SIZE );
+       /* compiler optimization barrier needed for GCC >= 3.4 */
+       __asm__ __volatile__("": : :"memory");
 
-       /* Copy exception vectors to the correct location.
-        */
-       memcpy( (void *)CFG_VECT_BASE, _vectors, 256 );
+       memset( gd, 0, CFG_GBL_DATA_SIZE );
 
        gd->bd = (bd_t *)(gd+1);        /* At end of global data */
        gd->baudrate = CONFIG_BAUDRATE;
@@ -139,13 +137,16 @@ void board_init (void)
        bd->bi_baudrate = CONFIG_BAUDRATE;
 
        for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
+               WATCHDOG_RESET ();
                if ((*init_fnc_ptr) () != 0) {
                        hang ();
                }
        }
 
+       WATCHDOG_RESET ();
        bd->bi_flashsize = flash_init();
 
+       WATCHDOG_RESET ();
        mem_malloc_init();
        malloc_bin_reloc();
        env_relocate();
@@ -157,12 +158,14 @@ void board_init (void)
                if (s) s = (*e) ? e + 1 : e;
        }
 
+       WATCHDOG_RESET ();
        devices_init();
        jumptable_init();
        console_init_r();
        /*
         */
 
+       WATCHDOG_RESET ();
        interrupt_init ();
 
 #ifdef CONFIG_STATUS_LED