]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - net/net.c
ARM: tegra: add APIs the clock uclass driver will need
[karo-tx-uboot.git] / net / net.c
index 2a6efd85eae2179c97a0f798e0ec881a3d66a3b8..671d45dd83c9aab9b6c56a9136a698f677a3d63e 100644 (file)
--- a/net/net.c
+++ b/net/net.c
 
 #include <common.h>
 #include <command.h>
+#include <console.h>
 #include <environment.h>
 #include <errno.h>
 #include <net.h>
+#include <net/tftp.h>
 #if defined(CONFIG_STATUS_LED)
 #include <miiphy.h>
 #include <status_led.h>
 #if defined(CONFIG_CMD_SNTP)
 #include "sntp.h"
 #endif
-#include "tftp.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -145,7 +146,7 @@ static unsigned     net_ip_id;
 /* Ethernet bcast address */
 const u8 net_bcast_ethaddr[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
 const u8 net_null_ethaddr[6];
-#ifdef CONFIG_API
+#if defined(CONFIG_API) || defined(CONFIG_EFI_LOADER)
 void (*push_packet)(void *, int len) = 0;
 #endif
 /* Network loop state */
@@ -164,7 +165,7 @@ ushort              net_our_vlan = 0xFFFF;
 ushort         net_native_vlan = 0xFFFF;
 
 /* Boot File name */
-char net_boot_file_name[128];
+char net_boot_file_name[1024];
 /* The actual transferred size of the bootfile (in bytes) */
 u32 net_boot_file_size;
 /* Boot file size in blocks as reported by the DHCP server */
@@ -541,6 +542,9 @@ restart:
 #ifdef CONFIG_SHOW_ACTIVITY
                show_activity(1);
 #endif
+               if (arp_timeout_check() > 0)
+                       time_start = get_timer(0);
+
                /*
                 *      Check the ethernet for a new packet.  The ethernet
                 *      receive routine will process it.
@@ -569,8 +573,6 @@ restart:
                        goto done;
                }
 
-               arp_timeout_check();
-
                /*
                 *      Check for a timeout, and run the timeout handler
                 *      if we have one.
@@ -832,15 +834,7 @@ int net_send_udp_packet(uchar *ether, struct in_addr dest, int dport, int sport,
 #ifndef CONFIG_NET_MAXDEFRAG
 #define CONFIG_NET_MAXDEFRAG 16384
 #endif
-/*
- * MAXDEFRAG, above, is chosen in the config file and  is real data
- * so we need to add the NFS overhead, which is more than TFTP.
- * To use sizeof in the internal unnamed structures, we need a real
- * instance (can't do "sizeof(struct rpc_t.u.reply))", unfortunately).
- * The compiler doesn't complain nor allocates the actual structure
- */
-static struct rpc_t rpc_specimen;
-#define IP_PKTSIZE (CONFIG_NET_MAXDEFRAG + sizeof(rpc_specimen.u.reply))
+#define IP_PKTSIZE (CONFIG_NET_MAXDEFRAG)
 
 #define IP_MAXUDP (IP_PKTSIZE - IP_HDR_SIZE)
 
@@ -1052,7 +1046,7 @@ void net_process_received_packet(uchar *in_packet, int len)
        if (len < ETHER_HDR_SIZE)
                return;
 
-#ifdef CONFIG_API
+#if defined(CONFIG_API) || defined(CONFIG_EFI_LOADER)
        if (push_packet) {
                (*push_packet)(in_packet, len);
                return;