diff --git a/CHANGELOG b/CHANGELOG
index a6e8e65bab3ffe0b8d8880151e684f1c82604c53..f02d194ffba038b14fb1517351195ad23a6c782d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,6 +4,21 @@ Changes for U-Boot 1.1.4:
 
 * Add PCI support for the TQM834x board.
 
+* Add missing 4xx board to MAKEALL
+  Patch by Stefan Roese, 20 Oct 2005
+
+* Fix conflicting types (flash_write()) in esd auto_update.c
+  Patch by Stefan Roese, 20 Oct 2005
+
+* Fix problem with sleep in NetConsole (use get_timer())
+  Patch by Stefan Roese, 20 Oct 2005
+
+* Add NetConsole Support for AMCC eval boards
+  Patch by Stefan Roese, 20 Oct 2005
+
+* Fix NetConsole support on 4xx (only print eth link on 1st transfer)
+  Patch by Stefan Roese, 18 Oct 2005
+
 * Add fat & ext2 support to AMCC 440EP boards Yosemite & Bamboo.
   Fix identation on ext2ls help entry.
   Patch by Stefan Roese, 14 Oct 2005
diff --git a/MAKEALL b/MAKEALL
index 0656c51ae50d14dbc0d4b8b7926bacb958b95081..41892f8bc95bb82d8773c1b8294f2507778bfa2d 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -63,16 +63,17 @@ LIST_8xx="	\
 LIST_4xx="	\
 	ADCIOP		AP1000		AR405		ASH405		\
 	bubinga		CANBT		CPCI2DP		CPCI405		\
-	CPCI4052	CPCI405AB	CPCI440		CPCIISER4	\
-	CRAYL1		csb272		csb472		DASA_SIM	\
-	DP405		DU405		ebony		ERIC		\
-	EXBITGEN	G2000		HUB405		JSE		\
-	KAREF		METROBOX	MIP405		MIP405T		\
-	ML2		ml300		ocotea		OCRTC		\
-	ORSG		PCI405		PIP405		PLU405		\
-	PMC405		PPChameleonEVB	sbc405		VOH405		\
-	W7OLMC		W7OLMG		walnut		WUH405		\
-	XPEDITE1K	yellowstone	yosemite        \
+	CPCI4052	CPCI405AB	CPCI405DT	CPCI440		\
+	CPCIISER4	CRAYL1		csb272		csb472		\
+	DASA_SIM	DP405		DU405		ebony		\
+	ERIC		EXBITGEN	G2000		HH405		\
+	HUB405		JSE		KAREF		METROBOX	\
+	MIP405		MIP405T		ML2		ml300		\
+	ocotea		OCRTC		ORSG		PCI405		\
+	PIP405		PLU405		PMC405		PPChameleonEVB	\
+	sbc405		VOH405		W7OLMC		W7OLMG		\
+	walnut		WUH405		XPEDITE1K	yellowstone	\
+	yosemite        \
 "
 
 #########################################################################
diff --git a/board/esd/common/auto_update.c b/board/esd/common/auto_update.c
index 1dceb3affbb2fe0d0232d258dd1634203ea370c3..d48e97286669030b4c1a02879066e16bc7f0be59 100644
--- a/board/esd/common/auto_update.c
+++ b/board/esd/common/auto_update.c
@@ -65,7 +65,7 @@ extern int transfer_pic(unsigned char, unsigned char *, int, int);
 #endif
 extern int flash_sect_erase(ulong, ulong);
 extern int flash_sect_protect (int, ulong, ulong);
-extern int flash_write (uchar *, ulong, ulong);
+extern int flash_write (char *, ulong, ulong);
 /* change char* to void* to shutup the compiler */
 extern block_dev_desc_t *get_dev (char*, int);
 
diff --git a/common/cmd_misc.c b/common/cmd_misc.c
index 674eafca3f18d5081fbf101a583003b33d4f3cc2..67ee9e8a83de02eabaa3aa85ad80a5472b8756d9 100644
--- a/common/cmd_misc.c
+++ b/common/cmd_misc.c
@@ -31,6 +31,7 @@
 
 int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
+	ulong start = get_timer(0);
 	ulong delay;
 
 	if (argc != 2) {
@@ -38,20 +39,18 @@ int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 		return 1;
 	}
 
-	delay = simple_strtoul(argv[1], NULL, 10);
+	delay = simple_strtoul(argv[1], NULL, 10) * CFG_HZ;
 
-	while (delay) {
-		int i;
-		for (i=0; i<1000; ++i) {
-			if (ctrlc ()) {
-				return (-1);
-			}
-			udelay (1000);
+	while (get_timer(start) < delay) {
+		if (ctrlc ()) {
+			return (-1);
 		}
-		--delay;
+		udelay (100);
 	}
+
 	return 0;
 }
+
 /* Implemented in $(CPU)/interrupts.c */
 #if (CONFIG_COMMANDS & CFG_CMD_IRQ)
 int do_irqinfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
diff --git a/cpu/ppc4xx/4xx_enet.c b/cpu/ppc4xx/4xx_enet.c
index d3f1de4359ba1a1166dd043eb87b29f4e418ecd9..753b2be0c511ba78bc36632961c781d90de90d74 100644
--- a/cpu/ppc4xx/4xx_enet.c
+++ b/cpu/ppc4xx/4xx_enet.c
@@ -100,6 +100,10 @@
 #error "CONFIG_MII has to be defined!"
 #endif
 
+#if defined(CONFIG_NETCONSOLE) && !defined(CONFIG_NET_MULTI)
+#error "CONFIG_NET_MULTI has to be defined for NetConsole"
+#endif
+
 #define EMAC_RESET_TIMEOUT 1000 /* 1000 ms reset timeout */
 #define PHY_AUTONEGOTIATE_TIMEOUT 4000	/* 4000 ms autonegotiate timeout */
 
@@ -111,10 +115,6 @@
 #define ENET_MAX_MTU	       PKTSIZE
 #define ENET_MAX_MTU_ALIGNED   PKTSIZE_ALIGN
 
-/* define the number of channels implemented */
-#define EMAC_RXCHL	EMAC_NUM_DEV
-#define EMAC_TXCHL	EMAC_NUM_DEV
-
 /*-----------------------------------------------------------------------------+
  * Defines for MAL/EMAC interrupt conditions as reported in the UIC (Universal
  * Interrupt Controller).
@@ -142,6 +142,19 @@ static uint32_t mal_ier;
 struct eth_device *emac0_dev = NULL;
 #endif
 
+/*
+ * Get count of EMAC devices (doesn't have to be the max. possible number
+ * supported by the cpu)
+ */
+#if defined(CONFIG_HAS_ETH3)
+#define LAST_EMAC_NUM	4
+#elif defined(CONFIG_HAS_ETH2)
+#define LAST_EMAC_NUM	3
+#elif defined(CONFIG_HAS_ETH1)
+#define LAST_EMAC_NUM	2
+#else
+#define LAST_EMAC_NUM	1
+#endif
 
 /*-----------------------------------------------------------------------------+
  * Prototypes and externals.
@@ -186,7 +199,9 @@ static void ppc_4xx_eth_halt (struct eth_device *dev)
 	/* EMAC RESET */
 	out32 (EMAC_M0 + hw_p->hw_addr, EMAC_M0_SRST);
 
+#ifndef CONFIG_NETCONSOLE
 	hw_p->print_speed = 1;	/* print speed message again next time */
+#endif
 
 	return;
 }
@@ -1343,7 +1358,7 @@ int ppc_4xx_eth_initialize (bd_t * bis)
 #endif
 #endif
 
-	for (eth_num = 0; eth_num < EMAC_NUM_DEV; eth_num++) {
+	for (eth_num = 0; eth_num < LAST_EMAC_NUM; eth_num++) {
 
 		/* See if we can actually bring up the interface, otherwise, skip it */
 		switch (eth_num) {
diff --git a/include/configs/bamboo.h b/include/configs/bamboo.h
index 01f86f514147945aac40a26828c15614cc42c018..95f9b5c62e0c9b271c65885c24e9469cf964ec80 100644
--- a/include/configs/bamboo.h
+++ b/include/configs/bamboo.h
@@ -278,12 +278,14 @@
 #define CONFIG_PHY1_ADDR        1
 
 #ifndef CONFIG_BAMBOO_NAND
-#define CONFIG_NET_MULTI        1       /* required for netconsole      */
 #define CONFIG_HAS_ETH1		1	/* add support for "eth1addr"	*/
 #endif /* CONFIG_BAMBOO_NAND */
 
 #define CFG_RX_ETH_BUFFER	32	/* Number of ethernet rx buffers & descriptors */
 
+#define CONFIG_NETCONSOLE		/* include NetConsole support	*/
+#define CONFIG_NET_MULTI        1       /* required for netconsole      */
+
 /* Partitions */
 #define CONFIG_MAC_PARTITION
 #define CONFIG_DOS_PARTITION
diff --git a/include/configs/bubinga.h b/include/configs/bubinga.h
index 5feb63a789a12a51d0bf213e03065de7253d75d0..2f99ef044e12ef2eed26ef7c9e002559dd456996 100644
--- a/include/configs/bubinga.h
+++ b/include/configs/bubinga.h
@@ -132,6 +132,8 @@
 #define CONFIG_NET_MULTI	1
 #define CFG_RX_ETH_BUFFER	16	/* Number of ethernet rx buffers & descriptors */
 
+#define CONFIG_NETCONSOLE		/* include NetConsole support	*/
+
 #define CONFIG_RTC_DS174x	1	/* use DS1743 RTC in Bubinga	*/
 
 #define CONFIG_COMMANDS	       (CONFIG_CMD_DFL	| \
diff --git a/include/configs/ebony.h b/include/configs/ebony.h
index 5f608be4c55f77206f356c23d47c08a051dba7a3..8eb4697df7ad9dc773840f67077c50d19ed788eb 100644
--- a/include/configs/ebony.h
+++ b/include/configs/ebony.h
@@ -197,6 +197,8 @@
 #define CONFIG_NET_MULTI	1
 #define CFG_RX_ETH_BUFFER	32	/* Number of ethernet rx buffers & descriptors */
 
+#define CONFIG_NETCONSOLE		/* include NetConsole support	*/
+
 #define CONFIG_COMMANDS	       (CONFIG_CMD_DFL	| \
 				CFG_CMD_ASKENV	| \
 				CFG_CMD_DATE	| \
diff --git a/include/configs/ocotea.h b/include/configs/ocotea.h
index 5a27c0270636a07f30f55bc87fb30efa96bb325d..49dd4878cb2434e3d8ad31a0fa2f110e1d286797 100644
--- a/include/configs/ocotea.h
+++ b/include/configs/ocotea.h
@@ -269,7 +269,9 @@
 #define CONFIG_ZERO_BOOTDELAY_CHECK	/* check for keypress on bootdelay==0 */
 #define CONFIG_VERSION_VARIABLE 1	/* include version env variable */
 
-#define CFG_RX_ETH_BUFFER	32	  /* Number of ethernet rx buffers & descriptors */
+#define CFG_RX_ETH_BUFFER	32	/* Number of ethernet rx buffers & descriptors */
+
+#define CONFIG_NETCONSOLE		/* include NetConsole support	*/
 
 /*-----------------------------------------------------------------------
  * PCI stuff
diff --git a/include/configs/walnut.h b/include/configs/walnut.h
index d33956d385a03137768d712eb3a47eb9034f4bc9..6dbce5788c42bfc2a25b56903536cade5c6dc9b2 100644
--- a/include/configs/walnut.h
+++ b/include/configs/walnut.h
@@ -163,6 +163,9 @@
 
 #define CFG_RX_ETH_BUFFER	16	/* use 16 rx buffer on 405 emac */
 
+#define CONFIG_NETCONSOLE		/* include NetConsole support	*/
+#define CONFIG_NET_MULTI		/* needed for NetConsole	*/
+
 /*-----------------------------------------------------------------------
  * I2C stuff
  *-----------------------------------------------------------------------
diff --git a/include/configs/yellowstone.h b/include/configs/yellowstone.h
index f2cd053e37127074e586d078bc9da1a721417be2..092959e3372ed5486907dd94c514dcc51a8bfe0f 100644
--- a/include/configs/yellowstone.h
+++ b/include/configs/yellowstone.h
@@ -200,7 +200,9 @@
 #define CONFIG_HAS_ETH1		1	/* add support for "eth1addr"	*/
 #define CONFIG_PHY_ADDR		1	/* PHY address, See schematics	*/
 
-#define CFG_RX_ETH_BUFFER	32	  /* Number of ethernet rx buffers & descriptors */
+#define CFG_RX_ETH_BUFFER	32	/* Number of ethernet rx buffers & descriptors */
+
+#define CONFIG_NETCONSOLE		/* include NetConsole support	*/
 
 /* Partitions */
 #define CONFIG_MAC_PARTITION
diff --git a/include/configs/yosemite.h b/include/configs/yosemite.h
index 141cdb19900b6f4bd0e3a9483b87720d7d1b1b61..d2bba98d00d67520c4bd5b6fd1cc0914fa0ca295 100644
--- a/include/configs/yosemite.h
+++ b/include/configs/yosemite.h
@@ -200,7 +200,9 @@
 #define CONFIG_HAS_ETH1		1	/* add support for "eth1addr"	*/
 #define CONFIG_PHY_ADDR		1	/* PHY address, See schematics	*/
 
-#define CFG_RX_ETH_BUFFER	32	  /* Number of ethernet rx buffers & descriptors */
+#define CFG_RX_ETH_BUFFER	32	/* Number of ethernet rx buffers & descriptors */
+
+#define CONFIG_NETCONSOLE		/* include NetConsole support	*/
 
 /* Partitions */
 #define CONFIG_MAC_PARTITION