[U-Boot-Users] TFTP times out?
Zhen Wang
mailtojarod at gmail.com
Fri Nov 11 07:18:20 CET 2005
André Berggren Wrote:
> Hi!
>
> We have the same problem with one minor difference. U-boot get the first part of a file and then starts getting timeouts (TTTT).
> We used a Etheral to sniff and found out that u-boot ack one datapackage but when the next datapackage araives u-boot doesn´t seem to hear it. Instead u-boot timesout listening and sends another ack on the previous datapackage. The tftp server then retransmits the last datapackage again witch u-boot doesn´t hear, u-boot times out and send another ack on the previous datapackage, and we are stuck in this loop.
> We use a Moxa ED6008 switch where we attached the sniffer for the recording.
>
> See appended ethereal capture-file. Mark one UDP-package and use Analyse->decode as and chose tftp to make it more readable.
>
> //André
>
>
Thanks a lot! I've downloaded Ethereal v0.10.13 and learned to use it
last night. In order to find some problems I built u-boot with several
different configurations and then I sniffed TFTP traffic between my
board and PC utilizing Ethereal. Then I could figure a table as following:
filename CFG_HZ TIMEOUT TIMEOUT_COUNT block #
------------------------------------------------------------------------
u-boot-tftp0.bin 1000 5(s) 10 231
u-boot-tftp2.bin 1000 100(s) 270 4179
u-boot-tftp3.bin 1000 100(s) 400 4260
u-boot-tftp4.bin 1000 5(s) 400 4260
CFG_HZ is a configuration _SETTING_ in my board's configuration
header file(I don't know its exact function till now). TIMEOUT and
TIMEOUT_COUNT both are constants defined in net/tftp.c.
I've got a 2130KB(i.e. 4260 TFTP packages) uClinux zImage to download
over the twisted cable which connected my board with my PC directly.
The numbers in last column of above table indicate the last TFTP
block id received from the TFTP server(PC) before giving up(i.e. retry
count beyonds TIMEOUT_COUNT). Therefore 4260 indicates a complete download.
According to the table, TIMEOUT doesn't seem to be a critical part in
unsuccessful downloads. Though I can use a large TIMEOUT_COUNT to
accomplish the download, it's a bad solution. Now my first suspicion is
that the timing without interrupts scheme implemented in
cpu/s3c44b0/interrupts.c.
Best regards,
Zhen Wang
More information about the U-Boot
mailing list