[U-Boot] [PATCH 1/4] net: extend the netdev to have a common way to set the hw mac address

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Mon May 11 08:39:26 CEST 2009


init it at the eth_initialize

this will allow to add later a hook to update the enetadd hw storage
when it's updated in env or when the env is saved

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
Cc: Ben Warren <biggerbadderben at gmail.com>
---
 include/net.h |    2 ++
 net/eth.c     |    4 ++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/include/net.h b/include/net.h
index 5a1d36e..2ed6263 100644
--- a/include/net.h
+++ b/include/net.h
@@ -93,6 +93,7 @@ enum eth_state_t {
 };
 
 struct eth_device {
+	int num;
 	char name[NAMESIZE];
 	unsigned char enetaddr[6];
 	int iobase;
@@ -105,6 +106,7 @@ struct eth_device {
 #ifdef CONFIG_MCAST_TFTP
 	int (*mcast) (struct eth_device*, u32 ip, u8 set);
 #endif
+	int  (*set_hw_enetaddr) (struct eth_device*, bd_t*);
 	struct eth_device *next;
 	void *priv;
 };
diff --git a/net/eth.c b/net/eth.c
index c6fa5b9..99bb6c2 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -217,6 +217,8 @@ int eth_initialize(bd_t *bis)
 			if (eth_number)
 				puts (", ");
 
+			dev->num = eth_number;
+
 			printf("%s", dev->name);
 
 			if (ethprime && strcmp (dev->name, ethprime) == 0) {
@@ -240,6 +242,8 @@ int eth_initialize(bd_t *bis)
 				}
 
 				memcpy(dev->enetaddr, env_enetaddr, 6);
+				if(dev->set_hw_enetaddr)
+					dev->set_hw_enetaddr(dev, bis);
 			}
 
 			eth_number++;
-- 
1.6.1.3



More information about the U-Boot mailing list