[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