[U-Boot] macb: get mac address from environment

Mike Frysinger vapier at gentoo.org
Sun Jul 12 03:09:15 CEST 2009


On Saturday 11 July 2009 19:05:40 Andrzej Wolski wrote:
> This fix macb driver broken by commit
> 56b555a644f3cbb1b3929cb52b61d3ce483885f5

what exactly broke ?  drivers that are ported to NET_MULTI should *not* be 
getting the mac from the environment.  and from what i can see, the macb 
driver is properly supporting the NET_MULTI setup.

> --- a/drivers/net/macb.c
> +++ b/drivers/net/macb.c
> @@ -408,8 +408,7 @@ static int macb_init(struct eth_device *netdev, bd_t
> *bd)
>   {
>   	struct macb_device *macb = to_macb(netdev);
>   	unsigned long paddr;
> -	u32 hwaddr_bottom;
> -	u16 hwaddr_top;
> +	uchar enetaddr[6];
>   	int i;
>
>   	/*
> @@ -439,10 +438,10 @@ static int macb_init(struct eth_device *netdev,
> bd_t *bd)
>   	macb_writel(macb, TBQP, macb->tx_ring_dma);
>
>   	/* set hardware address */
> -	hwaddr_bottom = cpu_to_le32(*((u32 *)netdev->enetaddr));
> -	macb_writel(macb, SA1B, hwaddr_bottom);
> -	hwaddr_top = cpu_to_le16(*((u16 *)(netdev->enetaddr + 4)));
> -	macb_writel(macb, SA1T, hwaddr_top);
> +	eth_getenv_enetaddr("ethaddr", enetaddr);
> +	macb_writel(macb, SA1B, (enetaddr[3] << 24) | (enetaddr[2] << 16)
> +				 | (enetaddr[1] <<  8) | (enetaddr[0]));
> +	macb_writel(macb, SA1T, (enetaddr[5] <<  8) | (enetaddr[4]));
>
>   	/* choose RMII or MII mode. This depends on the board */
>   #ifdef CONFIG_RMII

looks to me like the existing code is correct and your new proposed code is 
not
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20090711/57d46a57/attachment.pgp 


More information about the U-Boot mailing list