]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - net/net.c
net: Access mapped physmem in net functions
[karo-tx-uboot.git] / net / net.c
index cd3bc931874fa065a8fab4e1aaa2017806f2798a..c0028f06905aed953071a6ca52c87e9f879243c9 100644 (file)
--- a/net/net.c
+++ b/net/net.c
@@ -275,7 +275,7 @@ static void NetInitLoop(void)
                env_changed_id = env_id;
        }
        if (eth_get_dev())
-               memcpy(NetOurEther, eth_get_dev()->enetaddr, 6);
+               memcpy(NetOurEther, eth_get_ethaddr(), 6);
 
        return;
 }
@@ -324,7 +324,6 @@ void net_init(void)
 
 int NetLoop(enum proto_t protocol)
 {
-       bd_t *bd = gd->bd;
        int ret = -1;
 
        NetRestarted = 0;
@@ -337,12 +336,12 @@ int NetLoop(enum proto_t protocol)
        if (eth_is_on_demand_init() || protocol != NETCONS) {
                eth_halt();
                eth_set_current();
-               if (eth_init(bd) < 0) {
+               if (eth_init() < 0) {
                        eth_halt();
                        return -1;
                }
        } else
-               eth_init_state_only(bd);
+               eth_init_state_only();
 
 restart:
 #ifdef CONFIG_USB_KEYBOARD
@@ -533,6 +532,8 @@ restart:
                        (*x)();
                }
 
+               if (net_state == NETLOOP_FAIL)
+                       NetStartAgain();
 
                switch (net_state) {
 
@@ -609,8 +610,10 @@ void NetStartAgain(void)
                        retrycnt = 1;
                else
                        retrycnt = simple_strtoul(nretry, NULL, 0);
-       } else
-               retry_forever = 1;
+       } else {
+               retrycnt = 0;
+               retry_forever = 0;
+       }
 
        if ((!retry_forever) && (NetTryCount >= retrycnt)) {
                eth_halt();
@@ -624,7 +627,7 @@ void NetStartAgain(void)
 #if !defined(CONFIG_NET_DO_NOT_TRY_ANOTHER)
        eth_try_another(!NetRestarted);
 #endif
-       eth_init(gd->bd);
+       eth_init();
        if (NetRestartWrap) {
                NetRestartWrap = 0;
                if (NetDevExists) {