]> git.sur5r.net Git - u-boot/blobdiff - drivers/net/smc911x.c
fec_mxc: cleanup and factor out MX27 dependencies
[u-boot] / drivers / net / smc911x.c
index 5d51406f6fab04a150b648dde3ec7a2e0d6bf526..cac08d0a7cccac93058fef90009316f02420114c 100644 (file)
@@ -257,12 +257,15 @@ int smc911x_initialize(u8 dev_num, int base_addr)
 
        addrh = smc911x_get_mac_csr(dev, ADDRH);
        addrl = smc911x_get_mac_csr(dev, ADDRL);
-       dev->enetaddr[0] = addrl;
-       dev->enetaddr[1] = addrl >>  8;
-       dev->enetaddr[2] = addrl >> 16;
-       dev->enetaddr[3] = addrl >> 24;
-       dev->enetaddr[4] = addrh;
-       dev->enetaddr[5] = addrh >> 8;
+       if (!(addrl == 0xffffffff && addrh == 0x0000ffff)) {
+               /* address is obtained from optional eeprom */
+               dev->enetaddr[0] = addrl;
+               dev->enetaddr[1] = addrl >>  8;
+               dev->enetaddr[2] = addrl >> 16;
+               dev->enetaddr[3] = addrl >> 24;
+               dev->enetaddr[4] = addrh;
+               dev->enetaddr[5] = addrh >> 8;
+       }
 
        dev->init = smc911x_init;
        dev->halt = smc911x_halt;