public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] [Patch] bugfix:return value of NFS command
@ 2004-12-10 19:03 Hiroshi Ito
  2004-12-14 17:19 ` [U-Boot-Users] Porting U-Boot - SDRAM mode register set command - question Peter Asemann
  2005-08-05 23:10 ` [U-Boot-Users] [Patch] bugfix:return value of NFS command Wolfgang Denk
  0 siblings, 2 replies; 3+ messages in thread
From: Hiroshi Ito @ 2004-12-10 19:03 UTC (permalink / raw)
  To: u-boot

Hello,

1.nfs command return code is depend on umount-all, but not state of
  downloading.

2.When fail to write flash, it doesn't change state to umount

example1:
---nfs server---
[mldbox]# ls -l u-boot.bin
----------  1 root root 204048 Dec 11 02:06 u-boot.bin

--- u-boot ---
# if nfs 80400000 192.168.3.98:/usr/src/mldbox/u-boot.bin; then echo ok; else echo error; fi
Trying i82559#0
Using i82559#0 device
File transfer via NFS from server 192.168.3.98; our IP address is 192.168.3.200
Filename '/usr/src/mldbox/u-boot.bin'.
Load address: 0x80400000
Loading: *
done
ok	<= Wrong!!

example2:
[root at tv mldbox]# rm u-boot.bin
rm: remove regular file `u-boot.bin'? y
[root@tv mldbox]#
# if nfs 80400000 192.168.3.98:/usr/src/mldbox/u-boot.bin; then echo ok; else echo error; fi
Trying i82559#0
Using i82559#0 device
File transfer via NFS from server 192.168.3.98; our IP address is 192.168.3.200
Filename '/usr/src/mldbox/u-boot.bin'.
Load address: 0x80400000
Loading: *** ERROR: File lookup fail

done
ok	<= Wrong!!
#

attached patch fixes these problems.
patch is for current CVS.
--------
Hiroshi Ito
Media Lab. Inc.,
URL http://www.mlb.co.jp ( Sorry, Japanese only. )
TEL +81-3-5294-7255  FAX +81-3-5294-7256
-------------- next part --------------
Index: net/nfs.c
===================================================================
RCS file: /cvsroot/u-boot/u-boot/net/nfs.c,v
retrieving revision 1.8
diff -u -b -B -w -p -r1.8 nfs.c
--- net/nfs.c	28 Sep 2004 21:51:43 -0000	1.8
+++ net/nfs.c	10 Dec 2004 17:36:09 -0000
@@ -44,6 +44,7 @@ static int nfs_len;
 static char dirfh[NFS_FHSIZE];	/* file handle of directory */
 static char filefh[NFS_FHSIZE]; /* file handle of kernel image */
 
+static int	NfsDownloadState;
 static IPaddr_t NfsServerIP;
 static int	NfsSrvMountPort;
 static int	NfsSrvNfsPort;
@@ -63,7 +64,7 @@ static char *nfs_filename;
 static char *nfs_path;
 static char nfs_path_buff[2048];
 
-static __inline__ void
+static __inline__ int
 store_block (uchar * src, unsigned offset, unsigned len)
 {
 	ulong newsize = offset + len;
@@ -82,8 +83,7 @@ store_block (uchar * src, unsigned offse
 		rc = flash_write ((uchar *)src, (ulong)(load_addr+offset), len);
 		if (rc) {
 			flash_perror (rc);
-			NetState = NETLOOP_FAIL;
-			return;
+			return -1;
 		}
 	} else
 #endif /* CFG_DIRECT_FLASH_NFS */
@@ -93,6 +93,7 @@ store_block (uchar * src, unsigned offse
 
 	if (NetBootFileXferSize < (offset+len))
 		NetBootFileXferSize = newsize;
+	return 0;
 }
 
 static char*
@@ -573,7 +574,8 @@ nfs_read_reply (uchar *pkt, unsigned len
 	}
 
 	rlen = ntohl(rpc_pkt.u.reply.data[18]);
-	store_block ((uchar *)pkt+sizeof(rpc_pkt.u.reply), nfs_offset, rlen);
+	if ( store_block ((uchar *)pkt+sizeof(rpc_pkt.u.reply), nfs_offset, rlen) )
+		return -9999;
 
 	return rlen;
 }
@@ -632,7 +634,7 @@ NfsHandler (uchar *pkt, unsigned dest, u
 			NetState = NETLOOP_FAIL;
 		} else {
 			puts ("\ndone\n");
-			NetState = NETLOOP_SUCCESS;
+			NetState = NfsDownloadState;
 		}
 		break;
 
@@ -678,6 +680,7 @@ NfsHandler (uchar *pkt, unsigned dest, u
 			NfsState = STATE_READLINK_REQ;
 			NfsSend ();
 		} else {
+			if ( ! rlen ) NfsDownloadState = NETLOOP_SUCCESS;
 			NfsState = STATE_UMOUNT_REQ;
 			NfsSend ();
 		}
@@ -692,6 +695,7 @@ NfsStart (void)
 #ifdef NFS_DEBUG
 	printf ("%s\n", __FUNCTION__);
 #endif
+	NfsDownloadState = NETLOOP_FAIL;
 
 	NfsServerIP = NetServerIP;
 	nfs_path = (char *)nfs_path_buff;

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot-Users] Porting U-Boot - SDRAM mode register set command - question
  2004-12-10 19:03 [U-Boot-Users] [Patch] bugfix:return value of NFS command Hiroshi Ito
@ 2004-12-14 17:19 ` Peter Asemann
  2005-08-05 23:10 ` [U-Boot-Users] [Patch] bugfix:return value of NFS command Wolfgang Denk
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Asemann @ 2004-12-14 17:19 UTC (permalink / raw)
  To: u-boot

I have some problems to understand how to initialize SDRAM... probably 
this is a little off topic... please forgive me.

I need to program the mode register of the SDRAM in order to get the 
SDRAM working.

So I'm going to write some opcode in the MAR of my MPC875, issue a "run" 
command to the MCR and have a Ram-Word executed which sets the 
CS/RAS/CAS/WE lines correctly so the SDRAM will know I'm trying to issue 
a mode register set command.

The content of the MAR will be put on the address lines, as I'll set AMX 
of the ram-word to 11.
The SDRAM won't see bits 30 and 31, as I have a 32-bit bus and these 
lines are not connected, so I'll take care of that when assembling the 
contents of MAR.
The SDRAM also won't see bit 19, as it's not connected, too - I'll have 
to make GPL_A0 be in the right state in the ram-word instead (which I 
find not very elegant, but I don't see a way to have the MPC875 assign 
the state of address line A19 to GPL_A0).

Okay... that's not such a big problem in theory (correct me if necessary).

The problem is that my SDRAM data sheet says it takes/samples the opcode 
for the mode register set command from its input lines BA0/1, AP/A10, 
A11-12 and A0-9 (I count 15 bit).

To my sorrow this data sheet doesn't mention any opcode. I needed to 
search half the internet to find information on that issue.

The Internet ressource I found says the mode register is only 12 (not 
15) bits wide and only the least significant 7 bits are in use.

So I'm confused... where can I find reliable information on SDRAM mode 
register opcodes, and how many bits is an SDRAM mode register wide?

Peter Asemann

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot-Users] [Patch] bugfix:return value of NFS command
  2004-12-10 19:03 [U-Boot-Users] [Patch] bugfix:return value of NFS command Hiroshi Ito
  2004-12-14 17:19 ` [U-Boot-Users] Porting U-Boot - SDRAM mode register set command - question Peter Asemann
@ 2005-08-05 23:10 ` Wolfgang Denk
  1 sibling, 0 replies; 3+ messages in thread
From: Wolfgang Denk @ 2005-08-05 23:10 UTC (permalink / raw)
  To: u-boot

In message <20041211040316M.ito@mlb.co.jp> you wrote:
>
> 1.nfs command return code is depend on umount-all, but not state of
>   downloading.
> 
> 2.When fail to write flash, it doesn't change state to umount
...
> attached patch fixes these problems.

Thanks, added.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I see that Microsoft's campaign  to  destroy  all  knowledge  of  any
operating   environment   but  its  own  environment-of-the-year  has
succeeded in creating a generation of users who don't understand  the
concept of a shell...
            -- L. Peter Deutsch in <m0x5jNX-000R2UC@lamp.aladdin.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-08-05 23:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-10 19:03 [U-Boot-Users] [Patch] bugfix:return value of NFS command Hiroshi Ito
2004-12-14 17:19 ` [U-Boot-Users] Porting U-Boot - SDRAM mode register set command - question Peter Asemann
2005-08-05 23:10 ` [U-Boot-Users] [Patch] bugfix:return value of NFS command Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox