From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Warren Date: Tue, 08 Jan 2008 09:56:32 -0500 Subject: [U-Boot-Users] [PATCH] NET: Proper return code handling in eth_init() function in file eth.c In-Reply-To: References: <200711290724.11234.sr@denx.de> <200801081526.42284.sr@denx.de> Message-ID: <47838F20.6020905@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Upakul Barkakaty wrote: > > On 1/8/08, *Stefan Roese* > wrote: > > On Thursday 29 November 2007, Upakul Barkakaty wrote: > > NET: Proper return code handling in eth_init() function in file > eth.c > > > > This patch modifies the return code handling in the eth_init() > > function, to be compatible with the handling of the return codes in > > the other network stack files. It now returns a 0 on Success and > -1 on > > error. > > I just noticed that this patch breaks TFTP on 4xx platforms: > > commit 505be87a65e4f87ad7d8da1d57ea4dcd487d7e32 > Author: Upakul Barkakaty > > Date: Thu Nov 29 12:16:13 2007 +0530 > > NET: Proper return code handling in eth_init() function in > file eth.c > > This patch modifies the return code handling in the eth_init() > function, to be compatible with the handling of the return > codes in > the other network stack files. It now returns a 0 on Success > and -1 on > error. > > Signed-off-by: Upakul Barkakaty < > upakul.barkakaty at conexant.com > > Signed-off-by: Ben Warren > > > I just see link auto-negotiation going on, and after that no real > transaction > is happening! :-( > > => tftp 100000 u-image.bin > Waiting for PHY auto negotiation to complete.... done > ENET Speed is 1000 Mbps - FULL duplex connection (EMAC0) > > Would be great if someone could look into this ASAP. Unfortunately > I have no > time left today. > > Thanks. > > Best regards, > Stefan > > ===================================================================== > DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: > office at denx.de > ===================================================================== > > > Hi Stefan, > > Probably i got the reason why this is happening. As a convention that > is usually followed, the code in eth_init() function in the file eth.c > was reworked to handle 0 in case of Success and any non zero value in > case of an error. > > Most of the Ethernet driver's init routines adhere to the same > convention of returning a 0 on Success and a non zero value in case of > error. However, the driver you might be using, may be returning a non > zero value on Successful initialization, that is why the problem is > arising. The solution could be to return 0 in case of Success, from > the Ethernet driver's init() routine. > > Thanks!! > > -- > Regards, > Upakul Barkakaty Yeah, looks like ppc_4xx_eth_init() (cpu/ppc4xx/4xx_enet.c) returns 1 on success and -1 on failure. I don't have hardware to test this. Can you check it out Stefan? Let's look through the other drivers to see if this is an isolated case. regards, Ben