I was running in to a bunch of problems with u-boot 2011.06 + smc95xx + koenkooi patches from github. The vast majority of the time I’d get EHCI timeouts if I tried to ping a host I knew was live or just using tftpboot to load the kernel.
After some poking around, it appears that the smc95xx needs some time before bulk transfers are sent its way. I added a 500 ms sleep to the end of the init and it seems happier and quicker for pinging live hosts as well as tftp transfers.
It also appears that EHCI timeouts will always occur as long as the EHCI timeout (5s) is less than the ping timeout (10s) for hosts that aren’t live on the network.
My changes are @ https://github.com/kylemanna/u-boot and attached to this Google groups post.