
On Tuesday 08 January 2008, Ben Warren wrote:
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.
I'm back now and will give it a try this evening. Thanks for pointing this out.
Note: This patch may trigger other platform ethernet driver problems as well. So I strongly encourage all platform maintainers/custodians to check if a change in the return code of the ethernet driver is needed.
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 =====================================================================