[U-Boot] [PATCH v2] net: kirkwood: updates: used eth_setenv_enetaddr api

Prafulla Wadaskar prafulla at marvell.com
Mon Aug 10 16:13:06 CEST 2009


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 at marvell.com>
---
Change log
v2: updated as per feedback for v1
private MAC address used
typos corrected

 drivers/net/kirkwood_egiga.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/net/kirkwood_egiga.c b/drivers/net/kirkwood_egiga.c
index 701812b..e3580af 100644
--- a/drivers/net/kirkwood_egiga.c
+++ b/drivers/net/kirkwood_egiga.c
@@ -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;
-- 
1.5.3.3



More information about the U-Boot mailing list