On Wednesday 11 February 2009, Wolfgang Denk wrote: > > +++ b/board/amcc/katmai/katmai.c > > @@ -451,5 +451,11 @@ int post_hotkeys_pressed(void) > > > > int board_eth_init(bd_t *bis) > > { > > - return pci_eth_init(bis); > > + cpu_eth_init(bis); > > + pci_eth_init(bis); > > + > > + /* > > + * Return 0 so that cpu_eth_init() won't get executed again > > + */ > > + return 0; > > What happens in case of errors? This looks broken to me, or I > misinderstand the comment.
This is the code calling board_eth_init() from net/eth.c: /* 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); So if we return with an error in board_eth_init(), cpu_eth_init() will get called again. Another way to fix this problem would be this implementation: board_eth_init() { pci_eth_init(bis); /* * Return -1 so that cpu_eth_init() will get executed in net/eth.c */ return -1; } But I like the former implementation better, since the cpu internal ethernet interfaces are added first to the network devices list. 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: off...@denx.de ===================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot