initialize mac address with the value from "ethaddr", before
doing some network commands. This is not in line with u-boot
design principle "not to initalize not used devices", and
maybe should go away, if there is a solution for passing
the mac address to arm linux kernels.

Tested on the magnesium board.

Signed-off-by: Heiko Schocher <h...@denx.de>
---
posting this patch as a result of this discussion:

http://lists.denx.de/pipermail/u-boot/2010-March/069025.html

 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..9029490 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;
 }
-- 
1.6.2.5

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to