X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fxilinx_emac.c;h=a489aa97fe926027f944623614468b1eab8268e1;hb=69f32e6c24d41fcdf347ff64e9c13b25059ace58;hp=c7f1a2a8d7dd4816a7c5dd1557b78ac8ee3b2f51;hpb=8c8428a576f632745306e288b629e30d420c0f5a;p=oweals%2Fu-boot.git diff --git a/drivers/net/xilinx_emac.c b/drivers/net/xilinx_emac.c index c7f1a2a8d7..a489aa97fe 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 |