]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
* Patches by Richard Woodruff, 10 Jun 2004:
authorwdenk <wdenk>
Thu, 1 Jul 2004 20:28:03 +0000 (20:28 +0000)
committerwdenk <wdenk>
Thu, 1 Jul 2004 20:28:03 +0000 (20:28 +0000)
  - fix problems with examples/stubs.c for GCC >= 3.4
  - fix problems with gd initialization

* Enable FAT filesystem support for HMI10 board

CHANGELOG
examples/stubs.c
include/configs/HMI10.h
lib_arm/board.c
lib_i386/board.c
lib_m68k/board.c
lib_mips/board.c
lib_nios/board.c
lib_ppc/board.c

index 62dfd9c0699d36002f20d766606803b35c276d30..efd8663a3e24615ac236546d0c46225a80553f38 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,10 @@
 Changes since U-Boot 1.1.1:
 ======================================================================
 
+* Patches by Richard Woodruff, 10 Jun 2004:
+  - fix problems with examples/stubs.c for GCC >= 3.4
+  - fix problems with gd initialization
+
 * Patch by Curt Brune, 17 May 2004:
   - Add support for Samsung S3C4510B CPU (ARM7tdmi based SoC)
   - Add support for ESPD-Inc. EVB4510 Board
index 6f563ed9ba865f7745f0a31e220d815238f0f185..324a953e1868a66909b4c34251f2291b337e834f 100644 (file)
@@ -1,5 +1,9 @@
 #include <exports.h>
 
+#ifndef GCC_VERSION
+#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
+#endif /* GCC_VERSION */
+
 #if defined(CONFIG_I386)
 /*
  * x86 does not have a dedicated register to store the pointer to
@@ -117,7 +121,10 @@ gd_t *global_data;
  * implementation. On the other hand, asm() statements with
  * arguments can be used only inside the functions (gcc limitation)
  */
-static void __attribute__((unused)) dummy(void)
+#if GCC_VERSION < 3004
+static
+#endif /* GCC_VERSION */
+void __attribute__((unused)) dummy(void)
 {
 #include <_exports.h>
 }
index 62ca616deeb9e9dbe1cfafbadc3a446fa7304746..ca926a732440a33e58cf0ff246cf949572b3553b 100644 (file)
                                CFG_CMD_BMP     | \
                                CFG_CMD_DATE    | \
                                CFG_CMD_DHCP    | \
+                               CFG_CMD_FAT     | \
                                CFG_CMD_I2C     | \
                                CFG_CMD_IDE     )
 #else
                                CFG_CMD_ASKENV  | \
                                CFG_CMD_DATE    | \
                                CFG_CMD_DHCP    | \
+                               CFG_CMD_FAT     | \
                                CFG_CMD_I2C     | \
                                CFG_CMD_IDE     )
 #endif
index e97e158bf6e600624dcb45a6c01467766aaf9021..7673d063f5c96a56dda0437cca809840a1e66d5a 100644 (file)
@@ -217,6 +217,9 @@ void start_armboot (void)
 
        /* Pointer is writable since we allocated a register for it */
        gd = (gd_t*)(_armboot_start - CFG_MALLOC_LEN - sizeof(gd_t));
+       /* compiler optimization barrier needed for GCC >= 3.4 */
+       __asm__ __volatile__("": : :"memory");
+
        memset ((void*)gd, 0, sizeof (gd_t));
        gd->bd = (bd_t*)((char*)gd - sizeof(bd_t));
        memset (gd->bd, 0, sizeof (bd_t));
index b26d3d5eb1155880e56edac9b7de7dffa3af7ab6..a1808142e0a1af6eeb02de5fc5f485497f9581d1 100644 (file)
@@ -244,6 +244,8 @@ void start_i386boot (void)
        show_boot_progress(0x21);
 
        gd = global_data = &gd_data;
+       /* compiler optimization barrier needed for GCC >= 3.4 */
+       __asm__ __volatile__("": : :"memory");
 
        memset (gd, 0, sizeof (gd_t));
        gd->bd = &bd_data;
index 06b3bd5056321a1db35ffe1d3b5ed3d8c35365df..7e586fea5c076a9a6104e3ce0ebab95873b2a6c3 100644 (file)
@@ -257,6 +257,8 @@ board_init_f (ulong bootflag)
 
        /* Pointer is writable since we allocated a register for it */
        gd = (gd_t *) (CFG_INIT_RAM_ADDR + CFG_GBL_DATA_OFFSET);
+       /* compiler optimization barrier needed for GCC >= 3.4 */
+       __asm__ __volatile__("": : :"memory");
 
        /* Clear initial global data */
        memset ((void *) gd, 0, sizeof (gd_t));
index 7f5fa808f8d7cc5a0d30ce171b0e61316b83b95b..12df61fdde3734c88fb1933d49f95fc661d5d88a 100644 (file)
@@ -193,6 +193,9 @@ void board_init_f(ulong bootflag)
        /* Pointer is writable since we allocated a register for it.
         */
        gd = &gd_data;
+       /* compiler optimization barrier needed for GCC >= 3.4 */
+       __asm__ __volatile__("": : :"memory");
+
        memset ((void *)gd, 0, sizeof (gd_t));
 
        for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
index 30044f7adeb6d1e628e8688afe9ff47a8c282942..e6cda521ed1743c7aa1b41a4e8c8334da85b7303 100644 (file)
@@ -117,6 +117,9 @@ void board_init (void)
         * Nios treats CFG_GBL_DATA_OFFSET as an address.
         */
        gd = (gd_t *)CFG_GBL_DATA_OFFSET;
+       /* compiler optimization barrier needed for GCC >= 3.4 */
+       __asm__ __volatile__("": : :"memory");
+
        memset( gd, 0, CFG_GBL_DATA_SIZE );
 
        gd->bd = (bd_t *)(gd+1);        /* At end of global data */
index c9e38dfc3281912747f64554b424eb32b1016f62..7560a42d443fdb339646367d29fe4bcb26addd0c 100644 (file)
@@ -353,6 +353,8 @@ void board_init_f (ulong bootflag)
 
        /* Pointer is writable since we allocated a register for it */
        gd = (gd_t *) (CFG_INIT_RAM_ADDR + CFG_GBL_DATA_OFFSET);
+       /* compiler optimization barrier needed for GCC >= 3.4 */
+       __asm__ __volatile__("": : :"memory");
 
 #if !(defined(CONFIG_8260) || defined(CONFIG_MPC8560))
        /* Clear initial global data */