diff options
| author | Mike Frysinger <vapier@gentoo.org> | 2009-02-11 19:01:26 -0500 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2009-03-20 22:39:10 +0100 | 
| commit | d3f871482f06f6a4eaf4a3fafde84846bad87b4f (patch) | |
| tree | 992dd06b484d20eabb22d2a3d549b661f85dc9ea /drivers/net/xilinx_emac.c | |
| parent | b6b4625d175019e387e5b0f65a17322a78f6bb90 (diff) | |
| download | olio-uboot-2014.01-d3f871482f06f6a4eaf4a3fafde84846bad87b4f.tar.xz olio-uboot-2014.01-d3f871482f06f6a4eaf4a3fafde84846bad87b4f.zip | |
drivers/net/: get mac address from environment
The environment is the canonical storage location of the mac address, so
we're killing off the global data location and moving everything to
querying the env directly.
The drivers that get converted here:
	3c589
	4xx_enet
	dc2114x
	dm9000x
	enc28j60
	fsl_mcdmafec
	ks8695eth
	mcffec
	rtl8019
	rtl8169
	s3c4510b_eth
	xilinx_emac
	xilinx_emaclite
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Ben Warren <biggerbadderben@gmail.com>
CC: Rolf Offermanns <rof@sysgo.de>
CC: Stefan Roese <sr@denx.de>
CC: Sascha Hauer <saschahauer@web.de>
CC: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
CC: Greg Ungerer <greg.ungerer@opengear.com>
CC: Xue Ligong <lgxue@hotmail.com>
CC: Masami Komiya <mkomiya@sonare.it>
CC: Curt Brune <curt@cucy.com>
CC: Michal SIMEK <monstr@monstr.eu>
Diffstat (limited to 'drivers/net/xilinx_emac.c')
| -rw-r--r-- | drivers/net/xilinx_emac.c | 12 | 
1 files changed, 7 insertions, 5 deletions
| diff --git a/drivers/net/xilinx_emac.c b/drivers/net/xilinx_emac.c index c7f1a2a8d..a489aa97f 100644 --- a/drivers/net/xilinx_emac.c +++ b/drivers/net/xilinx_emac.c @@ -166,6 +166,7 @@ void eth_halt(void)  int eth_init(bd_t * bis)  { +	uchar enetaddr[6];  	u32 helpreg;  	debug ("EMAC Initialization Started\n\r"); @@ -200,15 +201,16 @@ int eth_init(bd_t * bis)  	helpreg &= ~(XEM_ECR_XMIT_ENABLE_MASK | XEM_ECR_RECV_ENABLE_MASK);  	out_be32 (emac.baseaddress + XEM_ECR_OFFSET, helpreg); -	if (!getenv("ethaddr")) { -		memcpy(bis->bi_enetaddr, emacaddr, ENET_ADDR_LENGTH); +	if (!eth_getenv_enetaddr("ethaddr", enetaddr)) { +		memcpy(enetaddr, emacaddr, ENET_ADDR_LENGTH); +		eth_setenv_enetaddr("ethaddr", enetaddr);  	}  	/* Set the device station address high and low registers */ -	helpreg = (bis->bi_enetaddr[0] << 8) | bis->bi_enetaddr[1]; +	helpreg = (enetaddr[0] << 8) | enetaddr[1];  	out_be32 (emac.baseaddress + XEM_SAH_OFFSET, helpreg); -	helpreg = (bis->bi_enetaddr[2] << 24) | (bis->bi_enetaddr[3] << 16) | -			(bis->bi_enetaddr[4] << 8) | bis->bi_enetaddr[5]; +	helpreg = (enetaddr[2] << 24) | (enetaddr[3] << 16) | +			(enetaddr[4] << 8) | enetaddr[5];  	out_be32 (emac.baseaddress + XEM_SAL_OFFSET, helpreg);  	helpreg = XEM_ECR_UNICAST_ENABLE_MASK | XEM_ECR_BROAD_ENABLE_MASK | |