Not sure if this is still open but just got working using Bin's files/methods and atftpd was key!
Based on some advice from Googling, my /etc/default/atftpd looks like this:
USE_INETD=falseOPTIONS="--tftpd-timeout 300 --retry-timeout 5 --bind-address=192.168.3.1 --maxthread 100 --verbose=7 /srv/tftp --logfile /var/log/atftpd.log"
1. Binded my Ubuntu 12.04 usb0 address instead of using multicast
2. Used /srv/tftp as the tftp source directory (not /tftboot) to differentiate from my "tftp tftpd xinetd" mess
3. Tried to make a separate logfile, but got some kind of error. Messages showed up in /var/log/syslog.
After starting/restarting with
sudo invoke-rc.d atftpd start sudo /etc/init.d/atftpd restart
you can then follow the tftpserver messages with:
grep atftpd /var/log/syslog
so here is a working log serving up to IP address .100 (ROM bootloader) and .101 (SPL) from .1 (the Ubuntu 12.04 Host):
Mar 11 16:09:12 root1-Latitude-E6410 atftpd[10289]: Creating new socket: 192.168.3.1:35943 Mar 11 16:09:12 root1-Latitude-E6410 atftpd[10289]: Serving u-boot-spl.bin to 192.168.3.100:1234 Mar 11 16:09:13 root1-Latitude-E6410 atftpd[10289]: End of transfer Mar 11 16:09:13 root1-Latitude-E6410 atftpd[10289]: Server thread exiting Mar 11 16:09:16 root1-Latitude-E6410 atftpd[10289]: socket may listen on any address, including broadcast Mar 11 16:09:16 root1-Latitude-E6410 atftpd[10289]: Creating new socket: 192.168.3.1:44390 Mar 11 16:09:16 root1-Latitude-E6410 atftpd[10289]: Serving u-boot.img to 192.168.3.101:1508
Also don't forget that you need to build and use the correct uboot files in your /srv/tftp as documented here:
My build command line was:
make O=am335x_evm_usbspl CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm am335x_evm /board-support/u-boot-2013.01.01-psp06.00.00.00/am335x/spl
and I used the spl files that were generated in /board-support/u-boot-2012.10-psp05.06.00.00/am335x/spl
and the uboot.img from /board-support/u-boot-2012.10-psp05.06.00.00/am335x