Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com> Cc: Ben Warren <biggerbadder...@gmail.com> Cc: Haavard Skinnemoen <haavard.skinnem...@atmel.com> --- drivers/net/macb.c | 23 +++++++++++++++++------ 1 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/drivers/net/macb.c b/drivers/net/macb.c index 6de0a04..a339730 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -404,12 +404,25 @@ static int macb_phy_init(struct macb_device *macb) } } -static int macb_init(struct eth_device *netdev, bd_t *bd) +static int macb_set_hw_enetaddr(struct eth_device *netdev, bd_t *bd) { struct macb_device *macb = to_macb(netdev); - unsigned long paddr; u32 hwaddr_bottom; u16 hwaddr_top; + + /* 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); + + return 0; +} + +static int macb_init(struct eth_device *netdev, bd_t *bd) +{ + struct macb_device *macb = to_macb(netdev); + unsigned long paddr; int i; /* @@ -439,10 +452,7 @@ 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); + macb_set_hw_enetaddr(netdev, bd); /* choose RMII or MII mode. This depends on the board */ #ifdef CONFIG_RMII @@ -521,6 +531,7 @@ int macb_eth_initialize(int id, void *regs, unsigned int phy_addr) netdev->halt = macb_halt; netdev->send = macb_send; netdev->recv = macb_recv; + netdev->set_hw_enetaddr = macb_set_hw_enetaddr; /* * Do some basic initialization so that we at least can talk -- 1.6.1.3 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot