
On 1/8/08, Stefan Roese sr@denx.de 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 upakul@gmail.com 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@conexant.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
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@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!!