diff options
| -rw-r--r-- | README | 1 | ||||
| -rw-r--r-- | common/cmd_net.c | 17 | ||||
| -rw-r--r-- | include/net.h | 3 | ||||
| -rw-r--r-- | net/net.c | 7 | 
4 files changed, 26 insertions, 2 deletions
| @@ -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 diff --git a/common/cmd_net.c b/common/cmd_net.c index 8c6f5c8c3..b2c9355a2 100644 --- a/common/cmd_net.c +++ b/common/cmd_net.c @@ -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[])  { diff --git a/include/net.h b/include/net.h index 01f7159a0..018a74402 100644 --- a/include/net.h +++ b/include/net.h @@ -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; |