tftpput address size [[hostIPaddr:]filename]
The tftpput command is used to transfer a file to a TFTP server.
By default the destination port is 69 and the source port is pseudo-random. If CONFIG_TFTP_PORT=y, the environment variable tftpsrcp can be used to set the source port and the environment variable tftpdstp can be used to set the destination port.
- address
- memory address where the data starts
- size
- number of bytes to be transferred
- hostIPaddr
- IP address of the TFTP server, defaults to the value of environment variable serverip
- filename
- path of the file to be written. If not provided, the client's IP address is used to construct a default file name, e.g. C0.A8.00.28.img for IP address 192.168.0.40.
In the example the following steps are executed:
- setup client network address
- load a file from the SD-card
- send the file via TFTP to a server
=> setenv autoload no => dhcp BOOTP broadcast 1 DHCP client bound to address 192.168.1.40 (7 ms) => load mmc 0:1 $loadaddr test.txt 260096 bytes read in 13 ms (19.1 MiB/s) => tftpput $loadaddr $filesize 192.168.1.3:upload/test.txt Using ethernet@1c30000 device TFTP to server 192.168.1.3; our IP address is 192.168.1.40 Filename 'upload/test.txt'. Save address: 0x42000000 Save size: 0x3f800 Saving: ################# 4.4 MiB/s done Bytes transferred = 260096 (3f800 hex) =>
The command is only available if CONFIG_CMD_TFTPPUT=y.
CONFIG_TFTP_BLOCKSIZE defines the size of the TFTP blocks sent. It defaults to 1468 matching an ethernet MTU of 1500.
If CONFIG_TFTP_PORT=y, the environment variables tftpsrcp and tftpdstp can be used to set the source and the destination ports.
CONFIG_TFTP_WINDOWSIZE can be used to set the TFTP window size of transmits after which an ACK response is required. The window size defaults to 1.
If CONFIG_TFTP_TSIZE=y, the progress bar is limited to 50 '#' characters. Otherwise an '#' is written per UDP package which may decrease performance.
The return value $? is 0 (true) on success and 1 (false) otherwise.