]> git.sur5r.net Git - u-boot/blobdiff - lib_nios/board.c
mpc83xx: mpc8360 rev.2.1 erratum 2: replace rgmii-id with rgmii-rxid
[u-boot] / lib_nios / board.c
index d6c02d8a4ced882676116e7f88b0e801152b95eb..0a0d2e38fdacb72e7c070ac896c703712f7f6871 100644 (file)
@@ -32,6 +32,7 @@
 #include <status_led.h>
 #endif
 
+DECLARE_GLOBAL_DATA_PTR;
 
 /*
  * All attempts to come up with a "common" initialization sequence
@@ -49,7 +50,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"
@@ -107,8 +107,6 @@ init_fnc_t *init_sequence[] = {
 /***********************************************************************/
 void board_init (void)
 {
-       DECLARE_GLOBAL_DATA_PTR;
-
        bd_t *bd;
        init_fnc_t **init_fnc_ptr;
        char *s, *e;
@@ -118,11 +116,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;