* Fix parameter passing to standalone images with bootm command

* Patch by Kyle Harris, 30 Oct 2003:
  Fix build errors for ixdp425 board

* Patch by David M. Horn, 29 Oct 2003:
  Fixes to build under CYGWIN

* Get IceCube MGT5100 working (again)
diff --git a/CHANGELOG b/CHANGELOG
index b8d8f49..16d7671 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,16 @@
 Changes for U-Boot 1.0.0:
 ======================================================================
 
+* Fix parameter passing to standalone images with bootm command
+
+* Patch by Kyle Harris, 30 Oct 2003:
+  Fix build errors for ixdp425 board
+
+* Patch by David M. Horn, 29 Oct 2003:
+  Fixes to build under CYGWIN
+
+* Get IceCube MGT5100 working (again)
+
 * Fix problems in memory test on some boards (which was not
   non-destructive as intended)
 
diff --git a/board/ixdp425/u-boot.lds b/board/ixdp425/u-boot.lds
index 3170aa0..cd44eb9 100644
--- a/board/ixdp425/u-boot.lds
+++ b/board/ixdp425/u-boot.lds
@@ -44,6 +44,10 @@
 	. = ALIGN(4);
 	.got : { *(.got) }
 
+	__u_boot_cmd_start = .;
+	.u_boot_cmd : { *(.u_boot_cmd) }
+	__u_boot_cmd_end = .;
+
 	armboot_end_data = .;
 
 	. = ALIGN(4);
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 852eefd..e30d212 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -149,7 +149,7 @@
 	uint	unc_len = 0x400000;
 	int	i, verify;
 	char	*name, *s;
-	int	(*appl)(cmd_tbl_t *, int, int, char *[]);
+	int	(*appl)(int, char *[]);
 	image_header_t *hdr = &header;
 
 	s = getenv ("verify");
@@ -251,21 +251,24 @@
 	SHOW_BOOT_PROGRESS (5);
 
 	switch (hdr->ih_type) {
-	case IH_TYPE_STANDALONE:	name = "Standalone Application";
-					/* A second argument overwrites the load address */
-					if (argc > 2) {
-						hdr->ih_load = simple_strtoul(argv[2], NULL, 16);
-					}
-					break;
-	case IH_TYPE_KERNEL:		name = "Kernel Image";
-					break;
-	case IH_TYPE_MULTI:		name = "Multi-File Image";
-					len  = ntohl(len_ptr[0]);
-					/* OS kernel is always the first image */
-					data += 8; /* kernel_len + terminator */
-					for (i=1; len_ptr[i]; ++i)
-						data += 4;
-					break;
+	case IH_TYPE_STANDALONE:
+		name = "Standalone Application";
+		/* A second argument overwrites the load address */
+		if (argc > 2) {
+			hdr->ih_load = simple_strtoul(argv[2], NULL, 16);
+		}
+		break;
+	case IH_TYPE_KERNEL:
+		name = "Kernel Image";
+		break;
+	case IH_TYPE_MULTI:	
+		name = "Multi-File Image";
+		len  = ntohl(len_ptr[0]);
+		/* OS kernel is always the first image */
+		data += 8; /* kernel_len + terminator */
+		for (i=1; len_ptr[i]; ++i)
+			data += 4;
+		break;
 	default: printf ("Wrong Image Type for %s command\n", cmdtp->name);
 		SHOW_BOOT_PROGRESS (-5);
 		return 1;
@@ -362,8 +365,8 @@
 			setenv("filesize", buf);
 			return 0;
 		}
-		appl = (int (*)(cmd_tbl_t *, int, int, char *[]))ntohl(hdr->ih_ep);
-		(*appl)(cmdtp, flag, argc-1, &argv[1]);
+		appl = (int (*)(int, char *[]))ntohl(hdr->ih_ep);
+		(*appl)(argc-1, &argv[1]);
 		return 0;
 	case IH_TYPE_KERNEL:
 	case IH_TYPE_MULTI:
diff --git a/cpu/ixp/timer.c b/cpu/ixp/timer.c
index baa7e72..8df2a31 100644
--- a/cpu/ixp/timer.c
+++ b/cpu/ixp/timer.c
@@ -30,6 +30,11 @@
 #include <common.h>
 #include <asm/arch/ixp425.h>
 
+ulong get_timer (ulong base)
+{
+       return get_timer_masked () - base;
+}
+
 void ixp425_udelay(unsigned long usec)
 {
 	/*
diff --git a/include/configs/IceCube.h b/include/configs/IceCube.h
index 49abede..821d3b9 100644
--- a/include/configs/IceCube.h
+++ b/include/configs/IceCube.h
@@ -213,8 +213,13 @@
 /*
  * Various low-level settings
  */
+#if defined(CONFIG_MPC5200)
 #define CFG_HID0_INIT		HID0_ICE | HID0_ICFI
 #define CFG_HID0_FINAL		HID0_ICE
+#else
+#define CFG_HID0_INIT		0
+#define CFG_HID0_FINAL		0
+#endif
 
 #define CFG_BOOTCS_START	CFG_FLASH_BASE
 #define CFG_BOOTCS_SIZE		CFG_FLASH_SIZE
diff --git a/include/elf.h b/include/elf.h
index 4ea3926..d0febc5 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -41,6 +41,11 @@
 #include <inttypes.h>
 #elif defined(__linux__) && defined(USE_HOSTCC)
 #include <stdint.h>
+#elif defined(__WIN32__)
+#include <unistd.h>
+typedef 	 unsigned char	 uint8_t;
+typedef 	 unsigned short  uint16_t;
+typedef 	 unsigned int	 uint32_t;
 #endif
 
 /*
diff --git a/tools/Makefile b/tools/Makefile
index c1313a2..c191203 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -96,6 +96,7 @@
 #
 ifeq ($(HOSTOS),cygwin)
 SFX = .exe
+HOST_CFLAGS += -D__WIN32__
 else
 SFX =
 endif
diff --git a/tools/bmp_logo.c b/tools/bmp_logo.c
index 2421b82..c473baa 100644
--- a/tools/bmp_logo.c
+++ b/tools/bmp_logo.c
@@ -11,11 +11,6 @@
 #endif
 #endif
 
-#ifdef __CYGWIN__
-typedef unsigned short ushort;
-#endif /* __CYGWIN__ */
-
-
 typedef struct bitmap_s {		/* bitmap description */
 	uint16_t width;
 	uint16_t height;