Hi Vipin, Sorry for weighing in so late on this...
On 5/6/2010 4:18 AM, Vipin KUMAR wrote: > Signed-off-by: Vipin Kumar<vipin.ku...@st.com> > --- > arch/arm/include/asm/arch-spear/hardware.h | 1 + > board/spear/spear300/spear300.c | 10 ++++++++++ > board/spear/spear310/spear310.c | 10 ++++++++++ > board/spear/spear320/spear320.c | 10 ++++++++++ > board/spear/spear600/spear600.c | 10 ++++++++++ > include/configs/spear-common.h | 14 ++++++++++++-- > include/configs/spear3xx.h | 3 +++ > 7 files changed, 56 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/include/asm/arch-spear/hardware.h > b/arch/arm/include/asm/arch-spear/hardware.h > index 818f36c..39d64b6 100644 > --- a/arch/arm/include/asm/arch-spear/hardware.h > +++ b/arch/arm/include/asm/arch-spear/hardware.h > @@ -31,6 +31,7 @@ > #define CONFIG_SPEAR_SYSCNTLBASE (0xFCA00000) > #define CONFIG_SPEAR_TIMERBASE (0xFC800000) > #define CONFIG_SPEAR_MISCBASE (0xFCA80000) > +#define CONFIG_SPEAR_ETHBASE (0xE0800000) > > #define CONFIG_SYS_NAND_CLE (1<< 16) > #define CONFIG_SYS_NAND_ALE (1<< 17) > diff --git a/board/spear/spear300/spear300.c b/board/spear/spear300/spear300.c > index 60ee544..774f466 100644 > --- a/board/spear/spear300/spear300.c > +++ b/board/spear/spear300/spear300.c > @@ -22,6 +22,7 @@ > */ > > #include<common.h> > +#include<netdev.h> > #include<nand.h> > #include<asm/io.h> > #include<asm/arch/hardware.h> > @@ -56,3 +57,12 @@ int board_nand_init(struct nand_chip *nand) > > return -1; > } > + > +int board_eth_init(bd_t *bis) > +{ > +#if defined(CONFIG_DESIGNWARE_ETH) > + return designware_initialize(0, CONFIG_SPEAR_ETHBASE, CONFIG_DW0_PHY); > +#else > + return -1; > +#endif > +} > Returning -1 isn't really the right thing to do here. I apologize that this is really confusing, and needs to be cleaned up. Next release - I promise. If you want to call cpu_eth_init() here, call it directly. Otherwise, return the number of devices found (0 or more). If there's an error in designware_initialize(), you should handle it here, either by asserting, printing a failure banner, etc. The original intent in net/eth.c was something like this: /* Try board-specific initialization first. If it fails or isn't * present, try the cpu-specific initialization */ if (board_eth_init(bis) *is weak* ) cpu_eth_init(bis); but the easiest way to check for weakness was to return -1. This is of course an inappropriate number to use since it's the almost-universal return code for failure. Again, sorry for bringing this up after so many of your iterations. regards, Ben _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot