TFTP: add host ip addr support
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest1 patch 0 repliesNew
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/1 | Fix nfs command help to reflect that the serverip is optional | +0 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [U-Boot-Users] [PATCH 0/1] TFTP: add host ip addr support
Quoted 4 lines · Andre Renaud
Couldn't this be done as follows instead? This way there is no need to allocate any more memory on the stack, and no need for a new configuration option.
This is nice, because it works in-place and doesn't need the second buffer. One concern, though (see below)
Quoted 50 lines
Andre
Signed-off-by Andre Renaud <[email protected]>common/cmd_net.c +1
-1@@ -51,7 +51,7 @@ int do_tftpb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])U_BOOT_CMD ( tftpboot,3 ,1 , do_tftpb,"tftpboot- boot image via network using TFTP protocol\n" , -"[loadAddress] [bootfilename]\n" +"[loadAddress] [[hostIPaddr:]bootfilename]\n" );int do_rarpb (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[])net/tftp.c +3
-2@@ -34,7 +34,7 @@#define TFTP_ERROR 5#define TFTP_OACK 6 - +static IPaddr_t TftpServerIP;static int TftpServerPort;/* The UDP port at their end */ static int TftpOurPort;/* The UDP port at our end */ static int TftpTimeoutCount;@@ -231,7 +242,7 @@ TftpSend (void)break ; } -NetSendUDPPacket (NetServerEther, NetServerIP, TftpServerPort, TftpOurPort, len); +NetSendUDPPacket (NetServerEther, TftpServerIP, TftpServerPort, TftpOurPort, len); }@@ -453,30 +464,43 @@ TftpStart (void)char *ep;/* Environment pointer */ #endif + TftpServerIP = NetServerIP;if (BootFile[0 ] =='\0' ) {sprintf (default_filename,"%02lX%02lX%02lX%02lX.img" , NetOurIP &0xFF , (NetOurIP >>8 ) &0xFF , (NetOurIP >>16 ) &0xFF , (NetOurIP >>24 ) &0xFF );
net/tftp.c TftpStart (void) · line 483
Quoted 10 lines
net/tftp.c +4
-0tftp_filename = default_filename;printf ("*** Warning: no boot file name; using '%s'\n" , tftp_filename); }else { +char *p=BootFile; + p =strchr (p,':' ); +if (p !=NULL ) { + TftpServerIP =string_to_ip (BootFile);
I don't know if string_to_ip() works properly on a string of the format a.b.c.d:filename
net/tftp.c TftpStart (void) · line 490
Quoted 7 lines
net/tftp.c +4
-0+ ++p; + tftp_filename = p; + }else + tftp_filename = BootFile; }
Alternatively:
char *p = strchr(Bootfile, ':');
if (p && *(p+1) != '\0') {
tftp_filename = P + 1;
*p = '\0';
TftpServerIP = string_to_ip(Bootfile);
} else
tftp_filename = Bootfile;*** Note: I haven't tried compiling this and it was written quickly, so may be garbage! Just ask Wolfgang...
regards,
Ben