X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=net%2Feth.c;h=b7ef09f4479b0619b3b79c50d953abb606950247;hb=25a859066b3af1070eb69f12022113c0a91bd813;hp=99897ca476a01b0608a585921ddf14f4fafb7a6c;hpb=0176d43e759a6e00cacc85eff26fd60f74b4f6b7;p=u-boot diff --git a/net/eth.c b/net/eth.c index 99897ca476..b7ef09f447 100644 --- a/net/eth.c +++ b/net/eth.c @@ -28,42 +28,19 @@ #if defined(CONFIG_CMD_NET) && defined(CONFIG_NET_MULTI) -#ifdef CFG_GT_6426x -extern int gt6426x_eth_initialize(bd_t *bis); -#endif +/* + * CPU and board-specific Ethernet initializations. Aliased function + * signals caller to move on + */ +static int __def_eth_init(bd_t *bis) +{ + return -1; +} +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 e1000_initialize(bd_t*); -extern int eepro100_initialize(bd_t*); -extern int eth_3com_initialize(bd_t*); -extern int fec_initialize(bd_t*); -extern int inca_switch_initialize(bd_t*); -extern int mpc5xxx_fec_initialize(bd_t*); -extern int mpc512x_fec_initialize(bd_t*); -extern int mpc8220_fec_initialize(bd_t*); extern int mv6436x_eth_initialize(bd_t *); extern int mv6446x_eth_initialize(bd_t *); -extern int natsemi_initialize(bd_t*); -extern int ns8382x_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 rtl8139_initialize(bd_t*); -extern int rtl8169_initialize(bd_t*); -extern int scc_initialize(bd_t*); -extern int skge_initialize(bd_t*); -extern int tsi108_eth_initialize(bd_t*); -extern int uli526x_initialize(bd_t *); -extern int tsec_initialize(bd_t*, int, char *); -extern int npe_initialize(bd_t *); -extern int uec_initialize(int); -extern int bfin_EMAC_initialize(bd_t *); -extern int atstk1000_eth_initialize(bd_t *); -extern int atngw100_eth_initialize(bd_t *); -extern int mcffec_initialize(bd_t*); -extern int mcdmafec_initialize(bd_t*); -extern int at91sam9_eth_initialize(bd_t *); #ifdef CONFIG_API extern void (*push_packet)(volatile void *, int); @@ -164,6 +141,10 @@ int eth_initialize(bd_t *bis) #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII) miiphy_init(); #endif + /* Try board-specific initialization first. If it fails or isn't + * present, try the cpu-specific initialization */ + if (board_eth_init(bis) < 0) + cpu_eth_init(bis); #if defined(CONFIG_DB64360) || defined(CONFIG_CPCI750) mv6436x_eth_initialize(bis); @@ -171,123 +152,6 @@ int eth_initialize(bd_t *bis) #if defined(CONFIG_DB64460) || defined(CONFIG_P3Mx) mv6446x_eth_initialize(bis); #endif -#if defined(CONFIG_4xx) && !defined(CONFIG_IOP480) && !defined(CONFIG_AP1000) - ppc_4xx_eth_initialize(bis); -#endif -#ifdef CONFIG_INCA_IP_SWITCH - inca_switch_initialize(bis); -#endif -#ifdef CONFIG_PLB2800_ETHER - plb2800_eth_initialize(bis); -#endif -#ifdef SCC_ENET - scc_initialize(bis); -#endif -#if defined(CONFIG_MPC5xxx_FEC) - mpc5xxx_fec_initialize(bis); -#endif -#if defined(CONFIG_MPC512x_FEC) - mpc512x_fec_initialize (bis); -#endif -#if defined(CONFIG_MPC8220_FEC) - mpc8220_fec_initialize(bis); -#endif -#if defined(CONFIG_SK98) - skge_initialize(bis); -#endif -#if defined(CONFIG_TSEC1) - tsec_initialize(bis, 0, CONFIG_TSEC1_NAME); -#endif -#if defined(CONFIG_TSEC2) - tsec_initialize(bis, 1, CONFIG_TSEC2_NAME); -#endif -#if defined(CONFIG_MPC85XX_FEC) - tsec_initialize(bis, 2, CONFIG_MPC85XX_FEC_NAME); -#else -# if defined(CONFIG_TSEC3) - tsec_initialize(bis, 2, CONFIG_TSEC3_NAME); -# endif -# if defined(CONFIG_TSEC4) - tsec_initialize(bis, 3, CONFIG_TSEC4_NAME); -# endif -#endif -#if defined(CONFIG_UEC_ETH1) - uec_initialize(0); -#endif -#if defined(CONFIG_UEC_ETH2) - uec_initialize(1); -#endif -#if defined(CONFIG_UEC_ETH3) - uec_initialize(2); -#endif -#if defined(CONFIG_UEC_ETH4) - uec_initialize(3); -#endif - -#if defined(FEC_ENET) || defined(CONFIG_ETHER_ON_FCC) - fec_initialize(bis); -#endif -#if defined(CONFIG_AU1X00) - au1x00_enet_initialize(bis); -#endif -#if defined(CONFIG_IXP4XX_NPE) - npe_initialize(bis); -#endif -#ifdef CONFIG_E1000 - e1000_initialize(bis); -#endif -#ifdef CONFIG_EEPRO100 - eepro100_initialize(bis); -#endif -#ifdef CONFIG_TULIP - dc21x4x_initialize(bis); -#endif -#ifdef CONFIG_3COM - eth_3com_initialize(bis); -#endif -#ifdef CONFIG_PCNET - pcnet_initialize(bis); -#endif -#ifdef CFG_GT_6426x - gt6426x_eth_initialize(bis); -#endif -#ifdef CONFIG_NATSEMI - natsemi_initialize(bis); -#endif -#ifdef CONFIG_NS8382X - ns8382x_initialize(bis); -#endif -#if defined(CONFIG_TSI108_ETH) - tsi108_eth_initialize(bis); -#endif -#if defined(CONFIG_ULI526X) - uli526x_initialize(bis); -#endif -#if defined(CONFIG_RTL8139) - rtl8139_initialize(bis); -#endif -#if defined(CONFIG_RTL8169) - rtl8169_initialize(bis); -#endif -#if defined(CONFIG_BF537) - bfin_EMAC_initialize(bis); -#endif -#if defined(CONFIG_ATSTK1000) - atstk1000_eth_initialize(bis); -#endif -#if defined(CONFIG_ATNGW100) - atngw100_eth_initialize(bis); -#endif -#if defined(CONFIG_MCFFEC) - mcffec_initialize(bis); -#endif -#if defined(CONFIG_FSLDMAFEC) - mcdmafec_initialize(bis); -#endif -#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) - at91sam9_eth_initialize(bis); -#endif - if (!eth_devices) { puts ("No ethernet found.\n"); show_boot_progress (-64); @@ -605,7 +469,7 @@ extern int at91rm9200_miiphy_initialize(bd_t *bis); extern int emac4xx_miiphy_initialize(bd_t *bis); extern int mcf52x2_miiphy_initialize(bd_t *bis); extern int ns7520_miiphy_initialize(bd_t *bis); -extern int dm644x_eth_miiphy_initialize(bd_t *bis); +extern int davinci_eth_miiphy_initialize(bd_t *bis); int eth_initialize(bd_t *bis) @@ -617,18 +481,17 @@ int eth_initialize(bd_t *bis) #if defined(CONFIG_AT91RM9200) at91rm9200_miiphy_initialize(bis); #endif -#if defined(CONFIG_4xx) && !defined(CONFIG_IOP480) \ - && !defined(CONFIG_AP1000) && !defined(CONFIG_405) +#if defined(CONFIG_PPC4xx_EMAC) emac4xx_miiphy_initialize(bis); #endif #if defined(CONFIG_MCF52x2) mcf52x2_miiphy_initialize(bis); #endif -#if defined(CONFIG_NETARM) +#if defined(CONFIG_DRIVER_NS7520_ETHERNET) ns7520_miiphy_initialize(bis); #endif #if defined(CONFIG_DRIVER_TI_EMAC) - dm644x_eth_miiphy_initialize(bis); + davinci_eth_miiphy_initialize(bis); #endif return 0; }