[U-Boot] [PATCH] ppc4xx: Fix problem with board_eth_init() vs cpu_eth_init() on AMCC boards

Wolfgang Denk wd at denx.de
Wed Feb 11 17:22:42 CET 2009


Dear Stefan Roese,

In message <200902111436.38210.sr at denx.de> you wrote:
> 
> pci_eth_init() is called to add additional *optional* network interfaces. 
> Since PCI boards may or may not exist, I think that a non existant PCI 
> ethernet device should not result in an error.
> 
> What sort of error handling do you have in mind here?

I don;t know. I just see that pci_eth_init() is declared to return
"int". If the return value is not used, we should make the function
void.

> > >         /* Try board-specific initialization first.  If it fails or isn't
> > >          * present, try the cpu-specific initialization */
> > >         if (board_eth_init(bis) < 0)
> > >                 cpu_eth_init(bis);
> >
> > I think we must differentiate between board_eth_init() not existing
> > and a failure in board_eth_init(); these are two very different
> > situations.
> 
> board_eth_init() not existing is the default. We have a weak implementation 
> for board_eth_init() in eth.c:
> 
> /*
>  * CPU and board-specific Ethernet initializations.  Aliased function
>  * signals caller to move on
>  */
> static int __def_eth_init(bd_t *bis)
> {
>         return -1;
> }
> int cpu_eth_init(bd_t *bis) __attribute((weak, alias("__def_eth_init")));
> int board_eth_init(bd_t *bis) __attribute((weak, alias("__def_eth_init")));
> 
> 
> What change do you have in mind here?

I don't understand the intended logic. As far as I can see,
pci_eth_init() will return the number of initialized boards, i. e. a
non-negative value. Then having board_eth_init() reuturn the same
return code should be no problem - you get -1 (i. e. < 0) if
board_eth_init() does not exist, and >= 0 else.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
No journaling file system can recover your data if the disk dies.
                                 - Steve Rago in <D4Cw1p.L9E at plc.com>


More information about the U-Boot mailing list