All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH][Net] Write MAC address automatically on MACB-based boards
@ 2010-06-01 19:03 Ben Warren
  2010-06-02  9:44 ` Alexander Stein
  2010-06-21  6:12 ` Ben Warren
  0 siblings, 2 replies; 4+ messages in thread
From: Ben Warren @ 2010-06-01 19:03 UTC (permalink / raw)
  To: u-boot

Also, remove all calls to eth_init() in boards that use MACB

Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
---
Please note: this is untested, but compiles cleanly

 board/afeb9260/afeb9260.c                       |    7 -------
 board/atmel/at91cap9adk/at91cap9adk.c           |    7 -------
 board/atmel/at91sam9260ek/at91sam9260ek.c       |    7 -------
 board/atmel/at91sam9263ek/at91sam9263ek.c       |    7 -------
 board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c |    7 -------
 board/calao/sbc35_a9g20/sbc35_a9g20.c           |    7 -------
 board/eukrea/cpu9260/cpu9260.c                  |    7 -------
 board/ronetix/pm9263/pm9263.c                   |    7 -------
 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 4652672..3c37557 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 258d1ea..2ab8bc2 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 ed47360..64c6d17 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 5cd7aa7..91efc07 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 edfb627..ad7d5f7 100644
--- a/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c
+++ b/board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c
@@ -278,13 +278,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 da34b40..9df45c0 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 af8a4a2..61b6c33 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 23ea154..86bdbf5 100644
--- a/board/ronetix/pm9263/pm9263.c
+++ b/board/ronetix/pm9263/pm9263.c
@@ -380,13 +380,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 dcb8850..6a58a37 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
-- 
1.6.0.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH][Net] Write MAC address automatically on MACB-based boards
  2010-06-01 19:03 [U-Boot] [PATCH][Net] Write MAC address automatically on MACB-based boards Ben Warren
@ 2010-06-02  9:44 ` Alexander Stein
  2010-06-02 17:02   ` Ben Warren
  2010-06-21  6:12 ` Ben Warren
  1 sibling, 1 reply; 4+ messages in thread
From: Alexander Stein @ 2010-06-02  9:44 UTC (permalink / raw)
  To: u-boot

Hi Ben,

Am Dienstag, 1. Juni 2010 21:03:51 schrieb Ben Warren:
> Also, remove all calls to eth_init() in boards that use MACB
> 
> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>

After cherry-picking ecee9324d73555e744593f3e0d387bec4c566f55 in my v2010.3 
based tree and removing eth_init in reset_phy there is no boot delay due to 
resetting the phy which is done in *_macb_hw_init.
Also the MAC address is programmed into hardware and doesn't need to be set by 
ifconfig eth0 hw ether ${MAC}
One side note, but this shouldn't matter at all: I tested this on my own 
board, not on of the boards with in-tree support in u-boot

Tested-by: Alexander Stein <alexander.stein@systec-electronic.com>

Best regards
Alexander

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH][Net] Write MAC address automatically on MACB-based boards
  2010-06-02  9:44 ` Alexander Stein
@ 2010-06-02 17:02   ` Ben Warren
  0 siblings, 0 replies; 4+ messages in thread
From: Ben Warren @ 2010-06-02 17:02 UTC (permalink / raw)
  To: u-boot

Hi Alexander,

On 6/2/2010 2:44 AM, Alexander Stein wrote:
> Hi Ben,
>
> Am Dienstag, 1. Juni 2010 21:03:51 schrieb Ben Warren:
>    
>> Also, remove all calls to eth_init() in boards that use MACB
>>
>> Signed-off-by: Ben Warren<biggerbadderben@gmail.com>
>>      
> After cherry-picking ecee9324d73555e744593f3e0d387bec4c566f55 in my v2010.3
> based tree and removing eth_init in reset_phy there is no boot delay due to
> resetting the phy which is done in *_macb_hw_init.
> Also the MAC address is programmed into hardware and doesn't need to be set by
> ifconfig eth0 hw ether ${MAC}
> One side note, but this shouldn't matter at all: I tested this on my own
> board, not on of the boards with in-tree support in u-boot
>
> Tested-by: Alexander Stein<alexander.stein@systec-electronic.com>
>
>    
Beautiful!  I'm glad this worked out for you.  If I don't receive any 
negative feedback, this patch will make it into the next release.
> Best regards
> Alexander
>    
regards,
Ben

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH][Net] Write MAC address automatically on MACB-based boards
  2010-06-01 19:03 [U-Boot] [PATCH][Net] Write MAC address automatically on MACB-based boards Ben Warren
  2010-06-02  9:44 ` Alexander Stein
@ 2010-06-21  6:12 ` Ben Warren
  1 sibling, 0 replies; 4+ messages in thread
From: Ben Warren @ 2010-06-21  6:12 UTC (permalink / raw)
  To: u-boot

On 6/1/2010 12:03 PM, Ben Warren wrote:
> Also, remove all calls to eth_init() in boards that use MACB
>
> Signed-off-by: Ben Warren<biggerbadderben@gmail.com>
> ---
> Please note: this is untested, but compiles cleanly
>
>   board/afeb9260/afeb9260.c                       |    7 -------
>   board/atmel/at91cap9adk/at91cap9adk.c           |    7 -------
>   board/atmel/at91sam9260ek/at91sam9260ek.c       |    7 -------
>   board/atmel/at91sam9263ek/at91sam9263ek.c       |    7 -------
>   board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c |    7 -------
>   board/calao/sbc35_a9g20/sbc35_a9g20.c           |    7 -------
>   board/eukrea/cpu9260/cpu9260.c                  |    7 -------
>   board/ronetix/pm9263/pm9263.c                   |    7 -------
>   drivers/net/macb.c                              |   23 +++++++++++++++--------
>   9 files changed, 15 insertions(+), 64 deletions(-)
>    
Applied to net/next.

regards,
Ben

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-06-21  6:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-01 19:03 [U-Boot] [PATCH][Net] Write MAC address automatically on MACB-based boards Ben Warren
2010-06-02  9:44 ` Alexander Stein
2010-06-02 17:02   ` Ben Warren
2010-06-21  6:12 ` Ben Warren

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.