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

Prafulla Wadaskar prafulla at marvell.com
Sat Aug 15 10:35:44 CEST 2009


 

> -----Original Message-----
> From: u-boot-bounces at lists.denx.de 
> [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Mike Frysinger
> Sent: Thursday, August 13, 2009 10:47 AM
> To: u-boot at lists.denx.de
> Cc: Ashish Karkare; Prabhanjan Sarnaik; Ben Warren
> Subject: Re: [U-Boot] [PATCH] net: kirkwood: updates: used 
> eth_setenv_enetaddr api
> 
> 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 ...
Good Idea,
I hope each arch will have support to generate random values :-)

Regards..
Prafulla . .

> -mike
> 


More information about the U-Boot mailing list