Commit 7a83af07 authored by Luca Ceresoli's avatar Luca Ceresoli Committed by Wolfgang Denk

TFTP: add tftpsrv command

Signed-off-by: default avatarLuca Ceresoli <luca.ceresoli@comelit.it>
Cc: Wolfgang Denk <wd@denx.de>
Acked-by: default avatarDetlev Zundel <dzu@denx.de>
parent e59e3562
......@@ -709,6 +709,7 @@ The following options need to be configured:
(requires CONFIG_CMD_MEMORY)
CONFIG_CMD_SOURCE "source" command Support
CONFIG_CMD_SPI * SPI serial bus support
CONFIG_CMD_TFTPSRV * TFTP transfer in server mode
CONFIG_CMD_USB * USB support
CONFIG_CMD_VFD * VFD support (TRAB)
CONFIG_CMD_CDP * Cisco Discover Protocol support
......
......@@ -52,6 +52,23 @@ U_BOOT_CMD(
"[loadAddress] [[hostIPaddr:]bootfilename]"
);
#ifdef CONFIG_CMD_TFTPSRV
static int do_tftpsrv(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
return netboot_common(TFTPSRV, cmdtp, argc, argv);
}
U_BOOT_CMD(
tftpsrv, 2, 1, do_tftpsrv,
"act as a TFTP server and boot the first received file",
"[loadAddress]\n"
"Listen for an incoming TFTP transfer, receive a file and boot it.\n"
"The transfer is aborted if a transfer has not been started after\n"
"about 50 seconds or if Ctrl-C is pressed."
);
#endif
#ifdef CONFIG_CMD_RARP
int do_rarpb (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
......
......@@ -364,7 +364,8 @@ extern int NetState; /* Network loop state */
extern int NetRestartWrap; /* Tried all network devices */
#endif
typedef enum { BOOTP, RARP, ARP, TFTP, DHCP, PING, DNS, NFS, CDP, NETCONS, SNTP } proto_t;
typedef enum { BOOTP, RARP, ARP, TFTP, DHCP, PING, DNS, NFS, CDP, NETCONS, SNTP,
TFTPSRV } proto_t;
/* from net/net.c */
extern char BootFile[128]; /* Boot File name */
......
......@@ -423,7 +423,11 @@ restart:
/* always use ARP to get server ethernet address */
TftpStart();
break;
#ifdef CONFIG_CMD_TFTPSRV
case TFTPSRV:
TftpStartServer();
break;
#endif
#if defined(CONFIG_CMD_DHCP)
case DHCP:
BootpTry = 0;
......@@ -1791,6 +1795,7 @@ common:
/* Fall through */
case NETCONS:
case TFTPSRV:
if (NetOurIP == 0) {
puts("*** ERROR: `ipaddr' not set\n");
return 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment