E1000: clean up CONFIG_E1000_FALLBACK_MAC handling
authorWolfgang Denk <wd@denx.de>
Thu, 31 Jul 2008 11:57:20 +0000 (13:57 +0200)
committerWolfgang Denk <wd@denx.de>
Thu, 31 Jul 2008 11:57:20 +0000 (13:57 +0200)
Avoid "integer constant is too large for 'long' type" warnings.
And simplify the code.

Signed-off-by: Wolfgang Denk <wd@denx.de>
drivers/net/e1000.c
include/configs/MVBC_P.h

index 060b5189968e32dbc2c8db6fcfb40f8a9de97a6d..c8b4e98c669e60f315791b1b049a9d172425c1e9 100644 (file)
@@ -513,9 +513,11 @@ e1000_read_mac_addr(struct eth_device *nic)
                nic->enetaddr[5] += 1;
        }
 #ifdef CONFIG_E1000_FALLBACK_MAC
-       if ( *(u32*)(nic->enetaddr) == 0 || *(u32*)(nic->enetaddr) == ~0 )
-               for ( i=0; i < NODE_ADDRESS_SIZE; i++ )
-                       nic->enetaddr[i] = (CONFIG_E1000_FALLBACK_MAC >> (8*(5-i))) & 0xff;
+       if ( *(u32*)(nic->enetaddr) == 0 || *(u32*)(nic->enetaddr) == ~0 ) {
+               unsigned char fb_mac[NODE_ADDRESS_SIZE] = CONFIG_E1000_FALLBACK_MAC;
+
+               memcpy (nic->enetaddr, fb_mac, NODE_ADDRESS_SIZE);
+       }
 #endif
 #else
        /*
@@ -531,10 +533,9 @@ e1000_read_mac_addr(struct eth_device *nic)
        DEBUGFUNC();
 
        s = getenv ("ethaddr");
-       if (s == NULL){
+       if (s == NULL) {
                return -E1000_ERR_EEPROM;
-       }
-       else{
+       } else {
                for(ii = 0; ii < 6; ii++) {
                        nic->enetaddr[ii] = s ? simple_strtoul (s, &e, 16) : 0;
                        if (s){
index ff6f6cc4a19ba1ef9d729564bc57a04c02e2e897..48f427eb2555fc09d0970992706af50610725832 100644 (file)
 #define CONFIG_NET_RETRY_COUNT 5
 
 #define CONFIG_E1000
-#define CONFIG_E1000_FALLBACK_MAC      0xb6b445ebfbc0
+#define CONFIG_E1000_FALLBACK_MAC      { 0xb6, 0xb4, 0x45, 0xeb, 0xfb, 0xc0 }
 #undef CONFIG_MPC5xxx_FEC
 #undef CONFIG_PHY_ADDR
 #define CONFIG_NETDEV          eth0