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

Mike Frysinger
2009-02-14T07:22:47Z

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Ben Warren <biggerbadderben@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