From a084f7da880504a28dc13725148464b8e556c69d Mon Sep 17 00:00:00 2001 From: wdenk Date: Tue, 24 Feb 2004 22:33:21 +0000 Subject: [PATCH] * Patch by Masami Komiya, 24 Feb 2004: Update NetBootFileXferSize in NFS code * Patch by Scott McNutt, 24 Feb 2004: fix packet length in NFS code --- CHANGELOG | 6 ++++++ net/nfs.c | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 0dedea4fa8..d39fabeb4d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,12 @@ Changes for U-Boot 1.0.2: ====================================================================== +* Patch by Masami Komiya, 24 Feb 2004: + Update NetBootFileXferSize in NFS code + +* Patch by Scott McNutt, 24 Feb 2004: + fix packet length in NFS code + * Patch by Masami Komiy, 22 Feb 2004: Add support for NFS for file download diff --git a/net/nfs.c b/net/nfs.c index 6f4a06ad04..069f072574 100644 --- a/net/nfs.c +++ b/net/nfs.c @@ -66,6 +66,7 @@ static char nfs_path_buff[2048]; static __inline__ void store_block (uchar * src, unsigned offset, unsigned len) { + ulong newsize = offset + len; #ifdef CFG_DIRECT_FLASH_NFS int i, rc = 0; @@ -86,10 +87,12 @@ store_block (uchar * src, unsigned offset, unsigned len) } } else #endif /* CFG_DIRECT_FLASH_NFS */ - { (void)memcpy ((void *)(load_addr + offset), src, len); } + + if (NetBootFileXferSize < (offset+len)) + NetBootFileXferSize = newsize; } static char* @@ -539,8 +542,7 @@ nfs_read_reply (uchar *pkt, unsigned len) printf ("%s\n", __FUNCTION__); #endif - rlen = (uchar *)&(rpc_pkt.u.reply.data[19]) - (uchar *)&(rpc_pkt.u.reply.id); - memcpy ((uchar *)&rpc_pkt, pkt, rlen); + memcpy ((uchar *)&rpc_pkt, pkt, len); if (rpc_pkt.u.reply.rstatus || rpc_pkt.u.reply.verifier || @@ -613,6 +615,7 @@ NfsHandler (uchar *pkt, unsigned dest, unsigned src, unsigned len) puts ("*** ERROR: Cannot umount\n"); NetState = NETLOOP_FAIL; } else { + puts ("\ndone\n"); NetState = NETLOOP_SUCCESS; } break; @@ -658,9 +661,6 @@ NfsHandler (uchar *pkt, unsigned dest, unsigned src, unsigned len) NfsState = STATE_READLINK_REQ; NfsSend (); } else { - puts ("\ndone\n"); - printf ("Bytes transferred = %d (%x hex)\n", - nfs_offset, nfs_offset); NfsState = STATE_UMOUNT_REQ; NfsSend (); } -- 2.25.1