
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