summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/sorcery/sorcery.c2
-rw-r--r--cpu/mpc8220/cpu.c13
-rw-r--r--include/netdev.h1
-rw-r--r--net/eth.c4
4 files changed, 16 insertions, 4 deletions
diff --git a/board/sorcery/sorcery.c b/board/sorcery/sorcery.c
index 3e1bd6f..90d4298 100644
--- a/board/sorcery/sorcery.c
+++ b/board/sorcery/sorcery.c
@@ -62,5 +62,7 @@ void pci_init_board (void)
int board_eth_init(bd_t *bis)
{
+ /* Initialize built-in FEC first */
+ cpu_eth_init(bis);
return pci_eth_init(bis);
}
diff --git a/cpu/mpc8220/cpu.c b/cpu/mpc8220/cpu.c
index 5b3fdd3..563cfe0 100644
--- a/cpu/mpc8220/cpu.c
+++ b/cpu/mpc8220/cpu.c
@@ -29,6 +29,7 @@
#include <watchdog.h>
#include <command.h>
#include <mpc8220.h>
+#include <netdev.h>
#include <asm/processor.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -89,3 +90,15 @@ unsigned long get_tbclk (void)
}
/* ------------------------------------------------------------------------- */
+
+/*
+ * Initializes on-chip ethernet controllers.
+ * to override, implement board_eth_init()
+ */
+int cpu_eth_init(bd_t *bis)
+{
+#if defined(CONFIG_MPC8220_FEC)
+ mpc8220_fec_initialize(bis);
+#endif
+ return 0;
+}
diff --git a/include/netdev.h b/include/netdev.h
index 3b11961..55183e8 100644
--- a/include/netdev.h
+++ b/include/netdev.h
@@ -56,6 +56,7 @@ int mcdmafec_initialize(bd_t *bis);
int mcffec_initialize(bd_t *bis);
int mpc512x_fec_initialize(bd_t *bis);
int mpc5xxx_fec_initialize(bd_t *bis);
+int mpc8220_fec_initialize(bd_t *bis);
int natsemi_initialize(bd_t *bis);
int npe_initialize(bd_t *bis);
int ns8382x_initialize(bd_t *bis);
diff --git a/net/eth.c b/net/eth.c
index 3793dd7..d543163 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -39,7 +39,6 @@ static int __def_eth_init(bd_t *bis)
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 mpc8220_fec_initialize(bd_t*);
extern int mv6436x_eth_initialize(bd_t *);
extern int mv6446x_eth_initialize(bd_t *);
extern int ppc_4xx_eth_initialize(bd_t *);
@@ -161,9 +160,6 @@ int eth_initialize(bd_t *bis)
#ifdef SCC_ENET
scc_initialize(bis);
#endif
-#if defined(CONFIG_MPC8220_FEC)
- mpc8220_fec_initialize(bis);
-#endif
if (!eth_devices) {
puts ("No ethernet found.\n");
show_boot_progress (-64);