]> git.sur5r.net Git - u-boot/blobdiff - net/eth.c
85xx: Add -mno-spe to e500/85xx builds
[u-boot] / net / eth.c
index bcd7d42a3a70e1216d0b635ab36c8adb93db4c23..c4f24c64b63db4754aa1ea93fcd85ffbc7c1db5a 100644 (file)
--- a/net/eth.c
+++ b/net/eth.c
@@ -60,8 +60,11 @@ 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 greth_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);
@@ -218,6 +221,9 @@ int eth_initialize(bd_t *bis)
 #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);
@@ -270,12 +276,21 @@ int eth_initialize(bd_t *bis)
 #if defined(CONFIG_ATSTK1000)
        atstk1000_eth_initialize(bis);
 #endif
+#if defined(CONFIG_GRETH)
+       greth_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");
@@ -430,8 +445,10 @@ int eth_init(bd_t *bis)
 {
        struct eth_device* old_current;
 
-       if (!eth_current)
+       if (!eth_current) {
+               puts ("No ethernet found.\n");
                return -1;
+       }
 
        old_current = eth_current;
        do {
@@ -526,6 +543,15 @@ int eth_receive(volatile void *packet, int length)
 void eth_try_another(int first_restart)
 {
        static struct eth_device *first_failed = NULL;
+       char *ethrotate;
+
+       /*
+        * Do not rotate between network interfaces when
+        * 'ethrotate' variable is set to 'no'.
+        */
+       if (((ethrotate = getenv ("ethrotate")) != NULL) &&
+           (strcmp(ethrotate, "no") == 0))
+               return;
 
        if (!eth_current)
                return;