[U-Boot] u-boot tftp problem

PF4Public
2015-03-02T22:22:46Z

Hello, Joe

Recently I have repeated my tests.
U-Boot logs along with pcap dump could be found here:
https://mega.co.nz/#!g4UnVaDL!K6ej1OQXg5VE6pU5cmFoELkeqasIDXH1OZbDwdLiXSU

I may be wrong, but after careful examination of these dumps (and older ones), I came to
the following conclusion:
Somehow lost packets coincide with "--- NetLoop timeout handler set" and "--- NetLoop
timeout".
Which is supported by these facts: a) both server and u-boot tftp timeouts are equal to 5
sec; b) whenever I define "#define TIMEOUT 8000UL", even if U-Boot fails to catch the
first packet, it catches the second one and does not reset it's timer (which seems to
generate another one ACK for the last received block upon reset); c) similarly if I set
"tftptimeout 1000", U-Boot still catches the second packet if it could not catch the first
one. Moreover after yet another examination of windows server session dump I find, this is
exactly what happens with windows server, which ignores u-boot's request for 5 second
timeout and resends blocks after 1 second, which are perfectly captured by U-Boot; d) all
those packets within 5 seconds' timeout got caught by U-Boot.
Please correct me if I'm wrong.
And if I'm not - is there anything to mitigate this, other than "set tftptimeout 1000" and
"put switch inbetween"? Referring someone at ti.com to this thread maybe?

BTW: putting switch inbetween makes it easier for U-Boot to catch up with tftp server.
Compare:
U-Boot > dhcp
BOOTP broadcast 1
DHCP client bound to address 192.168.100.88 (81 ms)
Using DaVinci-EMAC device
TFTP from server 192.168.100.254; our IP address is 192.168.100.88
Filename 'uImage'.
Load address: 0xc0700000
Loading: ##T T ##T ##
Abort
U-Boot > dhcp
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
DHCP client bound to address 192.168.100.88 (1074 ms)
Using DaVinci-EMAC device
TFTP from server 192.168.100.254; our IP address is 192.168.100.88
Filename 'uImage'.
Load address: 0xc0700000
Loading: #T #T ####T ##T #T T #T #T #T ##T #T ###
Abort
U-Boot > dhcp
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
DHCP client bound to address 192.168.100.88 (4817 ms)
Using DaVinci-EMAC device
TFTP from server 192.168.100.254; our IP address is 192.168.100.88
Filename 'uImage'.
Load address: 0xc0700000
Loading: #################################################################
#################################################################
#################################################################
####T ##########################################T ###################
#################################################################
#################################################################
#############################################T
34.2 KiB/s
done
Bytes transferred = 2225360 (21f4d0 hex)
U-Boot > dhcp
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
DHCP client bound to address 192.168.100.88 (1079 ms)
Using DaVinci-EMAC device
TFTP from server 192.168.100.254; our IP address is 192.168.100.88
Filename 'uImage'.
Load address: 0xc0700000
Loading: ################################################T #######T ##########
####################T ###############T ####################T ###########
#################################################################
#################################################################
####################################################T #############
#################################################################
#############################################T
32.2 KiB/s
done
Bytes transferred = 2225360 (21f4d0 hex)

Best regards