From a9bec96d6359ac9f90a852962bf3040cad9e0256 Mon Sep 17 00:00:00 2001 From: Ben Warren Date: Wed, 22 Oct 2008 23:47:51 -0700 Subject: Moved initialization of MPC8220 FEC to cpu_eth_init() Removed initialization of the driver from net/eth.c Signed-off-by: Ben Warren --- board/sorcery/sorcery.c | 2 ++ cpu/mpc8220/cpu.c | 13 +++++++++++++ include/netdev.h | 1 + net/eth.c | 4 ---- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/board/sorcery/sorcery.c b/board/sorcery/sorcery.c index 3e1bd6f0cf..90d4298020 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 5b3fdd32c1..563cfe0536 100644 --- a/cpu/mpc8220/cpu.c +++ b/cpu/mpc8220/cpu.c @@ -29,6 +29,7 @@ #include #include #include +#include #include 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 3b11961c8b..55183e87a1 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 3793dd7cb8..d5431639ae 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 *); @@ -160,9 +159,6 @@ int eth_initialize(bd_t *bis) #endif #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"); -- cgit v1.2.1