[U-Boot] [PATCH 04/27] net: get mac address from environment and use eth util funcs

Mike Frysinger vapier at gentoo.org
Sat Feb 14 08:22:47 CET 2009


Signed-off-by: Mike Frysinger <vapier at gentoo.org>
CC: Ben Warren <biggerbadderben at gmail.com>
---
 net/bootp.c |   13 ++-----------
 net/net.c   |   20 ++++++++------------
 2 files changed, 10 insertions(+), 23 deletions(-)

diff --git a/net/bootp.c b/net/bootp.c
index 83465e4..c87049c 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -579,21 +579,12 @@ BootpRequest (void)
 #ifdef CONFIG_BOOTP_RANDOM_DELAY		/* Random BOOTP delay */
 	unsigned char bi_enetaddr[6];
 	int   reg;
-	char  *e,*s;
-	char tmp[64];
 	ulong tst1, tst2, sum, m_mask, m_value = 0;
 
 	if (BootpTry ==0) {
 		/* get our mac */
-		reg = getenv_r ("ethaddr", tmp, sizeof(tmp));
-		s = (reg > 0) ? tmp : NULL;
+		eth_getenv_enetaddr("ethaddr", bi_enetaddr);
 
-		for (reg=0; reg<6; ++reg) {
-			bi_enetaddr[reg] = s ? simple_strtoul(s, &e, 16) : 0;
-			if (s) {
-				s = (*e) ? e+1 : e;
-			}
-		}
 #ifdef DEBUG
 		puts ("BootpRequest => Our Mac: ");
 		for (reg=0; reg<6; reg++) {
diff --git a/net/net.c b/net/net.c
index 459baf4..d4f9488 100644
--- a/net/net.c
+++ b/net/net.c
@@ -330,7 +330,7 @@ restart:
 #ifdef CONFIG_NET_MULTI
 	memcpy (NetOurEther, eth_get_dev()->enetaddr, 6);
 #else
-	memcpy (NetOurEther, bd->bi_enetaddr, 6);
+	eth_getenv_enetaddr("ethaddr", NetOurEther);
 #endif
 
 	NetState = NETLOOP_CONTINUE;
@@ -658,6 +658,9 @@ int
 NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, int sport, int len)
 {
 	uchar *pkt;
+#ifdef ET_DEBUG
+	char buf[20];
+#endif
 
 	/* convert to new style broadcast */
 	if (dest == 0)
@@ -693,8 +696,7 @@ NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport, int sport, int len)
 	}
 
 #ifdef ET_DEBUG
-	printf("sending UDP to %08lx/%02x:%02x:%02x:%02x:%02x:%02x\n",
-		dest, ether[0], ether[1], ether[2], ether[3], ether[4], ether[5]);
+	printf("sending UDP to %08lx/%s\n", dest, str_enetaddr(buf, ether));
 #endif
 
 	pkt = (uchar *)NetTxPacket;
@@ -915,11 +917,7 @@ int CDPSendTrigger(void)
 #ifdef CONFIG_CDP_DEVICE_ID
 	*s++ = htons(CDP_DEVICE_ID_TLV);
 	*s++ = htons(CONFIG_CDP_DEVICE_ID);
-	memset(buf, 0, sizeof(buf));
-	sprintf(buf, CONFIG_CDP_DEVICE_ID_PREFIX "%02X%02X%02X%02X%02X%02X",
-		NetOurEther[0] & 0xff, NetOurEther[1] & 0xff,
-		NetOurEther[2] & 0xff, NetOurEther[3] & 0xff,
-		NetOurEther[4] & 0xff, NetOurEther[5] & 0xff);
+	str_enetaddr(buf, NetOurEther);
 	memcpy((uchar *)s, buf, 16);
 	s += 16 / 2;
 #endif
@@ -1319,10 +1317,8 @@ NetReceive(volatile uchar * inpkt, int len)
 			if (!NetArpWaitPacketIP || !NetArpWaitPacketMAC)
 				break;
 #ifdef ET_DEBUG
-			printf("Got ARP REPLY, set server/gtwy eth addr (%02x:%02x:%02x:%02x:%02x:%02x)\n",
-				arp->ar_data[0], arp->ar_data[1],
-				arp->ar_data[2], arp->ar_data[3],
-				arp->ar_data[4], arp->ar_data[5]);
+			printf("Got ARP REPLY, set server/gtwy eth addr (%s)\n",
+				str_enetaddr(arp->ar_data));
 #endif
 
 			tmp = NetReadIP(&arp->ar_data[6]);
-- 
1.6.1.3



More information about the U-Boot mailing list