diff options
| -rw-r--r-- | board/afeb9260/afeb9260.c | 7 | ||||
| -rw-r--r-- | board/atmel/at91cap9adk/at91cap9adk.c | 7 | ||||
| -rw-r--r-- | board/atmel/at91sam9260ek/at91sam9260ek.c | 7 | ||||
| -rw-r--r-- | board/atmel/at91sam9263ek/at91sam9263ek.c | 7 | ||||
| -rw-r--r-- | board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c | 7 | ||||
| -rw-r--r-- | board/calao/sbc35_a9g20/sbc35_a9g20.c | 7 | ||||
| -rw-r--r-- | board/eukrea/cpu9260/cpu9260.c | 7 | ||||
| -rw-r--r-- | board/ronetix/pm9263/pm9263.c | 7 | ||||
| -rw-r--r-- | drivers/net/macb.c | 23 | 
9 files changed, 15 insertions, 64 deletions
| diff --git a/board/afeb9260/afeb9260.c b/board/afeb9260/afeb9260.c index 4652672ab..3c37557d6 100644 --- a/board/afeb9260/afeb9260.c +++ b/board/afeb9260/afeb9260.c @@ -167,13 +167,6 @@ int dram_init(void)  #ifdef CONFIG_RESET_PHY_R  void reset_phy(void)  { -#ifdef CONFIG_MACB -	/* -	 * Initialize ethernet HW addr prior to starting Linux, -	 * needed for nfsroot -	 */ -	eth_init(gd->bd); -#endif  }  #endif diff --git a/board/atmel/at91cap9adk/at91cap9adk.c b/board/atmel/at91cap9adk/at91cap9adk.c index 258d1eac2..2ab8bc2c4 100644 --- a/board/atmel/at91cap9adk/at91cap9adk.c +++ b/board/atmel/at91cap9adk/at91cap9adk.c @@ -339,13 +339,6 @@ int dram_init(void)  #ifdef CONFIG_RESET_PHY_R  void reset_phy(void)  { -#ifdef CONFIG_MACB -	/* -	 * Initialize ethernet HW addr prior to starting Linux, -	 * needed for nfsroot -	 */ -	eth_init(gd->bd); -#endif  }  #endif diff --git a/board/atmel/at91sam9260ek/at91sam9260ek.c b/board/atmel/at91sam9260ek/at91sam9260ek.c index ed4736027..64c6d1782 100644 --- a/board/atmel/at91sam9260ek/at91sam9260ek.c +++ b/board/atmel/at91sam9260ek/at91sam9260ek.c @@ -179,13 +179,6 @@ int dram_init(void)  #ifdef CONFIG_RESET_PHY_R  void reset_phy(void)  { -#ifdef CONFIG_MACB -	/* -	 * Initialize ethernet HW addr prior to starting Linux, -	 * needed for nfsroot -	 */ -	eth_init(gd->bd); -#endif  }  #endif diff --git a/board/atmel/at91sam9263ek/at91sam9263ek.c b/board/atmel/at91sam9263ek/at91sam9263ek.c index 5cd7aa75f..91efc07ff 100644 --- a/board/atmel/at91sam9263ek/at91sam9263ek.c +++ b/board/atmel/at91sam9263ek/at91sam9263ek.c @@ -284,13 +284,6 @@ int dram_init(void)  #ifdef CONFIG_RESET_PHY_R  void reset_phy(void)  { -#ifdef CONFIG_MACB -	/* -	 * Initialize ethernet HW addr prior to starting Linux, -	 * needed for nfsroot -	 */ -	eth_init(gd->bd); -#endif  }  #endif diff --git a/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c b/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c index 8fa044907..f92b20f4a 100644 --- a/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c +++ b/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c @@ -291,13 +291,6 @@ int dram_init(void)  #ifdef CONFIG_RESET_PHY_R  void reset_phy(void)  { -#ifdef CONFIG_MACB -	/* -	 * Initialize ethernet HW addr prior to starting Linux, -	 * needed for nfsroot -	 */ -	eth_init(gd->bd); -#endif  }  #endif diff --git a/board/calao/sbc35_a9g20/sbc35_a9g20.c b/board/calao/sbc35_a9g20/sbc35_a9g20.c index da34b40e5..9df45c0ea 100644 --- a/board/calao/sbc35_a9g20/sbc35_a9g20.c +++ b/board/calao/sbc35_a9g20/sbc35_a9g20.c @@ -177,13 +177,6 @@ int dram_init(void)  #ifdef CONFIG_RESET_PHY_R  void reset_phy(void)  { -#ifdef CONFIG_MACB -	/* -	 * Initialize ethernet HW addr prior to starting Linux, -	 * needed for nfsroot -	 */ -	eth_init(gd->bd); -#endif  }  #endif diff --git a/board/eukrea/cpu9260/cpu9260.c b/board/eukrea/cpu9260/cpu9260.c index af8a4a2f8..61b6c3323 100644 --- a/board/eukrea/cpu9260/cpu9260.c +++ b/board/eukrea/cpu9260/cpu9260.c @@ -200,13 +200,6 @@ int dram_init(void)  #ifdef CONFIG_RESET_PHY_R  void reset_phy(void)  { -#ifdef CONFIG_MACB -	/* -	 * Initialize ethernet HW addr prior to starting Linux, -	 * needed for nfsroot -	 */ -	eth_init(gd->bd); -#endif  }  #endif diff --git a/board/ronetix/pm9263/pm9263.c b/board/ronetix/pm9263/pm9263.c index c7835de3d..e41c84c76 100644 --- a/board/ronetix/pm9263/pm9263.c +++ b/board/ronetix/pm9263/pm9263.c @@ -387,13 +387,6 @@ int dram_init(void)  #ifdef CONFIG_RESET_PHY_R  void reset_phy(void)  { -#ifdef CONFIG_MACB -	/* -	 * Initialize ethernet HW addr prior to starting Linux, -	 * needed for nfsroot -	 */ -	eth_init(gd->bd); -#endif  }  #endif diff --git a/drivers/net/macb.c b/drivers/net/macb.c index dcb885023..6a58a374b 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -439,8 +439,6 @@ 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;  	int i;  	/* @@ -469,12 +467,6 @@ static int macb_init(struct eth_device *netdev, bd_t *bd)  	macb_writel(macb, RBQP, macb->rx_ring_dma);  	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); -  	/* choose RMII or MII mode. This depends on the board */  #ifdef CONFIG_RMII  #if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \ @@ -521,6 +513,20 @@ static void macb_halt(struct eth_device *netdev)  	macb_writel(macb, NCR, MACB_BIT(CLRSTAT));  } +static int macb_write_hwaddr(struct eth_device *dev) +{ +	struct macb_device *macb = to_macb(dev); +	u32 hwaddr_bottom; +	u16 hwaddr_top; + +	/* set hardware address */ +	hwaddr_bottom = cpu_to_le32(*((u32 *)dev->enetaddr)); +	macb_writel(macb, SA1B, hwaddr_bottom); +	hwaddr_top = cpu_to_le16(*((u16 *)(dev->enetaddr + 4))); +	macb_writel(macb, SA1T, hwaddr_top); +	return 0; +} +  int macb_eth_initialize(int id, void *regs, unsigned int phy_addr)  {  	struct macb_device *macb; @@ -554,6 +560,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->write_hwaddr = macb_write_hwaddr;  	/*  	 * Do some basic initialization so that we at least can talk |