From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Wed, 24 Mar 2010 13:35:56 +0100 Subject: [U-Boot] [PATCH] net, fec_mxc: use mac address stored in env before looking in eeprom In-Reply-To: <4BA9FDEC.9010903@denx.de> References: <4BA9FDEC.9010903@denx.de> Message-ID: <4BAA072C.5050100@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Heiko Schocher wrote: Hi Heiko, > > Signed-off-by: Heiko Schocher > --- > drivers/net/fec_mxc.c | 15 +++++++++++---- > 1 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c > index 5af9cdb..b5245ec 100644 > --- a/drivers/net/fec_mxc.c > +++ b/drivers/net/fec_mxc.c > @@ -749,11 +749,18 @@ static int fec_probe(bd_t *bd) > > eth_register(edev); > > - if (fec_get_hwaddr(edev, ethaddr) == 0) { > - printf("got MAC address from EEPROM: %pM\n", ethaddr); > - memcpy(edev->enetaddr, ethaddr, 6); > - fec_set_hwaddr(edev); > + if (!eth_getenv_enetaddr("ethaddr", ethaddr)) { > + /* "ethaddr" is not set in the environment */ > + if (fec_get_hwaddr(edev, ethaddr) == 0) { > + printf("got MAC address from EEPROM: %pM\n", ethaddr); > + eth_setenv_enetaddr("ethaddr", ethaddr); > + } else { > + printf ("no MAC found\n"); > + return -1; > + } > } > + memcpy(edev->enetaddr, ethaddr, 6); > + fec_set_hwaddr(edev); > > return 0; > } As I understood Ben's comment on my last patch, the driver must not touch any environment variable, that is it must not call any getenv/setenv function. See http://www.mail-archive.com/u-boot at lists.denx.de/msg28329.html Regards, Stefano Babic -- ===================================================================== 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 at denx.de =====================================================================