From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Warren Date: Thu, 03 Apr 2008 11:00:23 -0400 Subject: [U-Boot-Users] [PATCH] net: make ARP timeout configurable In-Reply-To: References: <47F4E981.4060209@gmail.com> Message-ID: <47F4F107.8030007@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Guennadi Liakhovetski wrote: > On Thu, 3 Apr 2008, Ben Warren wrote: > > >> Hi Guennadi, >> >> Guennadi Liakhovetski wrote: >> >>> Currently the timeout waiting for an ARP reply is hard set to 5 seconds. On >>> i.MX31ADS due to a hardware "strangeness" up to four first IP packets to the >>> boards get lost, which typically are ARP replies. By configuring the timeout >>> to a lower value we significantly improve the first network transfer time on >>> this board. The timeout is specified in deciseconds, because it has to be >>> converted to hardware ticks, and CFG_HZ ranges from 900 to 27000000 on >>> different boards. >>> >>> >> I like this, but let's stick to SI units please, probably ms. This isn't an >> important enough calculation to worry about precision, only overflow, so just >> make sure you handle order of operations properly and it should be fine. If >> I'm not thinking this through properly, which is entirely possible, make the >> code do a /100 to get into ds rather than asking the user to provide it. I'm >> concerned that people will say ***WTF is a decisecond!*** >> > > Ok, expect a new version shortly. > > >>> @@ -253,7 +258,7 @@ void ArpTimeoutCheck(void) >>> t = get_timer(0); >>> /* check for arp timeout */ >>> - if ((t - NetArpWaitTimerStart) > ARP_TIMEOUT * CFG_HZ) { >>> + if ((t - NetArpWaitTimerStart) > ARP_TIMEOUT * CFG_HZ / 10) { >>> NetArpWaitTry++; >>> if (NetArpWaitTry >= ARP_TIMEOUT_COUNT) { >>> @@ -494,7 +499,7 @@ restart: >>> * Check the ethernet for a new packet. The ethernet >>> * receive routine will process it. >>> */ >>> - eth_rx(); >>> + eth_rx(); >>> >>> >> Not sure why you did this. Is it indented from the if() once applied? >> > > It is not under an if - it is another hunk. > Oh yeah. Sorry. regards, Ben