[U-Boot-Users] [PATCH] NET: Proper return code handling in eth_init() function in file eth.c

Upakul Barkakaty upakul at gmail.com
Tue Jan 8 15:50:27 CET 2008


On 1/8/08, Stefan Roese <sr at 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 at 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 at conexant.com>
>     Signed-off-by: Ben Warren <biggerbadderben at 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 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20080108/247a5965/attachment.htm 


More information about the U-Boot mailing list