ソースを参照

* Patches by Richard Woodruff, 10 Jun 2004:
- fix problems with examples/stubs.c for GCC >= 3.4
- fix problems with gd initialization

* Enable FAT filesystem support for HMI10 board

wdenk 21 年 前
コミット
93f6a6771b
9 ファイル変更29 行追加1 行削除
  1. 4 0
      CHANGELOG
  2. 8 1
      examples/stubs.c
  3. 2 0
      include/configs/HMI10.h
  4. 3 0
      lib_arm/board.c
  5. 2 0
      lib_i386/board.c
  6. 2 0
      lib_m68k/board.c
  7. 3 0
      lib_mips/board.c
  8. 3 0
      lib_nios/board.c
  9. 2 0
      lib_ppc/board.c

+ 4 - 0
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

+ 8 - 1
examples/stubs.c

@@ -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>
 }

+ 2 - 0
include/configs/HMI10.h

@@ -131,6 +131,7 @@
 				CFG_CMD_BMP	| \
 				CFG_CMD_DATE	| \
 				CFG_CMD_DHCP	| \
+				CFG_CMD_FAT	| \
 				CFG_CMD_I2C	| \
 				CFG_CMD_IDE	)
 #else
@@ -138,6 +139,7 @@
 				CFG_CMD_ASKENV	| \
 				CFG_CMD_DATE	| \
 				CFG_CMD_DHCP	| \
+				CFG_CMD_FAT	| \
 				CFG_CMD_I2C	| \
 				CFG_CMD_IDE	)
 #endif

+ 3 - 0
lib_arm/board.c

@@ -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));

+ 2 - 0
lib_i386/board.c

@@ -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;

+ 2 - 0
lib_m68k/board.c

@@ -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));

+ 3 - 0
lib_mips/board.c

@@ -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) {

+ 3 - 0
lib_nios/board.c

@@ -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 */

+ 2 - 0
lib_ppc/board.c

@@ -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 */