[U-Boot] u-boot tftp problem

Nikolay Dimitrov
2015-02-18T17:31:03Z

Hi,

Here's what I think happens:

When working with large TFTP packets (probably 4096 bytes, as set in
your board config file), U-Boot TFTP code sends wrong acknowledges for
the TFTP packets. If the TFTP server implementation is too strict (the
OpenBSD server is a good example), the transfer will inevitably fail
very soon after start. Here's an example:

1. TFTP server sends block 0
2. Board acknowledges block 0
3. TFTP server sends block 1
4. Board acknowledges block 0

At this point you can see either proper or very obscure error messages
in the TFTP server logs, so trust only to network dumps for diagnostics.

What can you do to resolve your issue:

1. Fix the bug in U-Boot tftp networking code and submit a patch.
2. Reduce your TFTP blksize, by commenting CONFIG_TFTPBLOCKSIZE in
your board config. The default value is 1468, which should work fine.
U-Boot behaves nicer with smaller packets.

Hope this helps. Regards,
Nikolay