From d7a45eafda633edf14a8fe6fe430174889de0c4e Mon Sep 17 00:00:00 2001 From: Joe Hershberger Date: Fri, 13 Apr 2018 15:26:30 -0500 Subject: net: Make CMD_NET a menuconfig Previously, CMD_NET was an alias for 2 commands (bootp and tftpboot) and they we not able to be disabled. Separate out those 2 commands and move CMD_NET up to the menu level, which more accurately represents the code. Signed-off-by: Joe Hershberger Reviewed-by: Chris Packham Reviewed-by: Duncan Hare --- cmd/Kconfig | 25 +++++++++++++++++-------- cmd/net.c | 4 ++++ 2 files changed, 21 insertions(+), 8 deletions(-) (limited to 'cmd') diff --git a/cmd/Kconfig b/cmd/Kconfig index d440675b6e3..fb742272d83 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1021,25 +1021,35 @@ config CMD_SETEXPR endmenu -menu "Network commands" - if NET -config CMD_NET - bool "bootp, tftpboot" +menuconfig CMD_NET + bool "Network commands" + default y + +if CMD_NET + +config CMD_BOOTP + bool "bootp" default y help - Network commands. bootp - boot image via network using BOOTP/TFTP protocol + +config CMD_TFTPBOOT + bool "tftpboot" + default y + help tftpboot - boot image via network using TFTP protocol config CMD_TFTPPUT bool "tftp put" + depends on CMD_TFTPBOOT help TFTP put command, for uploading files to a server config CMD_TFTPSRV bool "tftpsrv" + depends on CMD_TFTPBOOT help Act as a TFTP server and boot the first received file @@ -1050,13 +1060,12 @@ config CMD_RARP config CMD_DHCP bool "dhcp" - depends on CMD_NET + depends on CMD_BOOTP help Boot image via network using DHCP/TFTP protocol config CMD_PXE bool "pxe" - depends on CMD_NET select MENU help Boot image via network using PXE protocol @@ -1107,7 +1116,7 @@ config CMD_ETHSW endif -endmenu +endif menu "Misc commands" diff --git a/cmd/net.c b/cmd/net.c index d7c776aacf3..67888d4e184 100644 --- a/cmd/net.c +++ b/cmd/net.c @@ -14,6 +14,7 @@ static int netboot_common(enum proto_t, cmd_tbl_t *, int, char * const []); +#ifdef CONFIG_CMD_BOOTP static int do_bootp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { return netboot_common(BOOTP, cmdtp, argc, argv); @@ -24,7 +25,9 @@ U_BOOT_CMD( "boot image via network using BOOTP/TFTP protocol", "[loadAddress] [[hostIPaddr:]bootfilename]" ); +#endif +#ifdef CONFIG_CMD_TFTPBOOT int do_tftpb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { int ret; @@ -40,6 +43,7 @@ U_BOOT_CMD( "boot image via network using TFTP protocol", "[loadAddress] [[hostIPaddr:]bootfilename]" ); +#endif #ifdef CONFIG_CMD_TFTPPUT static int do_tftpput(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -- cgit v1.3.1 From 92fa44d58f4e5433eeb5fe6a56f2b6faf5e84c20 Mon Sep 17 00:00:00 2001 From: Joe Hershberger Date: Fri, 13 Apr 2018 15:26:32 -0500 Subject: net: Move net command options to the cmd menu Options that controlled the tftp and bootp commands depended on their commands, but lived in the net menu. Move them so they are in a consistent location. Signed-off-by: Joe Hershberger Reviewed-by: Chris Packham --- cmd/Kconfig | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------- net/Kconfig | 50 ----------------------------------------------- 2 files changed, 57 insertions(+), 57 deletions(-) (limited to 'cmd') diff --git a/cmd/Kconfig b/cmd/Kconfig index fb742272d83..7f47819e774 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1035,6 +1035,45 @@ config CMD_BOOTP help bootp - boot image via network using BOOTP/TFTP protocol +config BOOTP_BOOTPATH + bool "Enable BOOTP BOOTPATH" + depends on CMD_BOOTP + +config BOOTP_DNS + bool "Enable bootp DNS" + depends on CMD_BOOTP + +config BOOTP_GATEWAY + bool "Enable BOOTP gateway" + depends on CMD_BOOTP + +config BOOTP_HOSTNAME + bool "Enable BOOTP hostname" + depends on CMD_BOOTP + +config BOOTP_SUBNETMASK + bool "Enable BOOTP subnetmask" + depends on CMD_BOOTP + +config BOOTP_PXE + bool "Enable BOOTP PXE" + depends on CMD_BOOTP + +config BOOTP_PXE_CLIENTARCH + hex + depends on CMD_BOOTP + default 0x16 if ARM64 + default 0x15 if ARM + default 0 if X86 + +config BOOTP_VCI_STRING + string + depends on CMD_BOOTP + default "U-Boot.armv7" if CPU_V7 || CPU_V7M + default "U-Boot.armv8" if ARM64 + default "U-Boot.arm" if ARM + default "U-Boot" + config CMD_TFTPBOOT bool "tftpboot" default y @@ -1053,6 +1092,17 @@ config CMD_TFTPSRV help Act as a TFTP server and boot the first received file +config NET_TFTP_VARS + bool "Control TFTP timeout and count through environment" + depends on CMD_TFTPBOOT + default y + help + If set, allows controlling the TFTP timeout through the + environment variable tftptimeout, and the TFTP maximum + timeout count through the variable tftptimeoutcountmax. + If unset, timeout and maximum are hard-defined as 1 second + and 10 timouts per TFTP transfer. + config CMD_RARP bool "rarpboot" help @@ -1064,12 +1114,6 @@ config CMD_DHCP help Boot image via network using DHCP/TFTP protocol -config CMD_PXE - bool "pxe" - select MENU - help - Boot image via network using PXE protocol - config CMD_NFS bool "nfs" default y @@ -1106,6 +1150,8 @@ config CMD_LINK_LOCAL help Acquire a network IP address using the link-local protocol +endif + config CMD_ETHSW bool "ethsw" help @@ -1114,7 +1160,11 @@ config CMD_ETHSW operations such as enabling / disabling a port and viewing/maintaining the filtering database (FDB) -endif +config CMD_PXE + bool "pxe" + select MENU + help + Boot image via network using PXE protocol endif diff --git a/net/Kconfig b/net/Kconfig index d421a34d979..f2363e52567 100644 --- a/net/Kconfig +++ b/net/Kconfig @@ -22,54 +22,4 @@ config NETCONSOLE Support the 'nc' input/output device for networked console. See README.NetConsole for details. -config NET_TFTP_VARS - bool "Control TFTP timeout and count through environment" - depends on CMD_TFTPBOOT - default y - help - If set, allows controlling the TFTP timeout through the - environment variable tftptimeout, and the TFTP maximum - timeout count through the variable tftptimeoutcountmax. - If unset, timeout and maximum are hard-defined as 1 second - and 10 timouts per TFTP transfer. - -config BOOTP_BOOTPATH - bool "Enable BOOTP BOOTPATH" - depends on CMD_BOOTP - -config BOOTP_DNS - bool "Enable bootp DNS" - depends on CMD_BOOTP - -config BOOTP_GATEWAY - bool "Enable BOOTP gateway" - depends on CMD_BOOTP - -config BOOTP_HOSTNAME - bool "Enable BOOTP hostname" - depends on CMD_BOOTP - -config BOOTP_PXE - bool "Enable BOOTP PXE" - depends on CMD_BOOTP - -config BOOTP_SUBNETMASK - bool "Enable BOOTP subnetmask" - depends on CMD_BOOTP - -config BOOTP_PXE_CLIENTARCH - hex - depends on CMD_BOOTP - default 0x16 if ARM64 - default 0x15 if ARM - default 0 if X86 - -config BOOTP_VCI_STRING - string - depends on CMD_BOOTP - default "U-Boot.armv7" if CPU_V7 || CPU_V7M - default "U-Boot.armv8" if ARM64 - default "U-Boot.arm" if ARM - default "U-Boot" - endif # if NET -- cgit v1.3.1 From e88b2563ddab6fcee8bf0be40811c8bc6b1ccadb Mon Sep 17 00:00:00 2001 From: Joe Hershberger Date: Fri, 13 Apr 2018 15:26:33 -0500 Subject: net: Move the DHCP command below the BOOTP command Move DHCP to directly follow BOOTP so that Kconfig can show the dependency as a hierarchy. Signed-off-by: Joe Hershberger Reviewed-by: Chris Packham Reviewed-by: Duncan Hare --- cmd/Kconfig | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'cmd') diff --git a/cmd/Kconfig b/cmd/Kconfig index 7f47819e774..a89d5acf196 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1035,6 +1035,12 @@ config CMD_BOOTP help bootp - boot image via network using BOOTP/TFTP protocol +config CMD_DHCP + bool "dhcp" + depends on CMD_BOOTP + help + Boot image via network using DHCP/TFTP protocol + config BOOTP_BOOTPATH bool "Enable BOOTP BOOTPATH" depends on CMD_BOOTP @@ -1108,12 +1114,6 @@ config CMD_RARP help Boot image via network using RARP/TFTP protocol -config CMD_DHCP - bool "dhcp" - depends on CMD_BOOTP - help - Boot image via network using DHCP/TFTP protocol - config CMD_NFS bool "nfs" default y -- cgit v1.3.1 From 8df69d9063bd897ffda906c919a7138bf3ce5a58 Mon Sep 17 00:00:00 2001 From: Joe Hershberger Date: Fri, 13 Apr 2018 15:26:34 -0500 Subject: net: Improve menu options and help for BOOTP options The options were pretty unhelpful, so improve them some. Signed-off-by: Joe Hershberger Reviewed-by: Chris Packham --- cmd/Kconfig | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'cmd') diff --git a/cmd/Kconfig b/cmd/Kconfig index a89d5acf196..666437969f8 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1042,23 +1042,32 @@ config CMD_DHCP Boot image via network using DHCP/TFTP protocol config BOOTP_BOOTPATH - bool "Enable BOOTP BOOTPATH" + bool "Request & store 'rootpath' from BOOTP/DHCP server" depends on CMD_BOOTP + help + Even though the config is called BOOTP_BOOTPATH, it stores the + path in the variable 'rootpath'. config BOOTP_DNS - bool "Enable bootp DNS" + bool "Request & store 'dnsip' from BOOTP/DHCP server" depends on CMD_BOOTP + help + The primary DNS server is stored as 'dnsip'. If two servers are + returned, you must set BOOTP_DNS2 to store that second server IP + also. config BOOTP_GATEWAY - bool "Enable BOOTP gateway" + bool "Request & store 'gatewayip' from BOOTP/DHCP server" depends on CMD_BOOTP config BOOTP_HOSTNAME - bool "Enable BOOTP hostname" + bool "Request & store 'hostname' from BOOTP/DHCP server" depends on CMD_BOOTP + help + The name may or may not be qualified with the local domain name. config BOOTP_SUBNETMASK - bool "Enable BOOTP subnetmask" + bool "Request & store 'netmask' from BOOTP/DHCP server" depends on CMD_BOOTP config BOOTP_PXE -- cgit v1.3.1 From 80449c032c595707c9eb4e3517e79e43546b9c78 Mon Sep 17 00:00:00 2001 From: Joe Hershberger Date: Fri, 13 Apr 2018 15:26:35 -0500 Subject: net: Add the BOOTP_DNS2 option to Kconfig Commit 3b3ea2c56ec4bc5 ("Kconfig: cmd: Make networking command dependent on NET") removed the help documentation from the README but didn't add it back to Kconfig. Signed-off-by: Joe Hershberger Reviewed-by: Chris Packham Reviewed-by: Duncan Hare --- cmd/Kconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'cmd') diff --git a/cmd/Kconfig b/cmd/Kconfig index 666437969f8..43efe7d4e94 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1056,6 +1056,17 @@ config BOOTP_DNS returned, you must set BOOTP_DNS2 to store that second server IP also. +config BOOTP_DNS2 + bool "Store 'dnsip2' from BOOTP/DHCP server" + depends on BOOTP_DNS + help + If a DHCP client requests the DNS server IP from a DHCP server, + it is possible that more than one DNS serverip is offered to the + client. If CONFIG_BOOTP_DNS2 is enabled, the secondary DNS + server IP will be stored in the additional environment + variable "dnsip2". The first DNS serverip is always + stored in the variable "dnsip", when BOOTP_DNS is defined. + config BOOTP_GATEWAY bool "Request & store 'gatewayip' from BOOTP/DHCP server" depends on CMD_BOOTP -- cgit v1.3.1 From 2b9f486bf58b52fc6b2c53245c6a3a509b48524f Mon Sep 17 00:00:00 2001 From: Joe Hershberger Date: Fri, 13 Apr 2018 15:26:36 -0500 Subject: net: Improve BOOTP PXE config option Improve the documentation and correct the listed dependencies. Signed-off-by: Joe Hershberger Reviewed-by: Duncan Hare --- cmd/Kconfig | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'cmd') diff --git a/cmd/Kconfig b/cmd/Kconfig index 43efe7d4e94..0d077bde002 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1082,12 +1082,14 @@ config BOOTP_SUBNETMASK depends on CMD_BOOTP config BOOTP_PXE - bool "Enable BOOTP PXE" - depends on CMD_BOOTP + bool "Send PXE client arch to BOOTP/DHCP server" + depends on CMD_BOOTP && CMD_PXE + help + Supported for ARM, ARM64, and x86 for now. config BOOTP_PXE_CLIENTARCH hex - depends on CMD_BOOTP + depends on BOOTP_PXE default 0x16 if ARM64 default 0x15 if ARM default 0 if X86 -- cgit v1.3.1 From 3dfbc53bd6310ccc860cf1ad0e9413d8dbbaf4f1 Mon Sep 17 00:00:00 2001 From: Joe Hershberger Date: Fri, 13 Apr 2018 15:26:37 -0500 Subject: net: Make the BOOTP options default The BOOTP options used to be and should still be default for all boards with CMD_NET enabled. One should not be forced to use DISTRO_DEFAULTS to get them. Signed-off-by: Joe Hershberger Reviewed-by: Duncan Hare --- Kconfig | 6 ------ cmd/Kconfig | 6 ++++++ 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'cmd') diff --git a/Kconfig b/Kconfig index f319750b572..0b73006a68c 100644 --- a/Kconfig +++ b/Kconfig @@ -79,12 +79,6 @@ config DISTRO_DEFAULTS imply CMD_MII if NET select CMD_PART if PARTITIONS select HUSH_PARSER - select BOOTP_BOOTPATH if NET && CMD_NET - select BOOTP_DNS if NET && CMD_NET - select BOOTP_GATEWAY if NET && CMD_NET - select BOOTP_HOSTNAME if NET && CMD_NET - select BOOTP_PXE if NET && CMD_NET - select BOOTP_SUBNETMASK if NET && CMD_NET select CMDLINE_EDITING select AUTO_COMPLETE select SYS_LONGHELP diff --git a/cmd/Kconfig b/cmd/Kconfig index 0d077bde002..bc1d2f31c01 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1043,6 +1043,7 @@ config CMD_DHCP config BOOTP_BOOTPATH bool "Request & store 'rootpath' from BOOTP/DHCP server" + default y depends on CMD_BOOTP help Even though the config is called BOOTP_BOOTPATH, it stores the @@ -1050,6 +1051,7 @@ config BOOTP_BOOTPATH config BOOTP_DNS bool "Request & store 'dnsip' from BOOTP/DHCP server" + default y depends on CMD_BOOTP help The primary DNS server is stored as 'dnsip'. If two servers are @@ -1069,20 +1071,24 @@ config BOOTP_DNS2 config BOOTP_GATEWAY bool "Request & store 'gatewayip' from BOOTP/DHCP server" + default y depends on CMD_BOOTP config BOOTP_HOSTNAME bool "Request & store 'hostname' from BOOTP/DHCP server" + default y depends on CMD_BOOTP help The name may or may not be qualified with the local domain name. config BOOTP_SUBNETMASK bool "Request & store 'netmask' from BOOTP/DHCP server" + default y depends on CMD_BOOTP config BOOTP_PXE bool "Send PXE client arch to BOOTP/DHCP server" + default y depends on CMD_BOOTP && CMD_PXE help Supported for ARM, ARM64, and x86 for now. -- cgit v1.3.1 From 092f2f35b58467d97c34c84f76ad8be872caa535 Mon Sep 17 00:00:00 2001 From: Joe Hershberger Date: Fri, 13 Apr 2018 15:26:39 -0500 Subject: Revert "Kconfig: cmd: Make networking command dependent on NET" This reverts the parts of commit 3b3ea2c56ec4bc5588281fd103c744e608f8b25c where it changed the EFI dependency on NET. Signed-off-by: Joe Hershberger Reviewed-by: Duncan Hare --- Kconfig | 2 +- cmd/bootefi.c | 4 ++-- lib/efi_loader/Makefile | 2 +- lib/efi_loader/efi_device_path.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'cmd') diff --git a/Kconfig b/Kconfig index 0b73006a68c..081be6ce6bf 100644 --- a/Kconfig +++ b/Kconfig @@ -71,7 +71,7 @@ config DISTRO_DEFAULTS select CMD_BOOTI if ARM64 select CMD_DHCP if CMD_NET select CMD_PING if CMD_NET - select CMD_PXE if NET && CMD_NET + select CMD_PXE if NET select CMD_EXT2 select CMD_EXT4 select CMD_FAT diff --git a/cmd/bootefi.c b/cmd/bootefi.c index 5a2a81005fc..5498a5fccf7 100644 --- a/cmd/bootefi.c +++ b/cmd/bootefi.c @@ -56,7 +56,7 @@ efi_status_t efi_init_obj_list(void) if (ret != EFI_SUCCESS) goto out; #endif -#ifdef CONFIG_CMD_NET +#ifdef CONFIG_NET ret = efi_net_register(); if (ret != EFI_SUCCESS) goto out; @@ -511,7 +511,7 @@ void efi_set_bootdev(const char *dev, const char *devnr, const char *path) bootefi_device_path = efi_dp_from_part(desc, part); } else { -#ifdef CONFIG_CMD_NET +#ifdef CONFIG_NET bootefi_device_path = efi_dp_from_eth(); #endif } diff --git a/lib/efi_loader/Makefile b/lib/efi_loader/Makefile index d2ce89713ec..55c97c04766 100644 --- a/lib/efi_loader/Makefile +++ b/lib/efi_loader/Makefile @@ -22,5 +22,5 @@ obj-y += efi_watchdog.o obj-$(CONFIG_LCD) += efi_gop.o obj-$(CONFIG_DM_VIDEO) += efi_gop.o obj-$(CONFIG_PARTITIONS) += efi_disk.o -obj-$(CONFIG_CMD_NET) += efi_net.o +obj-$(CONFIG_NET) += efi_net.o obj-$(CONFIG_GENERATE_SMBIOS_TABLE) += efi_smbios.o diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c index ab28b2fd257..e965f1d88ed 100644 --- a/lib/efi_loader/efi_device_path.c +++ b/lib/efi_loader/efi_device_path.c @@ -747,7 +747,7 @@ struct efi_device_path *efi_dp_from_file(struct blk_desc *desc, int part, return start; } -#ifdef CONFIG_CMD_NET +#ifdef CONFIG_NET struct efi_device_path *efi_dp_from_eth(void) { #ifndef CONFIG_DM_ETH -- cgit v1.3.1