* Patch by Masami Komiya, 24 Feb 2004:
authorwdenk <wdenk>
Tue, 24 Feb 2004 22:33:21 +0000 (22:33 +0000)
committerwdenk <wdenk>
Tue, 24 Feb 2004 22:33:21 +0000 (22:33 +0000)
  Update NetBootFileXferSize in NFS code

* Patch by Scott McNutt, 24 Feb 2004:
  fix packet length in NFS code

CHANGELOG
net/nfs.c

index 0dedea4fa88e9c276f9d2355430e500b16605c68..d39fabeb4de5522cf03faebfa9fdcba6c744da3f 100644 (file)
--- 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
 
index 6f4a06ad049dc19ac60b1f557d2550962c928461..069f072574a7f6a74ec5fa153b7443c645dd2379 100644 (file)
--- 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 ();
                }