diff options
| -rw-r--r-- | drivers/net/smc911x.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index 30f2dc266..8c9a2a8a0 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c @@ -41,8 +41,13 @@ static int smx911x_handle_mac_address(bd_t *bd)  	unsigned long addrh, addrl;  	uchar m[6]; -	/* if the environment has a valid mac address then use it */ -	if (!eth_getenv_enetaddr("ethaddr", m)) { +	if (eth_getenv_enetaddr("ethaddr", m)) { +		/* if the environment has a valid mac address then use it */ +		addrl = m[0] | (m[1] << 8) | (m[2] << 16) | (m[3] << 24); +		addrh = m[4] | (m[5] << 8); +		smc911x_set_mac_csr(ADDRL, addrl); +		smc911x_set_mac_csr(ADDRH, addrh); +	} else {  		/* if not, try to get one from the eeprom */  		addrh = smc911x_get_mac_csr(ADDRH);  		addrl = smc911x_get_mac_csr(ADDRL); |