]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - net/net.c
Merge branch 'u-boot-imx/master' into 'u-boot-arm/master'
[karo-tx-uboot.git] / net / net.c
index a40cde1e94e46367d727e30d40187b2630f60f15..f7cc29f03956a6b1b56ccc27e479f351d86cf570 100644 (file)
--- a/net/net.c
+++ b/net/net.c
@@ -207,6 +207,8 @@ static int net_check_prereq(enum proto_t protocol);
 
 static int NetTryCount;
 
+int __maybe_unused net_busy_flag;
+
 /**********************************************************************/
 
 static int on_bootfile(const char *name, const char *value, enum env_op op,
@@ -271,7 +273,8 @@ static void NetInitLoop(void)
 #endif
                env_changed_id = env_id;
        }
-       memcpy(NetOurEther, eth_get_dev()->enetaddr, 6);
+       if (eth_get_dev())
+               memcpy(NetOurEther, eth_get_dev()->enetaddr, 6);
 
        return;
 }
@@ -341,6 +344,9 @@ int NetLoop(enum proto_t protocol)
                eth_init_state_only(bd);
 
 restart:
+#ifdef CONFIG_USB_KEYBOARD
+       net_busy_flag = 0;
+#endif
        net_set_state(NETLOOP_CONTINUE);
 
        /*
@@ -453,6 +459,9 @@ restart:
                status_led_set(STATUS_LED_RED, STATUS_LED_ON);
 #endif /* CONFIG_SYS_FAULT_ECHO_LINK_DOWN, ... */
 #endif /* CONFIG_MII, ... */
+#ifdef CONFIG_USB_KEYBOARD
+       net_busy_flag = 1;
+#endif
 
        /*
         *      Main packet reception loop.  Loop receiving packets until
@@ -528,15 +537,11 @@ restart:
                case NETLOOP_SUCCESS:
                        net_cleanup_loop();
                        if (NetBootFileXferSize > 0) {
-                               char buf[20];
                                printf("Bytes transferred = %ld (%lx hex)\n",
                                        NetBootFileXferSize,
                                        NetBootFileXferSize);
-                               sprintf(buf, "%lX", NetBootFileXferSize);
-                               setenv("filesize", buf);
-
-                               sprintf(buf, "%lX", (unsigned long)load_addr);
-                               setenv("fileaddr", buf);
+                               setenv_hex("filesize", NetBootFileXferSize);
+                               setenv_hex("fileaddr", load_addr);
                        }
                        if (protocol != NETCONS)
                                eth_halt();
@@ -562,6 +567,9 @@ restart:
        }
 
 done:
+#ifdef CONFIG_USB_KEYBOARD
+       net_busy_flag = 0;
+#endif
 #ifdef CONFIG_CMD_TFTPPUT
        /* Clear out the handlers */
        net_set_udp_handler(NULL);