Moved initialization of PCNET Ethernet controller to board_eth_init()
Affected boards:
PN62
sc520_cdp
Removed initialization of the driver from net/eth.c
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
diff --git a/board/pn62/pn62.c b/board/pn62/pn62.c
index d905b29..60fc431 100644
--- a/board/pn62/pn62.c
+++ b/board/pn62/pn62.c
@@ -23,6 +23,7 @@
#include <common.h>
#include <mpc824x.h>
#include <pci.h>
+#include <netdev.h>
#include "pn62.h"
@@ -186,3 +187,8 @@
mac[0], mac[1], mac[2],
mac[3], mac[4], mac[5]);
}
+
+int board_eth_init(bd_t *bis)
+{
+ return pci_eth_init(bis);
+}
diff --git a/board/sc520_cdp/sc520_cdp.c b/board/sc520_cdp/sc520_cdp.c
index 8050aa6..f21c730 100644
--- a/board/sc520_cdp/sc520_cdp.c
+++ b/board/sc520_cdp/sc520_cdp.c
@@ -29,6 +29,7 @@
#include <asm/ic/sc520.h>
#include <asm/ic/ali512x.h>
#include <spi.h>
+#include <netdev.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -629,3 +630,8 @@
#endif
return res;
}
+
+int board_eth_init(bd_t *bis)
+{
+ return pci_eth_init(bis);
+}
diff --git a/drivers/net/pcnet.c b/drivers/net/pcnet.c
index a4f0214..99b6942 100644
--- a/drivers/net/pcnet.c
+++ b/drivers/net/pcnet.c
@@ -26,6 +26,7 @@
#include <common.h>
#include <malloc.h>
#include <net.h>
+#include <netdev.h>
#include <asm/io.h>
#include <pci.h>
diff --git a/include/netdev.h b/include/netdev.h
index c5b0815..b1dadd8 100644
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -48,6 +48,7 @@
int mcffec_initialize(bd_t *bis);
int natsemi_initialize(bd_t *bis);
int ns8382x_initialize(bd_t *bis);
+int pcnet_initialize(bd_t *bis);
int rtl8139_initialize(bd_t *bis);
int rtl8169_initialize(bd_t *bis);
int skge_initialize(bd_t *bis);
@@ -61,6 +62,10 @@
static inline int pci_eth_init(bd_t *bis)
{
int num = 0;
+
+#ifdef CONFIG_PCNET
+ num += pcnet_initialize(bis);
+#endif
#ifdef CONFIG_NATSEMI
num += natsemi_initialize(bis);
#endif
diff --git a/net/eth.c b/net/eth.c
index dc7b288..aa6b2c8 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -55,7 +55,6 @@
extern int mpc8220_fec_initialize(bd_t*);
extern int mv6436x_eth_initialize(bd_t *);
extern int mv6446x_eth_initialize(bd_t *);
-extern int pcnet_initialize(bd_t*);
extern int plb2800_eth_initialize(bd_t*);
extern int ppc_4xx_eth_initialize(bd_t *);
extern int scc_initialize(bd_t*);
@@ -227,9 +226,6 @@
#ifdef CONFIG_3COM
eth_3com_initialize(bis);
#endif
-#ifdef CONFIG_PCNET
- pcnet_initialize(bis);
-#endif
#ifdef CFG_GT_6426x
gt6426x_eth_initialize(bis);
#endif