summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorRobin Getz <rgetz@blackfin.uclinux.org>2009-07-21 16:15:28 (GMT)
committerBen Warren <biggerbadderben@gmail.com>2009-07-23 06:17:01 (GMT)
commit97cfe86163505ea18e7ff7b71e78df5bb03dad57 (patch)
treed4b32be4b5765ba9de50864a3b17af7286ba2cc0 /net
parent0b23fb368d08c9669fac647971ff249c3f9fee8f (diff)
downloadu-boot-fsl-qoriq-97cfe86163505ea18e7ff7b71e78df5bb03dad57.tar.xz
Save server's MAC address in environment
Linux's netconsole works much better when you can pass it the MAC address of the server. (otherwise it just uses broadcast, which everyone else on my network complains about :) This sets the env var "serveraddr" (to match ethaddr), so that you can pass it to linux with whatever bootargs you want to.... addnetconsole=set bootargs $(bootargs) netconsole=@$(ipaddr)/eth0,@$(serverip)/$(serveraddr) Signed-of-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Diffstat (limited to 'net')
-rw-r--r--net/net.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/net.c b/net/net.c
index 7ce947d..641c37c 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1287,6 +1287,15 @@ NetReceive(volatile uchar * inpkt, int len)
/* are we waiting for a reply */
if (!NetArpWaitPacketIP || !NetArpWaitPacketMAC)
break;
+
+#ifdef CONFIG_KEEP_SERVERADDR
+ if (NetServerIP == NetArpWaitPacketIP) {
+ char buf[20];
+ sprintf(buf, "%pM", arp->ar_data);
+ setenv("serveraddr", buf);
+ }
+#endif
+
#ifdef ET_DEBUG
printf("Got ARP REPLY, set server/gtwy eth addr (%pM)\n",
arp->ar_data);