Convert CONFIG_KEEP_SERVERADDR to Kconfig

This converts the following to Kconfig:
   CONFIG_KEEP_SERVERADDR

Drop the preprocessor usage also.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2021-12-18 11:27:48 -07:00 committed by Tom Rini
parent 2d7a463e82
commit 3df6cd4d63
4 changed files with 11 additions and 9 deletions

5
README
View file

@ -1138,11 +1138,6 @@ The following options need to be configured:
server to contact when using the "tftboot" command.
(Environment variable "serverip")
CONFIG_KEEP_SERVERADDR
Keeps the server's MAC address, in the env 'serveraddr'
for passing to bootargs (like Linux's netconsole option)
- Gateway IP address:
CONFIG_GATEWAYIP

View file

@ -25,7 +25,6 @@
#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
115200}
#define CONFIG_KEEP_SERVERADDR
#define CONFIG_UDP_CHECKSUM
#define CONFIG_TIMESTAMP
#define CONFIG_BOOTP_SERVERIP

View file

@ -99,4 +99,13 @@ config SERVERIP_FROM_PROXYDHCP_DELAY_MS
receiving response from main DHCP server. Has no effect if
SERVERIP_FROM_PROXYDHCP is false.
config KEEP_SERVERADDR
bool "Write the server's MAC address to 'serveraddr'"
default y if SANDBOX
help
Keeps the server's MAC address, in the env 'serveraddr'
for passing to bootargs (like Linux's netconsole option). If this is
enabled, when an ARP reply is received, the server's IP address is
written there.
endif # if NET

View file

@ -196,13 +196,12 @@ void arp_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)
if (!arp_is_waiting())
break;
#ifdef CONFIG_KEEP_SERVERADDR
if (net_server_ip.s_addr == net_arp_wait_packet_ip.s_addr) {
if (IS_ENABLED(CONFIG_KEEP_SERVERADDR) &&
net_server_ip.s_addr == net_arp_wait_packet_ip.s_addr) {
char buf[20];
sprintf(buf, "%pM", &arp->ar_sha);
env_set("serveraddr", buf);
}
#endif
reply_ip_addr = net_read_ip(&arp->ar_spa);