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

Mike Frysinger vapier at gentoo.org
Thu Aug 13 07:17:25 CEST 2009


On Friday 07 August 2009 17:37:51 Ben Warren wrote:
> Jean-Christophe PLAGNIOL-VILLARD wrote:
> > On 22:17 Fri 07 Aug     , Prafulla Wadaskar wrote:
> >> eth_setenv_enetaddr is avaible by upper layer
> >> using this saves 204 bytes on total image size
> >>
> >> Signed-off-by: Prafulla Wadaskar <prafulla at marvell.com>
> >> ---
> >>  drivers/net/kirkwood_egiga.c |   13 ++++++++-----
> >>  1 files changed, 8 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/net/kirkwood_egiga.c b/drivers/net/kirkwood_egiga.c
> >> index 3d908f8..1a208f2 100644
> >> --- a/drivers/net/kirkwood_egiga.c
> >> +++ b/drivers/net/kirkwood_egiga.c
> >> @@ -606,7 +606,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++) {
> >> @@ -665,10 +665,13 @@ 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);
> >> +			dev->enetaddr[0] = 0x00;
> >> +			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);
> >
> > it will be also good to use a private mac address
> > 			dev->enetaddr[0] = 0x02;
>
> Full ACK.  If you're generating something random, it MUST have the
> private bit.  Unless Marvell owns this block and is giving it away and
> is keeping track of all used numbers and ...

really we should add a new common eth function that generates a random local 
mac address ... and have each arch implement a random function.  you can see 
the one i use for Blackfin systems in asm-blackfin/net.h ...
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20090813/f95b5a9e/attachment.pgp 


More information about the U-Boot mailing list