Hi Detlev,
On 4/1/2010 6:45 AM, Detlev Zundel wrote: > This saves the autonegotation delay when not using ethernet in U-Boot > > Signed-off-by: Detlev Zundel<d...@denx.de> > --- > drivers/net/mpc512x_fec.c | 30 ++++++++++-------------------- > 1 files changed, 10 insertions(+), 20 deletions(-) > > diff --git a/drivers/net/mpc512x_fec.c b/drivers/net/mpc512x_fec.c > index 1bb3d5d..1a34d46 100644 > --- a/drivers/net/mpc512x_fec.c > +++ b/drivers/net/mpc512x_fec.c > @@ -221,11 +221,20 @@ static void mpc512x_fec_set_hwaddr (mpc512x_fec_priv > *fec, char *mac) > static int mpc512x_fec_init (struct eth_device *dev, bd_t * bis) > { > mpc512x_fec_priv *fec = (mpc512x_fec_priv *)dev->priv; > + char env_enetaddr[6]; > > #if (DEBUG& 0x1) > printf ("mpc512x_fec_init... Begin\n"); > #endif > > + if (eth_getenv_enetaddr("ethaddr", env_enetaddr)) { > + mpc512x_fec_set_hwaddr (fec, env_enetaddr); > + out_be32(&fec->eth->gaddr1, 0x00000000); > + out_be32(&fec->eth->gaddr2, 0x00000000); > + } > By the time this code is called, the common networking code has already figured out the best MAC address to use and has stuffed it into dev->enetaddr. Please use that instead. > + > + mpc512x_fec_init_phy (dev, bis); > + > /* Set interrupt mask register */ > out_be32(&fec->eth->imask, 0x00000000); > > @@ -612,7 +621,7 @@ int mpc512x_fec_initialize (bd_t * bis) > mpc512x_fec_priv *fec; > struct eth_device *dev; > int i; > - char *tmp, *end, env_enetaddr[6]; > + char *tmp, *end; > void * bd; > > fec = (mpc512x_fec_priv *) malloc (sizeof(*fec)); > @@ -663,25 +672,6 @@ int mpc512x_fec_initialize (bd_t * bis) > */ > out_be32(&fec->eth->ievent, 0xffffffff); > > - /* > - * Try to set the mac address now. The fec mac address is > - * a garbage after reset. When not using fec for booting > - * the Linux fec driver will try to work with this garbage. > - */ > - tmp = getenv ("ethaddr"); > - if (tmp) { > - for (i=0; i<6; i++) { > - env_enetaddr[i] = tmp ? simple_strtoul (tmp,&end, 16) : > 0; > - if (tmp) > - tmp = (*end) ? end+1 : end; > - } > - mpc512x_fec_set_hwaddr (fec, env_enetaddr); > - out_be32(&fec->eth->gaddr1, 0x00000000); > - out_be32(&fec->eth->gaddr2, 0x00000000); > - } > - > - mpc512x_fec_init_phy (dev, bis); > - > return 1; > } > > regards, Ben _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot