On Wed, Aug 06, 2014 at 09:58:12AM -0600, Stephen Warren wrote: > On 07/25/2014 05:30 PM, Stephen Warren wrote: > >From: Stephen Warren <[email protected]> > > > >Currently, the BOOTP code sends out its initial request as soon as the > >Ethernet driver indicates "link up". If this packet is lost or not > >replied to for some reason, the code waits for a 1s timeout before > >retrying. For some reason, such early packets are often lost on my > >system, so this causes an annoying delay. > > > >To optimize this, modify the BOOTP code to have very short timeouts for > >the first packet transmitted, but gradually increase the timeout each > >time a timeout occurs. This way, if the first packet is lost, the second > >packet is transmitted quite quickly and hence the overall delay is low. > >However, if there's still no response, we don't keep spewing out packets > >at an insane speed. > > > >It's arguably more correct to try and find out why the first packet is > >lost. However, it seems to disappear inside my Ethenet chip; the TX chip > >indicates no error during TX (not that it has much in the way of > >reporting...), yet wireshark on the RX side doesn't see any packet. > >FWIW, I'm using an ASIX USB Ethernet adapter. Perhaps "link up" is > >reported too early or based on the wrong condition in HW, and we should > >add some fixed extra delay into the driver. However, this would slow down > >every link up event even if it ends up not being needed in some cases. > >Having BOOTP retry quickly applies the fix/WAR to every possible > >Ethernet device, and is quite simple to implement, so seems a better > >solution. > > Joe, Tom, > > Does this patch look OK?
I was a bit worried about this impacting boards that don't have a problem today but a quick test shows they're still getting the first reply, so I'm OK with it. I'll be grabbing things soon. -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

