Add NetConsole Support for AMCC eval boards
Patch by Stefan Roese, 20 Oct 2005
diff --git a/CHANGELOG b/CHANGELOG
index 7e6cf36..2dd5616 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
 Changes for U-Boot 1.1.4:
 ======================================================================
 
+* 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
 
diff --git a/cpu/ppc4xx/4xx_enet.c b/cpu/ppc4xx/4xx_enet.c
index 859b72d..753b2be 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 @@
 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.
@@ -1345,7 +1358,7 @@
 #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 01f86f5..95f9b5c 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 5feb63a..2f99ef0 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 5f608be..8eb4697 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 5a27c02..49dd487 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 d33956d..6dbce57 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 f2cd053..092959e 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 141cdb1..d2bba98 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