[U-Boot] [PATCH 16/17] Moved initialization of TULIP Ethernet controller to board_eth_init()

Ben Warren biggerbadderben at gmail.com
Sun Aug 31 10:46:50 CEST 2008


Affected boards:
	cu824
	bab7xx
	adciop
	dasa_sim
	mousse
	mpc8540eval
	musenki
	mvblue
	pcippc2/pcippc6
	sbc8240
	stxssa

Removed initialization of the driver from net/eth.c

Signed-off-by: Ben Warren <biggerbadderben at gmail.com>
---
 board/cu824/cu824.c             |    6 ++++++
 board/eltec/bab7xx/bab7xx.c     |    6 ++++++
 board/esd/adciop/adciop.c       |    6 ++++++
 board/esd/dasa_sim/dasa_sim.c   |    6 ++++++
 board/mousse/mousse.c           |    6 ++++++
 board/mpc8540eval/mpc8540eval.c |   12 ++++++++++++
 board/musenki/musenki.c         |    6 ++++++
 board/mvblue/mvblue.c           |    6 ++++++
 board/pcippc2/pcippc2.c         |    6 ++++++
 board/sbc8240/sbc8240.c         |    6 ++++++
 board/stxssa/stxssa.c           |    8 ++++++++
 include/netdev.h                |    4 ++++
 net/eth.c                       |    4 ----
 13 files changed, 78 insertions(+), 4 deletions(-)

diff --git a/board/cu824/cu824.c b/board/cu824/cu824.c
index ecf6328..0fd4223 100644
--- a/board/cu824/cu824.c
+++ b/board/cu824/cu824.c
@@ -28,6 +28,7 @@
 #include <mpc824x.h>
 #include <asm/processor.h>
 #include <pci.h>
+#include <netdev.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -91,3 +92,8 @@ void pci_init_board(void)
 {
 	pci_mpc824x_init(&hose);
 }
+
+int board_eth_init(bd_t *bis)
+{
+	return pci_eth_init(bis);
+}
diff --git a/board/eltec/bab7xx/bab7xx.c b/board/eltec/bab7xx/bab7xx.c
index af52352..8c56116 100644
--- a/board/eltec/bab7xx/bab7xx.c
+++ b/board/eltec/bab7xx/bab7xx.c
@@ -30,6 +30,7 @@
 #include <74xx_7xx.h>
 #include <ns87308.h>
 #include <video_fb.h>
+#include <netdev.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -244,3 +245,8 @@ void video_get_info_str (int line_number, char *info)
 #endif
 
 /*---------------------------------------------------------------------------*/
+
+int board_eth_init(bd_t *bis)
+{
+	return pci_eth_init(bis);
+}
diff --git a/board/esd/adciop/adciop.c b/board/esd/adciop/adciop.c
index 0f655b7..63aaf2c 100644
--- a/board/esd/adciop/adciop.c
+++ b/board/esd/adciop/adciop.c
@@ -22,6 +22,7 @@
  */
 
 #include <common.h>
+#include <netdev.h>
 #include "adciop.h"
 
 /* ------------------------------------------------------------------------- */
@@ -95,3 +96,8 @@ int testdram (void)
 }
 
 /* ------------------------------------------------------------------------- */
+
+int board_eth_init(bd_t *bis)
+{
+	return pci_eth_init(bis);
+}
diff --git a/board/esd/dasa_sim/dasa_sim.c b/board/esd/dasa_sim/dasa_sim.c
index fb0c77e..e061878 100644
--- a/board/esd/dasa_sim/dasa_sim.c
+++ b/board/esd/dasa_sim/dasa_sim.c
@@ -22,6 +22,7 @@
  */
 
 #include <common.h>
+#include <netdev.h>
 #include "dasa_sim.h"
 
 /* ------------------------------------------------------------------------- */
@@ -222,3 +223,8 @@ int testdram (void)
 }
 
 /* ------------------------------------------------------------------------- */
+
+int board_eth_init(bd_t *bis)
+{
+	return pci_eth_init(bis);
+}
diff --git a/board/mousse/mousse.c b/board/mousse/mousse.c
index f8f1529..7b61266 100644
--- a/board/mousse/mousse.c
+++ b/board/mousse/mousse.c
@@ -28,6 +28,7 @@
 
 #include <common.h>
 #include <mpc824x.h>
+#include <netdev.h>
 #include <asm/processor.h>
 
 #include "mousse.h"
@@ -84,3 +85,8 @@ int misc_init_f (void)
 	get_tod ();
 	return 0;
 }
+
+int board_eth_init(bd_t *bis)
+{
+	return pci_eth_init(bis);
+}
diff --git a/board/mpc8540eval/mpc8540eval.c b/board/mpc8540eval/mpc8540eval.c
index 7c54458..e1a1d2b 100644
--- a/board/mpc8540eval/mpc8540eval.c
+++ b/board/mpc8540eval/mpc8540eval.c
@@ -24,6 +24,7 @@
  */
 
 #include <common.h>
+#include <netdev.h>
 #include <asm/processor.h>
 #include <asm/mmu.h>
 #include <asm/immap_85xx.h>
@@ -247,3 +248,14 @@ long int fixed_sdram (void)
 	return (CFG_SDRAM_SIZE * 1024 * 1024);
 }
 #endif	/* !defined(CONFIG_SPD_EEPROM) */
+
+int board_eth_init(bd_t *bis)
+{
+	/* 
+	 * This board either has PCI NICs or uses the CPU's TSECs
+	 * pci_eth_init() will return 0 if no NICs found, so in that case
+	 * returning -1 will force cpu_eth_init() to be called.
+	 */
+	int num = pci_eth_init(bis);
+	return (num <= 0 ? -1 : num);
+}
diff --git a/board/musenki/musenki.c b/board/musenki/musenki.c
index b2b70e7..6f9eeb2 100644
--- a/board/musenki/musenki.c
+++ b/board/musenki/musenki.c
@@ -24,6 +24,7 @@
 #include <common.h>
 #include <mpc824x.h>
 #include <pci.h>
+#include <netdev.h>
 
 int checkboard (void)
 {
@@ -102,3 +103,8 @@ void pci_init_board(void)
 {
 	pci_mpc824x_init(&hose);
 }
+
+int board_eth_init(bd_t *bis)
+{
+	return pci_eth_init(bis);
+}
diff --git a/board/mvblue/mvblue.c b/board/mvblue/mvblue.c
index a979102..056fee7 100644
--- a/board/mvblue/mvblue.c
+++ b/board/mvblue/mvblue.c
@@ -9,6 +9,7 @@
 #include <mpc824x.h>
 #include <asm/io.h>
 #include <ns16550.h>
+#include <netdev.h>
 
 #ifdef CONFIG_PCI
 #include <pci.h>
@@ -245,4 +246,9 @@ void pci_init_board (void)
 {
 	pci_mpc824x_init (&hose);
 }
+
+int board_eth_init(bd_t *bis)
+{
+	return pci_eth_init(bis);
+}
 #endif
diff --git a/board/pcippc2/pcippc2.c b/board/pcippc2/pcippc2.c
index c1917c1..a3dbdc8 100644
--- a/board/pcippc2/pcippc2.c
+++ b/board/pcippc2/pcippc2.c
@@ -28,6 +28,7 @@
 #include <linux/mtd/doc2000.h>
 #include <watchdog.h>
 #include <pci.h>
+#include <netdev.h>
 
 #include "hardware.h"
 #include "pcippc2.h"
@@ -243,3 +244,8 @@ U_BOOT_CMD(
 
 #endif
 #endif	/* CONFIG_WATCHDOG */
+
+int board_eth_init(bd_t *bis)
+{
+	return pci_eth_init(bis);
+}
diff --git a/board/sbc8240/sbc8240.c b/board/sbc8240/sbc8240.c
index 175720d..075e377 100644
--- a/board/sbc8240/sbc8240.c
+++ b/board/sbc8240/sbc8240.c
@@ -28,6 +28,7 @@
 #include <mpc824x.h>
 #include <asm/processor.h>
 #include <pci.h>
+#include <netdev.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -103,3 +104,8 @@ int misc_init_r (void)
 	return (0);
 }
 #endif /* CONFIG_MISC_INIT_R */
+
+int board_eth_init(bd_t *bis)
+{
+	return pci_eth_init(bis);
+}
diff --git a/board/stxssa/stxssa.c b/board/stxssa/stxssa.c
index 124e123..71e9b08 100644
--- a/board/stxssa/stxssa.c
+++ b/board/stxssa/stxssa.c
@@ -39,6 +39,7 @@
 #include <asm/io.h>
 #include <spd_sdram.h>
 #include <miiphy.h>
+#include <netdev.h>
 
 long int fixed_sdram (void);
 
@@ -400,3 +401,10 @@ pci_init_board(void)
 	pci_mpc85xx_init(hose);
 #endif /* CONFIG_PCI */
 }
+
+int board_eth_init(bd_t *bis)
+{
+	cpu_eth_init(bis);	/* Initialize TSECs first */
+	return pci_eth_init(bis);
+}
+
diff --git a/include/netdev.h b/include/netdev.h
index 9da05d9..a775e50 100644
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -42,6 +42,7 @@ int cpu_eth_init(bd_t *bis);
 
 /* Driver initialization prototypes */
 int bfin_EMAC_initialize(bd_t *bis);
+int dc21x4x_initialize(bd_t *bis);
 int e1000_initialize(bd_t *bis);
 int eth_3com_initialize (bd_t * bis);
 int greth_initialize(bd_t *bis);
@@ -71,6 +72,9 @@ static int pci_eth_init(bd_t *bis)
 {
 	int num = 0;
 
+#ifdef CONFIG_TULIP
+	num += dc21x4x_initialize(bis);
+#endif
 #ifdef CONFIG_E1000
 	num += e1000_initialize(bis);
 #endif
diff --git a/net/eth.c b/net/eth.c
index 0761065..0dfeab6 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -40,7 +40,6 @@ int cpu_eth_init(bd_t *bis) __attribute((weak, alias("__def_eth_init")));
 int board_eth_init(bd_t *bis) __attribute((weak, alias("__def_eth_init")));
 
 extern int au1x00_enet_initialize(bd_t*);
-extern int dc21x4x_initialize(bd_t*);
 extern int eepro100_initialize(bd_t*);
 extern int fec_initialize(bd_t*);
 extern int mpc8220_fec_initialize(bd_t*);
@@ -195,9 +194,6 @@ int eth_initialize(bd_t *bis)
 #ifdef CONFIG_EEPRO100
 	eepro100_initialize(bis);
 #endif
-#ifdef CONFIG_TULIP
-	dc21x4x_initialize(bis);
-#endif
 	if (!eth_devices) {
 		puts ("No ethernet found.\n");
 		show_boot_progress (-64);
-- 
1.5.4.3



More information about the U-Boot mailing list