[U-Boot-Users] [PATCH] net: make ARP timeout configurable

Guennadi Liakhovetski lg at denx.de
Thu Apr 3 16:39:18 CEST 2008


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.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.

DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de




More information about the U-Boot mailing list