From 97cfe86163505ea18e7ff7b71e78df5bb03dad57 Mon Sep 17 00:00:00 2001 From: Robin Getz Date: Tue, 21 Jul 2009 12:15:28 -0400 Subject: 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 Signed-off-by: Ben Warren --- net/net.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'net/net.c') diff --git a/net/net.c b/net/net.c index 7ce947db30..641c37cb8f 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); -- cgit v1.2.1