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>
This commit is contained in:
parent
0b23fb368d
commit
97cfe86163
5
README
5
README
@ -1184,6 +1184,11 @@ The following options need to be configured:
|
||||
Defines a default value for the IP address of a TFTP
|
||||
server to contact when using the "tftboot" command.
|
||||
|
||||
CONFIG_KEEP_SERVERADDR
|
||||
|
||||
Keeps the server's MAC address, in the env 'serveraddr'
|
||||
for passing to bootargs (like Linux's netconsole option)
|
||||
|
||||
- Multicast TFTP Mode:
|
||||
CONFIG_MCAST_TFTP
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user