[U-Boot] [PATCH] net, fec_mxc: use mac address stored in env before looking in eeprom
Stefano Babic
sbabic at denx.de
Wed Mar 24 13:35:56 CET 2010
Heiko Schocher wrote:
Hi Heiko,
>
> Signed-off-by: Heiko Schocher <hs at denx.de>
> ---
> 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@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
=====================================================================
More information about the U-Boot
mailing list