net: kirkwood: updates: used eth_setenv_enetaddr api
authorPrafulla Wadaskar <prafulla@marvell.com>
Mon, 10 Aug 2009 14:13:06 +0000 (19:43 +0530)
committerBen Warren <biggerbadderben@gmail.com>
Mon, 10 Aug 2009 21:58:13 +0000 (14:58 -0700)
eth_setenv_enetaddr is avaible by upper layer
using this saves 204 bytes on total image size

used Local OUI instead of Marvell OUI for
random MAC address generation logic

Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
drivers/net/kirkwood_egiga.c

index 701812bf1c5258175a223fb1896791a588bcbde1..f31fefcb09f7e47441e4b8ed39af52f5be213477 100644 (file)
@@ -592,7 +592,7 @@ int kirkwood_egiga_initialize(bd_t * bis)
        struct kwgbe_device *dkwgbe;
        struct eth_device *dev;
        int devnum;
-       char *s, buf[NAMESIZE * 2];
+       char *s;
        u8 used_ports[MAX_KWGBE_DEVS] = CONFIG_KIRKWOOD_EGIGA_PORTS;
 
        for (devnum = 0; devnum < MAX_KWGBE_DEVS; devnum++) {
@@ -650,11 +650,14 @@ int kirkwood_egiga_initialize(bd_t * bis)
                }
 
                while (!eth_getenv_enetaddr(s, dev->enetaddr)) {
-                       /* Generate Ramdom MAC addresses if not set */
-                       sprintf(buf, "00:50:43:%02x:%02x:%02x",
-                               get_random_hex(), get_random_hex(),
-                               get_random_hex());
-                       setenv(s, buf);
+                       /* Generate Random Private MAC addr if not set */
+                       dev->enetaddr[0] = 0x02;
+                       dev->enetaddr[1] = 0x50;
+                       dev->enetaddr[2] = 0x43;
+                       dev->enetaddr[3] = get_random_hex();
+                       dev->enetaddr[4] = get_random_hex();
+                       dev->enetaddr[5] = get_random_hex();
+                       eth_setenv_enetaddr(s, dev->enetaddr);
                }
 
                dev->init = (void *)kwgbe_init;