From 5bb226e821ea3c10c52d768ffab7952204b0f816 Mon Sep 17 00:00:00 2001
From: wdenk <wdenk>
Date: Mon, 17 Nov 2003 21:14:37 +0000
Subject: [PATCH] * Use "-fPIC" instead of "-mrelocatable" to prevent problems
 with   recent tools

* Add checksum verification to 'imls' command

* Add bd_info fields needed for 4xx Linux I2C driver

* Patch by Martin Krause, 4 Nov. 2003:
  Fix error in cmd_vfd.c (TRAB board: "vfd /1" shows now only one Bitmap)

* Print used network interface when CONFIG_NET_MULTI is set
---
 CHANGELOG                                            | 12 ++++++++++++
 .../bios_emulator/scitech/src/x86emu/makefile.cross  |  2 +-
 .../bios_emulator/scitech/src/x86emu/makefile.uboot  |  2 +-
 common/cmd_bootm.c                                   | 12 ++++++++++--
 common/cmd_vfd.c                                     |  2 --
 cpu/74xx_7xx/config.mk                               |  3 +--
 cpu/mpc5xx/config.mk                                 |  4 ++--
 cpu/mpc5xxx/config.mk                                |  2 +-
 cpu/mpc824x/config.mk                                |  3 +--
 cpu/mpc8260/config.mk                                |  2 +-
 cpu/mpc85xx/config.mk                                |  2 +-
 cpu/mpc8xx/config.mk                                 |  3 +--
 cpu/ppc4xx/config.mk                                 |  3 +--
 include/asm-ppc/u-boot.h                             |  4 ++++
 include/configs/PPChameleonEVB.h                     |  2 ++
 include/net.h                                        |  1 +
 lib_ppc/board.c                                      |  8 ++++++++
 net/eth.c                                            |  4 ++++
 net/tftp.c                                           |  3 +++
 tools/mkimage.c                                      |  4 ++--
 20 files changed, 57 insertions(+), 21 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 69ddff9838..a0c3660e17 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,18 @@
 Changes since U-Boot 1.0.0:
 ======================================================================
 
+* Use "-fPIC" instead of "-mrelocatable" to prevent problems with
+  recent tools
+
+* Add checksum verification to 'imls' command
+
+* Add bd_info fields needed for 4xx Linux I2C driver
+
+* Patch by Martin Krause, 4 Nov. 2003:
+  Fix error in cmd_vfd.c (TRAB board: "vfd /1" shows now only one Bitmap)
+
+* Print used network interface when CONFIG_NET_MULTI is set
+
 * Patch by Bernhard Kuhn, 28 Oct 2003:
   Add low boot support for MPC5200
 
diff --git a/board/MAI/bios_emulator/scitech/src/x86emu/makefile.cross b/board/MAI/bios_emulator/scitech/src/x86emu/makefile.cross
index 56f3cd766d..0bce9a96e5 100644
--- a/board/MAI/bios_emulator/scitech/src/x86emu/makefile.cross
+++ b/board/MAI/bios_emulator/scitech/src/x86emu/makefile.cross
@@ -63,7 +63,7 @@ $(TARGETDEBUGLIB): $(DEBUGOBJS)
 	$(AR) rv $(TARGETDEBUGLIB) $(DEBUGOBJS)
 
 INCS   = -I. -Ix86emu -I../../include
-CFLAGS = -D__DRIVER__ -DFORCE_POST -D_CEXPORT= -DNO_LONG_LONG -Dprintk=printf -fsigned-char  -fomit-frame-pointer -mrelocatable -ffixed-r14 -meabi -mrelocatable -ffixed-r14 -meabi
+CFLAGS = -D__DRIVER__ -DFORCE_POST -D_CEXPORT= -DNO_LONG_LONG -Dprintk=printf -fsigned-char  -fomit-frame-pointer -fPIC -ffixed-r14 -meabi
 CDEBUGFLAGS = -DDEBUG
 
 .c.o:
diff --git a/board/MAI/bios_emulator/scitech/src/x86emu/makefile.uboot b/board/MAI/bios_emulator/scitech/src/x86emu/makefile.uboot
index d011cf5f67..af9ae1f589 100644
--- a/board/MAI/bios_emulator/scitech/src/x86emu/makefile.uboot
+++ b/board/MAI/bios_emulator/scitech/src/x86emu/makefile.uboot
@@ -61,7 +61,7 @@ $(TARGETDEBUGLIB): $(DEBUGOBJS)
 	$(AR) rv $(TARGETDEBUGLIB) $(DEBUGOBJS)
 
 INCS   = -I. -Ix86emu -I../../include
-CFLAGS = -D__DRIVER__ -DFORCE_POST -D_CEXPORT= -DNO_LONG_LONG -Dprintk=printf -fsigned-char  -fomit-frame-pointer -mrelocatable -ffixed-r14 -meabi -mrelocatable -ffixed-r14 -meabi
+CFLAGS = -D__DRIVER__ -DFORCE_POST -D_CEXPORT= -DNO_LONG_LONG -Dprintk=printf -fsigned-char  -fomit-frame-pointer -fPIC -ffixed-r14 -meabi
 CDEBUGFLAGS = -DDEBUG
 
 .c.o:
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index e30d212b0c..c4a8685ce3 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -1056,7 +1056,7 @@ int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 	flash_info_t *info;
 	int i, j;
 	image_header_t *hdr;
-	ulong checksum;
+	ulong data, len, checksum;
 
 	for (i=0, info=&flash_info[0]; i<CFG_MAX_FLASH_BANKS; ++i, ++info) {
 		if (info->flash_id == FLASH_UNKNOWN)
@@ -1079,7 +1079,15 @@ int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 			printf ("Image at %08lX:\n", (ulong)hdr);
 			print_image_hdr( hdr );
-			putc ('\n');
+
+			data = (ulong)hdr + sizeof(image_header_t);
+			len  = ntohl(hdr->ih_size);
+
+			printf ("   Verifying Checksum ... ");
+			if (crc32 (0, (char *)data, len) != ntohl(hdr->ih_dcrc)) {
+				printf ("   Bad Data CRC\n");
+			}
+			printf ("OK\n");
 next_sector:		;
 		}
 next_bank:	;
diff --git a/common/cmd_vfd.c b/common/cmd_vfd.c
index 118c50dcbc..5e623a2705 100644
--- a/common/cmd_vfd.c
+++ b/common/cmd_vfd.c
@@ -90,8 +90,6 @@ int trab_vfd (ulong bitmap)
 		}
 		break;
 	case VFD_REMOTE_LOGO_BMPNR:
-		transfer_pic(3, &vfd_remote_logo_bitmap[0],
-			VFD_LOGO_HEIGHT, VFD_LOGO_WIDTH);
 		if ((s = getenv ("bitmap1")) != NULL) {
 			addr = (uchar *)simple_strtoul (s, NULL, 16);
 		} else {
diff --git a/cpu/74xx_7xx/config.mk b/cpu/74xx_7xx/config.mk
index 5623c461b4..d65b506730 100644
--- a/cpu/74xx_7xx/config.mk
+++ b/cpu/74xx_7xx/config.mk
@@ -21,7 +21,6 @@
 # MA 02111-1307 USA
 #
 
-PLATFORM_RELFLAGS += -mrelocatable -ffixed-r14 -meabi
+PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_74xx_7xx -ffixed-r2 -ffixed-r29 -mstring
-##PLATFORM_CPPFLAGS += -DCONFIG_74xx_7xx -ffixed-r2 -mstring
diff --git a/cpu/mpc5xx/config.mk b/cpu/mpc5xx/config.mk
index cfed4994ce..5b26a76b3e 100644
--- a/cpu/mpc5xx/config.mk
+++ b/cpu/mpc5xx/config.mk
@@ -28,6 +28,6 @@
 #
 
 
-PLATFORM_RELFLAGS += 	-mrelocatable -ffixed-r14 -meabi
+PLATFORM_RELFLAGS += 	-fPIC -ffixed-r14 -meabi
 
-PLATFORM_CPPFLAGS +=	-DCONFIG_5xx -ffixed-r2 -ffixed-r29  -mpowerpc -msoft-float
+PLATFORM_CPPFLAGS +=	-DCONFIG_5xx -ffixed-r2 -ffixed-r29 -mpowerpc -msoft-float
diff --git a/cpu/mpc5xxx/config.mk b/cpu/mpc5xxx/config.mk
index f84b098cae..0bee6d1347 100644
--- a/cpu/mpc5xxx/config.mk
+++ b/cpu/mpc5xxx/config.mk
@@ -21,7 +21,7 @@
 # MA 02111-1307 USA
 #
 
-PLATFORM_RELFLAGS += -mrelocatable -ffixed-r14 -meabi
+PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_MPC5XXX -ffixed-r2 -ffixed-r29 \
 		     -mstring -mcpu=603e -mmultiple
diff --git a/cpu/mpc824x/config.mk b/cpu/mpc824x/config.mk
index 0764898958..5011ddb52f 100644
--- a/cpu/mpc824x/config.mk
+++ b/cpu/mpc824x/config.mk
@@ -21,7 +21,6 @@
 # MA 02111-1307 USA
 #
 
-PLATFORM_RELFLAGS += -mrelocatable -ffixed-r14 -meabi
+PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_MPC824X -ffixed-r2 -ffixed-r29 -mstring -mcpu=603e -msoft-float
-##PLATFORM_CPPFLAGS += -DCONFIG_MPC824X -ffixed-r2 -mstring -mcpu=603e -msoft-float
diff --git a/cpu/mpc8260/config.mk b/cpu/mpc8260/config.mk
index 2ebed5b28a..3b2892481d 100644
--- a/cpu/mpc8260/config.mk
+++ b/cpu/mpc8260/config.mk
@@ -21,7 +21,7 @@
 # MA 02111-1307 USA
 #
 
-PLATFORM_RELFLAGS += -mrelocatable -ffixed-r14 -meabi
+PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_8260 -ffixed-r2 -ffixed-r29 \
 		     -mstring -mcpu=603e -mmultiple
diff --git a/cpu/mpc85xx/config.mk b/cpu/mpc85xx/config.mk
index c12e923066..4b11fc7378 100644
--- a/cpu/mpc85xx/config.mk
+++ b/cpu/mpc85xx/config.mk
@@ -21,6 +21,6 @@
 # MA 02111-1307 USA
 #
 
-PLATFORM_RELFLAGS += -mrelocatable -ffixed-r14 -meabi
+PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_MPC85xx -DCONFIG_E500 -ffixed-r2 -ffixed-r29 -Wa,-me500 -msoft-float
diff --git a/cpu/mpc8xx/config.mk b/cpu/mpc8xx/config.mk
index 45fd00c0cf..94c68db638 100644
--- a/cpu/mpc8xx/config.mk
+++ b/cpu/mpc8xx/config.mk
@@ -21,7 +21,6 @@
 # MA 02111-1307 USA
 #
 
-PLATFORM_RELFLAGS += -mrelocatable -ffixed-r14 -meabi
+PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_8xx -ffixed-r2 -ffixed-r29 -mstring -mcpu=860 -msoft-float
-##PLATFORM_CPPFLAGS += -DCONFIG_8xx -ffixed-r2 -mstring -mcpu=860 -msoft-float
diff --git a/cpu/ppc4xx/config.mk b/cpu/ppc4xx/config.mk
index ffcc24f438..bbbf8c2be8 100644
--- a/cpu/ppc4xx/config.mk
+++ b/cpu/ppc4xx/config.mk
@@ -21,7 +21,6 @@
 # MA 02111-1307 USA
 #
 
-PLATFORM_RELFLAGS += -mrelocatable -ffixed-r14 -meabi
+PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi
 
 PLATFORM_CPPFLAGS += -DCONFIG_4xx -ffixed-r2 -ffixed-r29 -mstring -Wa,-m405 -mcpu=405 -msoft-float
-##PLATFORM_CPPFLAGS += -DCONFIG_4xx -ffixed-r2 -mstring -mcpu=403 -msoft-float
diff --git a/include/asm-ppc/u-boot.h b/include/asm-ppc/u-boot.h
index f8cbeede5d..a442003ccb 100644
--- a/include/asm-ppc/u-boot.h
+++ b/include/asm-ppc/u-boot.h
@@ -92,6 +92,10 @@ typedef struct bd_info {
 	/* third onboard ethernet port */
 	unsigned char	bi_enet2addr[6];
 #endif
+#if defined(CONFIG_405GP) || defined(CONFIG_405EP)
+	unsigned int	bi_opbfreq;		/* OPB clock in Hz */
+	int		bi_iic_fast[2];		/* Use fast i2c mode */
+#endif
 #if defined(CONFIG_NX823)
 	unsigned char	bi_sernum[8];
 #endif
diff --git a/include/configs/PPChameleonEVB.h b/include/configs/PPChameleonEVB.h
index b480114373..78ae6ba9c0 100644
--- a/include/configs/PPChameleonEVB.h
+++ b/include/configs/PPChameleonEVB.h
@@ -691,4 +691,6 @@
 #endif
 #endif
 
+#define CFG_OPB_FREQ	50000000
+
 #endif	/* __CONFIG_H */
diff --git a/include/net.h b/include/net.h
index 98d59e73c2..39debc673d 100644
--- a/include/net.h
+++ b/include/net.h
@@ -117,6 +117,7 @@ extern int eth_init(bd_t *bis);			/* Initialize the device	*/
 extern int eth_send(volatile void *packet, int length);	   /* Send a packet	*/
 extern int eth_rx(void);			/* Check for received packets	*/
 extern void eth_halt(void);			/* stop SCC			*/
+extern char *eth_get_name(void);		/* get name of current device	*/
 
 
 /**********************************************************************/
diff --git a/lib_ppc/board.c b/lib_ppc/board.c
index 35a8276f1f..ea8adb91e0 100644
--- a/lib_ppc/board.c
+++ b/lib_ppc/board.c
@@ -501,6 +501,14 @@ void board_init_f (ulong bootflag)
 	bd->bi_plb_busfreq = gd->bus_clk;
 #if defined(CONFIG_405GP) || defined(CONFIG_405EP)
 	bd->bi_pci_busfreq = get_PCI_freq ();
+
+#ifdef CFG_OPB_FREQ
+	bd->bi_opbfreq = CFG_OPB_FREQ;
+#else
+	bd->bi_opbfreq = 50000000;
+#endif
+	bd->bi_iic_fast[0] = 0;
+	bd->bi_iic_fast[1] = 0;
 #endif
 #endif
 
diff --git a/net/eth.c b/net/eth.c
index 012158b7dc..eabbf631b3 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -324,4 +324,8 @@ void eth_try_another(int first_restart)
 	}
 }
 
+char *eth_get_name (void)
+{
+	return (eth_current ? eth_current->name : "unknown");
+}
 #endif
diff --git a/net/tftp.c b/net/tftp.c
index 049df6830a..d1a30d6643 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -294,6 +294,9 @@ TftpStart (void)
 		tftp_filename = BootFile;
 	}
 
+#if defined(CONFIG_NET_MULTI)
+	printf ("Using %s device\n", eth_get_name());
+#endif
 	puts ("TFTP from server ");	print_IPaddr (NetServerIP);
 	puts ("; our IP address is ");	print_IPaddr (NetOurIP);
 
diff --git a/tools/mkimage.c b/tools/mkimage.c
index 0e83546550..9ec02ce2b8 100644
--- a/tools/mkimage.c
+++ b/tools/mkimage.c
@@ -291,7 +291,7 @@ NXTARG:		;
 			exit (EXIT_FAILURE);
 		}
 
-		if (sbuf.st_size < sizeof(image_header_t)) {
+		if ((unsigned)sbuf.st_size < sizeof(image_header_t)) {
 			fprintf (stderr,
 				"%s: Bad size: \"%s\" is no valid image\n",
 				cmdname, imagefile);
@@ -530,7 +530,7 @@ copy_file (int ifd, const char *datafile, int pad)
 		 * reserved for it.
 		 */
 
-		if (sbuf.st_size < sizeof(image_header_t)) {
+		if ((unsigned)sbuf.st_size < sizeof(image_header_t)) {
 			fprintf (stderr,
 				"%s: Bad size: \"%s\" is too small for XIP\n",
 				cmdname, datafile);
-- 
2.39.5