summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2026-04-27 11:28:25 -0600
committerTom Rini <[email protected]>2026-04-27 11:28:25 -0600
commit96c8b9c4ceb7a144e52b5bbf56ea58512f978bb7 (patch)
treec7fb0f14a097244d8bfe6b62dd72e11a9246eb5f
parent6863587485a430e5d0709d3ba88aece811240416 (diff)
parentb06c5ef4ddf051b0da8276d2a00ee3df037cbf2f (diff)
Merge patch series "net: migrate NO_NET out of the networking stack choice"
Quentin Schulz <[email protected]> says: This migrates the net options away from the main Kconfig to net/Kconfig, rename the current NET option to NET_LEGACY to really highlight what it is and hopefully encourage more people to use lwIP, add a new NET menuconfig (but keep NO_NET as an alias to NET=n for now) which then allows us to replace all the "if legacy_stack || lwip_stack" checks with "if net_support" which is easier to read and maintain. The only doubt I have is wrt SYS_RX_ETH_BUFFER which seems to be needed for now even when no network is configured? Likely due to include/net-common.h with PKTBUFSRX? No change in behavior is intended. Only change in defconfig including other defconfigs where NO_NET=y or NET is not set, in which case NO_NET is not set or NET=y should be set in the top defconfig. Similar change required for config fragments. See commit log in patch adding NET menuconfig for details. This was tested based on 70fd0c3bb7c2 ("x86: there is no CONFIG_UBOOT_ROMSIZE_KB_12288"), from within the GitLab CI container trini/u-boot-gitlab-ci-runner:noble-20251013-23Jan2026 and set up similarly as in "build all platforms in a single job" GitLab CI job. #!/usr/bin/env bash set -o pipefail set -eux ARGS="-BvelPEWM --reproducible-builds --step 0" ./tools/buildman/buildman -o ${O} --force-build $ARGS -CE $* ./tools/buildman/buildman -o ${O} $ARGS -Ssd $* O=../build/u-boot/ ../u-boot.sh -b master^..b4/net-kconfig |& tee ../log.txt I can't really decipher the log.txt, but there's no line starting with + which would be an error according to tools/buildman/builder.py help text. Additionally, because I started the script with set -e set and because buildman has an exit code != 0 when it fails to build a board, and I have the summary printed (which is the second buildman call), I believe it means all builds passed. The summary is the following: aarch64: (for 537/537 boards) all +0.0 rodata +0.0 uniphier_v8 : all +1 rodata +1 u-boot: add: 0/0, grow: 1/0 bytes: 1/0 (1) function old new delta data_gz 10640 10641 +1 arm: (for 733/733 boards) all -0.0 rodata -0.0 uniphier_v7 : all -1 rodata -1 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-1 (-1) function old new delta data_gz 11919 11918 -1 opos6uldev : all -3 rodata -3 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3) function old new delta data_gz 18778 18775 -3 uniphier_ld4_sld8: all -3 rodata -3 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3) function old new delta data_gz 11276 11273 -3 stemmy : all -20 rodata -20 u-boot: add: 0/0, grow: 0/-1 bytes: 0/-20 (-20) function old new delta data_gz 15783 15763 -20 As far as I could tell this data_gz is an automatically generated array when CONFIG_CMD_CONFIG is enabled. It is the compressed .config stored in binary form. Because I'm changing the name of symbols, replacing a menu with a menuconfig, additional text makes it to .config and the "# Networking" section in .config disappears. Here is the diff for the 5 defconfigs listed above, generated with: for f in build/*-m; do diff --unified=0 $f/.config $(dirname $f)/$(basename -a -s '-m' $f)/.config done (-m is the build directory for master, and without the suffix, it's the top commit of this series) """ --- build/opos6uldev-m/.config 2026-04-20 10:53:49.804528526 +0200 +++ build/opos6uldev/.config 2026-04-20 11:03:37.430242767 +0200 @@ -970,4 +969,0 @@ - -# -# Networking -# @@ -975,0 +972 @@ +CONFIG_NET_LEGACY=y --- build/stemmy-m/.config 2026-04-20 11:01:33.653698123 +0200 +++ build/stemmy/.config 2026-04-20 11:04:53.452577311 +0200 @@ -733,4 +732,0 @@ - -# -# Networking -# @@ -738,2 +733,0 @@ -# CONFIG_NET is not set -# CONFIG_NET_LWIP is not set --- build/uniphier_ld4_sld8-m/.config 2026-04-20 11:00:41.605469071 +0200 +++ build/uniphier_ld4_sld8/.config 2026-04-20 11:04:22.226439899 +0200 @@ -997,4 +996,0 @@ - -# -# Networking -# @@ -1002,0 +999 @@ +CONFIG_NET_LEGACY=y --- build/uniphier_v7-m/.config 2026-04-20 10:53:04.019307319 +0200 +++ build/uniphier_v7/.config 2026-04-20 11:03:01.688085486 +0200 @@ -1004,4 +1003,0 @@ - -# -# Networking -# @@ -1009,0 +1006 @@ +CONFIG_NET_LEGACY=y --- build/uniphier_v8-m/.config 2026-04-20 10:43:05.614441175 +0200 +++ build/uniphier_v8/.config 2026-04-20 10:41:03.214852130 +0200 @@ -875,4 +874,0 @@ - -# -# Networking -# @@ -880,0 +877 @@ +CONFIG_NET_LEGACY=y """ This is fine: - Networking menu doesn't exist anymore so "#\n# Networking\n#\n" won't be in .config anymore. - opos6uldev, uniphier_ld4_sld8, uniphier_v7 and uniphier_v8 all have (old) CONFIG_NET enabled, (new) CONFIG_NET will still be set but CONFIG_NET_LEGACY also needs to be defined now to reflect the stack choice (even if default), - stemmy has CONFIG_NO_NET set, which means CONFIG_NET and CONFIG_NET_LWIP are not reachable anymore hence why they don't need to be part of .config, GitLab CI was run on this series (well, not exactly, but it's only changes to the git logs that were made): https://source.denx.de/u-boot/contributors/qschulz/u-boot/-/pipelines/29849 It passes. Link: https://lore.kernel.org/r/[email protected]
-rw-r--r--Kconfig34
-rw-r--r--Makefile4
-rw-r--r--arch/arm/mach-stm32mp/soc.c2
-rw-r--r--board/beacon/imx8mp/imx8mp_beacon.c2
-rw-r--r--board/engicam/imx8mp/icore_mx8mp.c2
-rw-r--r--board/gateworks/venice/venice.c4
-rw-r--r--board/nxp/ls1043ardb/Makefile2
-rw-r--r--board/nxp/ls1046afrwy/Makefile2
-rw-r--r--board/nxp/ls1046ardb/Makefile2
-rw-r--r--board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c2
-rw-r--r--board/siemens/iot2050/board.c2
-rw-r--r--board/sophgo/milkv_duo/Makefile2
-rw-r--r--board/sophgo/milkv_duo/board.c2
-rw-r--r--board/theadorable/theadorable.c4
-rw-r--r--board/ti/am335x/board.c2
-rw-r--r--board/toradex/verdin-imx8mp/verdin-imx8mp.c2
-rw-r--r--board/xilinx/common/board.c3
-rw-r--r--boot/Kconfig8
-rw-r--r--cmd/Kconfig12
-rw-r--r--cmd/Makefile2
-rw-r--r--cmd/bdinfo.c7
-rw-r--r--cmd/fastboot.c4
-rw-r--r--cmd/ufetch.c2
-rw-r--r--common/Kconfig2
-rw-r--r--common/board_r.c4
-rw-r--r--common/spl/Kconfig5
-rw-r--r--configs/am62px_evm_r5_ethboot_defconfig2
-rw-r--r--configs/j722s_evm_r5_ethboot_defconfig2
-rw-r--r--doc/develop/bootstd/overview.rst2
-rw-r--r--doc/develop/pytest/usage.rst4
-rw-r--r--doc/usage/cmd/bdinfo.rst7
-rw-r--r--doc/usage/cmd/sntp.rst2
-rw-r--r--doc/usage/cmd/wget.rst2
-rw-r--r--doc/usage/spl_boot.rst2
-rw-r--r--drivers/dfu/Kconfig2
-rw-r--r--drivers/fastboot/Kconfig4
-rw-r--r--drivers/fastboot/fb_common.c4
-rw-r--r--drivers/net/Kconfig6
-rw-r--r--drivers/net/phy/Kconfig4
-rw-r--r--drivers/net/sandbox.c2
-rw-r--r--drivers/usb/gadget/Kconfig2
-rw-r--r--env/flags.c10
-rw-r--r--include/configs/stm32mp15_common.h2
-rw-r--r--include/configs/stm32mp23_common.h2
-rw-r--r--include/configs/stm32mp25_common.h2
-rw-r--r--include/env_callback.h2
-rw-r--r--include/env_flags.h6
-rw-r--r--include/net-common.h4
-rw-r--r--include/net-legacy.h2
-rw-r--r--lib/Kconfig2
-rw-r--r--lib/efi_loader/Kconfig4
-rw-r--r--net/Kconfig45
-rw-r--r--net/Makefile6
-rw-r--r--test/cmd/Makefile2
-rw-r--r--test/cmd/bdinfo.c6
-rw-r--r--test/dm/eth.c6
-rw-r--r--test/py/tests/test_efi_fit.py2
-rw-r--r--test/py/tests/test_efi_loader.py2
-rw-r--r--test/py/tests/test_fpga.py4
-rw-r--r--test/py/tests/test_net.py2
60 files changed, 139 insertions, 138 deletions
diff --git a/Kconfig b/Kconfig
index d1a042a1165..8428d039a1c 100644
--- a/Kconfig
+++ b/Kconfig
@@ -803,42 +803,8 @@ source "dts/Kconfig"
source "env/Kconfig"
-menu "Networking"
-
-choice
- prompt "Networking stack"
- default NET
-
-config NO_NET
- bool "No networking support"
- help
- Do not include networking support
-
-config NET
- bool "Legacy U-Boot networking stack"
- select NETDEVICES
- help
- Include networking support with U-Boot's internal implementation of
- the TCP/IP protocol stack.
-
-config NET_LWIP
- bool "Use lwIP for networking stack"
- select NETDEVICES
- help
- Include networking support based on the lwIP (lightweight IP)
- TCP/IP stack (https://nongnu.org/lwip). This is a replacement for
- the default U-Boot network stack and applications located in net/
- and enabled via CONFIG_NET as well as other pieces of code that
- depend on CONFIG_NET (such as cmd/net.c enabled via CONFIG_CMD_NET).
- Therefore the two symbols CONFIG_NET and CONFIG_NET_LWIP are mutually
- exclusive.
-
-endchoice
-
source "net/Kconfig"
-endmenu
-
source "drivers/Kconfig"
source "fs/Kconfig"
diff --git a/Makefile b/Makefile
index e2b8e6a1915..8dcfef56207 100644
--- a/Makefile
+++ b/Makefile
@@ -1081,7 +1081,7 @@ libs-$(CONFIG_OF_EMBED) += dts/
libs-y += env/
libs-y += lib/
libs-y += fs/
-libs-$(filter y,$(CONFIG_NET) $(CONFIG_NET_LWIP)) += net/
+libs-$(CONFIG_NET) += net/
libs-y += disk/
libs-y += drivers/
libs-$(CONFIG_SYS_FSL_DDR) += drivers/ddr/fsl/
@@ -1373,7 +1373,7 @@ expect = $(foreach cfg,$(1),y)
# 1: List of options to migrate to (e.g. "CONFIG_DM_MMC CONFIG_BLK")
# 2: Name of component (e.g . "Ethernet drivers")
# 3: Release deadline (e.g. "v202.07")
-# 4: Condition to require before checking (e.g. "$(CONFIG_NET)")
+# 4: Condition to require before checking (e.g. "$(CONFIG_NET_LEGACY)")
# Note: Script avoids bash construct, hence the strange double 'if'
# (patches welcome!)
define deprecated
diff --git a/arch/arm/mach-stm32mp/soc.c b/arch/arm/mach-stm32mp/soc.c
index fa56b0d2e0f..67be55e3381 100644
--- a/arch/arm/mach-stm32mp/soc.c
+++ b/arch/arm/mach-stm32mp/soc.c
@@ -64,7 +64,7 @@ __weak int setup_mac_address(void)
struct udevice *dev;
int nb_eth, nb_otp, index;
- if (!IS_ENABLED(CONFIG_NET))
+ if (!IS_ENABLED(CONFIG_NET_LEGACY))
return 0;
nb_eth = get_eth_nb();
diff --git a/board/beacon/imx8mp/imx8mp_beacon.c b/board/beacon/imx8mp/imx8mp_beacon.c
index dd74e7c0f75..541a4b00eba 100644
--- a/board/beacon/imx8mp/imx8mp_beacon.c
+++ b/board/beacon/imx8mp/imx8mp_beacon.c
@@ -14,7 +14,7 @@ static void setup_fec(void)
setbits_le32(&gpr->gpr[1], BIT(22));
}
-#if IS_ENABLED(CONFIG_NET)
+#if IS_ENABLED(CONFIG_NET_LEGACY)
int board_phy_config(struct phy_device *phydev)
{
if (phydev->drv->config)
diff --git a/board/engicam/imx8mp/icore_mx8mp.c b/board/engicam/imx8mp/icore_mx8mp.c
index 864afa92aee..547cfa3a35f 100644
--- a/board/engicam/imx8mp/icore_mx8mp.c
+++ b/board/engicam/imx8mp/icore_mx8mp.c
@@ -30,7 +30,7 @@ static void setup_fec(void)
setbits_le32(&gpr->gpr[1], BIT(22));
}
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
int board_phy_config(struct phy_device *phydev)
{
if (phydev->drv->config)
diff --git a/board/gateworks/venice/venice.c b/board/gateworks/venice/venice.c
index 6a24f618ae2..aeb401b1210 100644
--- a/board/gateworks/venice/venice.c
+++ b/board/gateworks/venice/venice.c
@@ -47,7 +47,7 @@ int board_fit_config_name_match(const char *path)
return -1;
}
-#if (IS_ENABLED(CONFIG_NET))
+#if (IS_ENABLED(CONFIG_NET_LEGACY))
int board_phy_config(struct phy_device *phydev)
{
unsigned short val;
@@ -71,7 +71,7 @@ int board_phy_config(struct phy_device *phydev)
return 0;
}
-#endif // IS_ENABLED(CONFIG_NET)
+#endif // IS_ENABLED(CONFIG_NET_LEGACY)
int board_init(void)
{
diff --git a/board/nxp/ls1043ardb/Makefile b/board/nxp/ls1043ardb/Makefile
index 95745bf3a9c..3f651b41606 100644
--- a/board/nxp/ls1043ardb/Makefile
+++ b/board/nxp/ls1043ardb/Makefile
@@ -5,6 +5,6 @@
obj-y += ddr.o
obj-y += ls1043ardb.o
ifndef CONFIG_XPL_BUILD
-obj-$(CONFIG_NET) += eth.o
+obj-$(CONFIG_NET_LEGACY) += eth.o
obj-y += cpld.o
endif
diff --git a/board/nxp/ls1046afrwy/Makefile b/board/nxp/ls1046afrwy/Makefile
index c70f5cda797..8594658d2fb 100644
--- a/board/nxp/ls1046afrwy/Makefile
+++ b/board/nxp/ls1046afrwy/Makefile
@@ -4,4 +4,4 @@
obj-y += ddr.o
obj-y += ls1046afrwy.o
-obj-$(CONFIG_NET) += eth.o
+obj-$(CONFIG_NET_LEGACY) += eth.o
diff --git a/board/nxp/ls1046ardb/Makefile b/board/nxp/ls1046ardb/Makefile
index 9e5d24f53c8..355ccf59257 100644
--- a/board/nxp/ls1046ardb/Makefile
+++ b/board/nxp/ls1046ardb/Makefile
@@ -5,6 +5,6 @@
obj-y += ddr.o
obj-y += ls1046ardb.o
ifndef CONFIG_XPL_BUILD
-obj-$(CONFIG_NET) += eth.o
+obj-$(CONFIG_NET_LEGACY) += eth.o
obj-y += cpld.o
endif
diff --git a/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c b/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c
index 7f0925074fa..23d24140ca7 100644
--- a/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c
+++ b/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c
@@ -26,7 +26,7 @@ static void setup_fec(void)
setbits_le32(&gpr->gpr[1], BIT(22));
}
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
int board_phy_config(struct phy_device *phydev)
{
if (phydev->drv->config)
diff --git a/board/siemens/iot2050/board.c b/board/siemens/iot2050/board.c
index c75f4a0d084..79cf34b40eb 100644
--- a/board/siemens/iot2050/board.c
+++ b/board/siemens/iot2050/board.c
@@ -232,7 +232,7 @@ void set_board_info_env(void)
env_set("seboot_version", buf);
env_set("fw_version", PLAIN_VERSION);
- if (IS_ENABLED(CONFIG_NET)) {
+ if (IS_ENABLED(CONFIG_NET_LEGACY)) {
int mac_cnt;
mac_cnt = sysinfo_get_item_count(sysinfo, SYSID_BOARD_MAC_ADDR);
diff --git a/board/sophgo/milkv_duo/Makefile b/board/sophgo/milkv_duo/Makefile
index d0525eba853..18ada7d72ff 100644
--- a/board/sophgo/milkv_duo/Makefile
+++ b/board/sophgo/milkv_duo/Makefile
@@ -3,4 +3,4 @@
# Copyright (c) 2024, Kongyang Liu <[email protected]>
obj-y += board.o
-obj-$(CONFIG_NET) += ethernet.o
+obj-$(CONFIG_NET_LEGACY) += ethernet.o
diff --git a/board/sophgo/milkv_duo/board.c b/board/sophgo/milkv_duo/board.c
index 9adbb08f5ce..f0944859b58 100644
--- a/board/sophgo/milkv_duo/board.c
+++ b/board/sophgo/milkv_duo/board.c
@@ -12,7 +12,7 @@ int board_init(void)
if (IS_ENABLED(CONFIG_SYSRESET_CV1800B))
device_bind_driver(gd->dm_root, "cv1800b_sysreset", "sysreset", NULL);
- if (IS_ENABLED(CONFIG_NET))
+ if (IS_ENABLED(CONFIG_NET_LEGACY))
cv1800b_ephy_init();
return 0;
diff --git a/board/theadorable/theadorable.c b/board/theadorable/theadorable.c
index 2f5ad769b9b..e5c78e9c064 100644
--- a/board/theadorable/theadorable.c
+++ b/board/theadorable/theadorable.c
@@ -20,7 +20,7 @@
#include <asm/arch/soc.h>
#include <linux/delay.h>
#include <linux/mbus.h>
-#ifdef CONFIG_NET
+#ifdef CONFIG_NET_LEGACY
#include <netdev.h>
#endif
#include <u-boot/crc.h>
@@ -244,7 +244,7 @@ int checkboard(void)
return 0;
}
-#ifdef CONFIG_NET
+#ifdef CONFIG_NET_LEGACY
int board_eth_init(struct bd_info *bis)
{
cpu_eth_init(bis); /* Built in controller(s) come first */
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index 90e37a8d913..b5f69a45a7c 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -911,7 +911,7 @@ int board_late_init(void)
#endif
/* CPSW plat */
-#if (CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)) && \
+#if CONFIG_IS_ENABLED(NET) && \
!CONFIG_IS_ENABLED(OF_CONTROL)
struct cpsw_slave_data slave_data[] = {
{
diff --git a/board/toradex/verdin-imx8mp/verdin-imx8mp.c b/board/toradex/verdin-imx8mp/verdin-imx8mp.c
index 59b4607f065..69c3408fbba 100644
--- a/board/toradex/verdin-imx8mp/verdin-imx8mp.c
+++ b/board/toradex/verdin-imx8mp/verdin-imx8mp.c
@@ -46,7 +46,7 @@ static void setup_fec(void)
setbits_le32(&gpr->gpr[1], BIT(22));
}
-#if IS_ENABLED(CONFIG_NET)
+#if IS_ENABLED(CONFIG_NET_LEGACY)
int board_phy_config(struct phy_device *phydev)
{
if (phydev->drv->config)
diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c
index d022308f943..89562ef77fc 100644
--- a/board/xilinx/common/board.c
+++ b/board/xilinx/common/board.c
@@ -508,8 +508,7 @@ int board_late_init_xilinx(void)
ret |= env_set_by_index("uuid", id, uuid);
}
- if (!(CONFIG_IS_ENABLED(NET) ||
- CONFIG_IS_ENABLED(NET_LWIP)))
+ if (!CONFIG_IS_ENABLED(NET))
continue;
for (i = 0; i < EEPROM_HDR_NO_OF_MAC_ADDR; i++) {
diff --git a/boot/Kconfig b/boot/Kconfig
index be6bb6d4535..ae6f09a6ede 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -431,12 +431,12 @@ config BOOT_DEFAULTS_CMDS
select CMD_FAT
select CMD_FS_GENERIC
select CMD_PART if PARTITIONS
- select CMD_DHCP if CMD_NET && !NO_NET
- select CMD_PING if CMD_NET && !NO_NET
- select CMD_PXE if CMD_NET && !NO_NET
+ select CMD_DHCP if CMD_NET && NET
+ select CMD_PING if CMD_NET && NET
+ select CMD_PXE if CMD_NET && NET
select CMD_BOOTI if ARM64 && LMB
select CMD_BOOTZ if ARM && !ARM64 && LMB
- imply CMD_MII if CMD_NET && !NO_NET
+ imply CMD_MII if CMD_NET && NET
config BOOT_DEFAULTS
bool # Common defaults for standard boot and distroboot
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 3fd791f3e4b..c71c6824a19 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1954,7 +1954,7 @@ config CMD_XXD
endmenu
-if NET || NET_LWIP
+if NET
menuconfig CMD_NET
bool "Network commands"
@@ -1962,7 +1962,7 @@ menuconfig CMD_NET
if CMD_NET
-if NET
+if NET_LEGACY
config CMD_BOOTP
bool "bootp"
@@ -2206,12 +2206,12 @@ config CMD_WOL
help
Wait for wake-on-lan Magic Packet
-endif # if NET
+endif # if NET_LEGACY
config CMD_DHCP
bool "dhcp"
select PROT_DHCP_LWIP if NET_LWIP
- select CMD_BOOTP if NET
+ select CMD_BOOTP if NET_LEGACY
help
Boot image via network using DHCP/TFTP protocol
@@ -2267,7 +2267,7 @@ config CMD_PING
config CMD_SNTP
bool "sntp"
- select PROT_UDP if NET
+ select PROT_UDP if NET_LEGACY
select PROT_UDP_LWIP if NET_LWIP
help
Synchronize RTC via network
@@ -2337,7 +2337,7 @@ config CMD_PXE
endif # if CMD_NET
-endif # NET || NET_LWIP
+endif # NET
menu "Misc commands"
diff --git a/cmd/Makefile b/cmd/Makefile
index 6b69da1f2b0..bbbdfcc4ded 100644
--- a/cmd/Makefile
+++ b/cmd/Makefile
@@ -131,7 +131,7 @@ obj-y += legacy-mtd-utils.o
endif
obj-$(CONFIG_CMD_MUX) += mux.o
obj-$(CONFIG_CMD_NAND) += nand.o
-ifdef CONFIG_NET
+ifdef CONFIG_NET_LEGACY
obj-$(CONFIG_CMD_NET) += net.o net-common.o
else ifdef CONFIG_NET_LWIP
obj-$(CONFIG_CMD_NET) += net-common.o
diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
index dc7c2c3c853..ddf77303735 100644
--- a/cmd/bdinfo.c
+++ b/cmd/bdinfo.c
@@ -152,7 +152,7 @@ static int bdinfo_print_all(struct bd_info *bd)
bdinfo_print_num_l("relocaddr", gd->relocaddr);
bdinfo_print_num_l("reloc off", gd->reloc_off);
printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8);
- if (IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP))
+ if (IS_ENABLED(CONFIG_NET))
print_eth();
bdinfo_print_num_l("fdt_blob", (ulong)map_to_sysmem(gd->fdt_blob));
if (IS_ENABLED(CONFIG_VIDEO))
@@ -194,8 +194,7 @@ int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
case 'a':
return bdinfo_print_all(bd);
case 'e':
- if (!IS_ENABLED(CONFIG_NET) &&
- !IS_ENABLED(CONFIG_NET_LWIP))
+ if (!IS_ENABLED(CONFIG_NET))
return CMD_RET_USAGE;
print_eth();
return CMD_RET_SUCCESS;
@@ -221,7 +220,7 @@ U_BOOT_CMD(
" - print all Board Info structure"
#if CONFIG_IS_ENABLED(GETOPT)
"\n"
-#if IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP)
+#if IS_ENABLED(CONFIG_NET)
"bdinfo -e\n"
" - print Board Info related to network\n"
#endif
diff --git a/cmd/fastboot.c b/cmd/fastboot.c
index be84a482b81..e71f873527b 100644
--- a/cmd/fastboot.c
+++ b/cmd/fastboot.c
@@ -16,7 +16,7 @@
#include <linux/printk.h>
#include <linux/stringify.h>
-#if CONFIG_IS_ENABLED(NET)
+#if CONFIG_IS_ENABLED(NET_LEGACY)
static int do_fastboot_udp(int argc, char *const argv[],
uintptr_t buf_addr, size_t buf_size)
{
@@ -162,7 +162,7 @@ NXTARG:
fastboot_init((void *)buf_addr, buf_size);
-#if CONFIG_IS_ENABLED(NET)
+#if CONFIG_IS_ENABLED(NET_LEGACY)
if (!strcmp(argv[1], "udp"))
return do_fastboot_udp(argc, argv, buf_addr, buf_size);
if (!strcmp(argv[1], "tcp"))
diff --git a/cmd/ufetch.c b/cmd/ufetch.c
index bc5db08eee1..f8dc904bdd0 100644
--- a/cmd/ufetch.c
+++ b/cmd/ufetch.c
@@ -159,7 +159,7 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc,
break;
case FEATURES:
printf("Features:" RESET " ");
- if (IS_ENABLED(CONFIG_NET))
+ if (IS_ENABLED(CONFIG_NET_LEGACY))
printf("Net");
if (IS_ENABLED(CONFIG_EFI_LOADER))
printf(", EFI");
diff --git a/common/Kconfig b/common/Kconfig
index 2a167ec3ad3..8e8c733aa29 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -425,7 +425,7 @@ config LOGF_FUNC_PAD
config LOG_SYSLOG
bool "Log output to syslog server"
- depends on NET || NET_LWIP
+ depends on NET
help
Enables a log driver which broadcasts log records via UDP port 514
to syslog servers.
diff --git a/common/board_r.c b/common/board_r.c
index 5d37345ca09..ae686d18ae8 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -495,7 +495,7 @@ static int initr_boot_led_on(void)
return 0;
}
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
static int initr_net(void)
{
puts("Net: ");
@@ -760,7 +760,7 @@ static void initcall_run_r(void)
#if CONFIG_IS_ENABLED(PCI_ENDPOINT)
INITCALL(pci_ep_init);
#endif
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
WATCHDOG_RESET();
INITCALL(initr_net);
#endif
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index a21b71ad5d1..5fa94098e49 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -1151,7 +1151,7 @@ config SPL_DM_SPI_FLASH
config SPL_NET
bool "Support networking"
- depends on NET
+ depends on NET_LEGACY
select SPL_USE_TINY_PRINTF_POINTER_SUPPORT if SPL_USE_TINY_PRINTF
help
Enable support for network devices (such as Ethernet) in SPL.
@@ -1160,6 +1160,9 @@ config SPL_NET
the network stack uses a number of environment variables. See also
SPL_ETH.
+config SPL_NET_LEGACY
+ def_bool y if SPL_NET
+
config SPL_NET_VCI_STRING
string "BOOTP Vendor Class Identifier string sent by SPL"
depends on SPL_NET
diff --git a/configs/am62px_evm_r5_ethboot_defconfig b/configs/am62px_evm_r5_ethboot_defconfig
index dfd944ad7c0..df49324b25a 100644
--- a/configs/am62px_evm_r5_ethboot_defconfig
+++ b/configs/am62px_evm_r5_ethboot_defconfig
@@ -5,7 +5,7 @@ CONFIG_ARCH_K3=y
CONFIG_SOC_K3_AM62P5=y
CONFIG_TARGET_AM62P5_R5_EVM=y
CONFIG_DEFAULT_DEVICE_TREE="k3-am62p5-r5-sk"
-CONFIG_NET=y
+# CONFIG_NO_NET is not set
CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_DMA=y
CONFIG_SPL_ENV_SUPPORT=y
diff --git a/configs/j722s_evm_r5_ethboot_defconfig b/configs/j722s_evm_r5_ethboot_defconfig
index 68237f7d8c3..cc71f913d3c 100644
--- a/configs/j722s_evm_r5_ethboot_defconfig
+++ b/configs/j722s_evm_r5_ethboot_defconfig
@@ -5,7 +5,7 @@ CONFIG_ARCH_K3=y
CONFIG_SOC_K3_J722S=y
CONFIG_TARGET_J722S_R5_EVM=y
CONFIG_DEFAULT_DEVICE_TREE="k3-j722s-r5-evm"
-CONFIG_NET=y
+# CONFIG_NO_NET is not set
CONFIG_SPL_DRIVERS_MISC=y
CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_DMA=y
diff --git a/doc/develop/bootstd/overview.rst b/doc/develop/bootstd/overview.rst
index 397f6db18b4..99ff7d6192d 100644
--- a/doc/develop/bootstd/overview.rst
+++ b/doc/develop/bootstd/overview.rst
@@ -422,7 +422,7 @@ includes the full set of commands, more error messages when things go wrong and
bootmeth ordering with the bootmeths environment variable.
You should probably also enable `CONFIG_BOOTSTD_DEFAULTS`, which provides
-several filesystem and network features (if `CONFIG_NET` is enabled) so that
+several filesystem and network features (if `CONFIG_NET_LEGACY` is enabled) so that
a good selection of boot options is available.
Some devicetree properties are supported in the bootstd node when
diff --git a/doc/develop/pytest/usage.rst b/doc/develop/pytest/usage.rst
index e9296fd1f44..6002244d608 100644
--- a/doc/develop/pytest/usage.rst
+++ b/doc/develop/pytest/usage.rst
@@ -546,11 +546,11 @@ following annotation for a test requires ``CONFIG_EFI_LOADER=y``:
Sometimes multiple configuration option supply the same functionality. If
multiple arguments are passed to ``buildconfigspec()``, only one of the
configuration options needs to be set. The following annotation requires that
-either of ``CONFIG_NET`` or ``CONFIG_NET_LWIP`` is set:
+either of ``CONFIG_NET_LEGACY`` or ``CONFIG_NET_LWIP`` is set:
.. code-block:: python
- @pytest.mark.buildconfigspec('net', 'net_lwip')
+ @pytest.mark.buildconfigspec('net_legacy', 'net_lwip')
The ``notbuildconfigspec()`` annotation can be used to require a configuration
option not to be set. The following annotation requires ``CONFIG_RISCV=n``:
diff --git a/doc/usage/cmd/bdinfo.rst b/doc/usage/cmd/bdinfo.rst
index 46046e55e06..6226d14bd66 100644
--- a/doc/usage/cmd/bdinfo.rst
+++ b/doc/usage/cmd/bdinfo.rst
@@ -124,12 +124,12 @@ Build
current eth
name of the active network device
- Only shown if CONFIG_NET=y or CONFIG_NET_LWIP=y.
+ Only shown if CONFIG_NET=y.
IP addr
network address, value of the environment variable *ipaddr*
- Only shown if CONFIG_NET=y or CONFIG_NET_LWIP=y.
+ Only shown if CONFIG_NET=y.
fdt_blob
address of U-Boot's own device tree, NULL if none
@@ -173,5 +173,4 @@ The bdinfo command is available if CONFIG_CMD_BDI=y.
The options to bdinfo are only available if CONFIG_GETOPT=y.
-The ``-e`` option is additionally only available if CONFIG_NET=y or
-CONFIG_NET_LWIP=y.
+The ``-e`` option is additionally only available if CONFIG_NET=y.
diff --git a/doc/usage/cmd/sntp.rst b/doc/usage/cmd/sntp.rst
index 2046828130d..433884f18b2 100644
--- a/doc/usage/cmd/sntp.rst
+++ b/doc/usage/cmd/sntp.rst
@@ -24,7 +24,7 @@ the server's IP address to be given on the command line or via the
`ntpserverip` environment variable.
The address of the NTP server does not need to be given if the DHCP server
-provides one. The legacy network stack (`CONFIG_NET=y`) can only use the
+provides one. The legacy network stack (`CONFIG_NET_LEGACY=y`) can only use the
first NTP server provided in the `ntp-servers` DHCP option.
When the network stack is lwIP (`CONFIG_NET_LWIP=y`) and DNS resolution
diff --git a/doc/usage/cmd/wget.rst b/doc/usage/cmd/wget.rst
index e6c42f967b9..f661d739a19 100644
--- a/doc/usage/cmd/wget.rst
+++ b/doc/usage/cmd/wget.rst
@@ -26,7 +26,7 @@ In order to use HTTPS you will need to compile wget with lwIP support.
Legacy syntax
~~~~~~~~~~~~~
-The legacy syntax is supported by the legacy network stack (CONFIG_NET=y)
+The legacy syntax is supported by the legacy network stack (CONFIG_NET_LEGACY=y)
as well as by the lwIP base network stack (CONFIG_NET_LWIP=y). It supports HTTP
only.
diff --git a/doc/usage/spl_boot.rst b/doc/usage/spl_boot.rst
index 93419f158af..64b8083e007 100644
--- a/doc/usage/spl_boot.rst
+++ b/doc/usage/spl_boot.rst
@@ -253,7 +253,7 @@ Ethernet
a TFTP server and binary name. The binary is downloaded via the TFTP
protocol. Required configuration settings include:
- * CONFIG_SPL_NET=y or CONFIG_TPL_NET=y
+ * CONFIG_SPL_NET=y
* CONFIG_SPL_ETH_DEVICE=y or CONFIG_DM_USB_GADGET=y
diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig
index 962bda40ad2..eeae2fd65ad 100644
--- a/drivers/dfu/Kconfig
+++ b/drivers/dfu/Kconfig
@@ -11,7 +11,7 @@ config DFU_OVER_USB
config DFU_OVER_TFTP
bool
- depends on NET
+ depends on NET_LEGACY
config DFU_WRITE_ALT
bool
diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig
index 576c3ef8a45..90212fcf9ef 100644
--- a/drivers/fastboot/Kconfig
+++ b/drivers/fastboot/Kconfig
@@ -27,7 +27,7 @@ config USB_FUNCTION_FASTBOOT
This enables the USB part of the fastboot gadget.
config UDP_FUNCTION_FASTBOOT
- depends on NET
+ depends on NET_LEGACY
select FASTBOOT
bool "Enable fastboot protocol over UDP"
help
@@ -41,7 +41,7 @@ config UDP_FUNCTION_FASTBOOT_PORT
The fastboot protocol requires a UDP port number.
config TCP_FUNCTION_FASTBOOT
- depends on NET
+ depends on NET_LEGACY
select FASTBOOT
bool "Enable fastboot protocol over TCP"
help
diff --git a/drivers/fastboot/fb_common.c b/drivers/fastboot/fb_common.c
index dac5528f809..9c52e004588 100644
--- a/drivers/fastboot/fb_common.c
+++ b/drivers/fastboot/fb_common.c
@@ -191,13 +191,13 @@ void fastboot_handle_boot(int command, bool success)
switch (command) {
case FASTBOOT_COMMAND_BOOT:
fastboot_boot();
-#if CONFIG_IS_ENABLED(NET)
+#if CONFIG_IS_ENABLED(NET_LEGACY)
net_set_state(NETLOOP_SUCCESS);
#endif
break;
case FASTBOOT_COMMAND_CONTINUE:
-#if CONFIG_IS_ENABLED(NET)
+#if CONFIG_IS_ENABLED(NET_LEGACY)
net_set_state(NETLOOP_SUCCESS);
#endif
break;
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index ed07e286676..666618681df 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -339,7 +339,7 @@ config ESSEDMA
config ETH_SANDBOX
depends on SANDBOX
- depends on NET || NET_LWIP
+ depends on NET
default y
bool "Sandbox: Mocked Ethernet driver"
help
@@ -350,7 +350,7 @@ config ETH_SANDBOX
config ETH_SANDBOX_RAW
depends on SANDBOX
- depends on NET
+ depends on NET_LEGACY
default y
bool "Sandbox: Bridge to Linux Raw Sockets"
help
@@ -476,7 +476,7 @@ config FTMAC100
config FTGMAC100
bool "Ftgmac100 Ethernet Support"
select PHYLIB
- depends on NET
+ depends on NET_LEGACY
help
This driver supports the Faraday's FTGMAC100 Gigabit SoC
Ethernet controller that can be found on Aspeed SoCs (which
diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index 5d2277a4602..0025c895f12 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -7,7 +7,7 @@ config MV88E6352_SWITCH
menuconfig PHYLIB
bool "Ethernet PHY (physical media interface) support"
- depends on NET || NET_LWIP
+ depends on NET
help
Enable Ethernet PHY (physical media interface) support.
@@ -381,7 +381,7 @@ config PHY_FIXED
config PHY_NCSI
bool "NC-SI based PHY"
- depends on NET
+ depends on NET_LEGACY
endif #PHYLIB
diff --git a/drivers/net/sandbox.c b/drivers/net/sandbox.c
index 0ea50c484c0..e1daeb6c1e6 100644
--- a/drivers/net/sandbox.c
+++ b/drivers/net/sandbox.c
@@ -15,7 +15,7 @@
/*
* Structure definitions for network protocols. Since this file is used for
- * both NET and NET_LWIP, and given that the two network stacks do have
+ * both NET_LEGACY and NET_LWIP, and given that the two network stacks do have
* conflicting types (for instance struct icmp_hdr), it is on purpose that the
* structures are defined locally with minimal dependencies -- <asm/types.h> is
* included for the bit types and that's it.
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index baa2eb61ea3..18582962249 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -232,7 +232,7 @@ endif # USB_GADGET_DOWNLOAD
config USB_ETHER
bool "USB Ethernet Gadget"
- depends on NET || NET_LWIP
+ depends on NET
default y if ARCH_SUNXI && USB_MUSB_GADGET
help
Creates an Ethernet network device through a USB peripheral
diff --git a/env/flags.c b/env/flags.c
index f734fda50c2..f1966bc91b4 100644
--- a/env/flags.c
+++ b/env/flags.c
@@ -22,7 +22,7 @@
#include <env_internal.h>
#endif
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
#define ENV_FLAGS_NET_VARTYPE_REPS "im"
#else
#define ENV_FLAGS_NET_VARTYPE_REPS ""
@@ -57,7 +57,7 @@ static const char * const env_flags_vartype_names[] = {
"decimal",
"hexadecimal",
"boolean",
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
"IP address",
"MAC address",
#endif
@@ -211,7 +211,7 @@ static void skip_num(int hex, const char *value, const char **end,
*end = value;
}
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
int eth_validate_ethaddr_str(const char *addr)
{
const char *end;
@@ -244,7 +244,7 @@ static int _env_flags_validate_type(const char *value,
enum env_flags_vartype type)
{
const char *end;
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
const char *cur;
int i;
#endif
@@ -273,7 +273,7 @@ static int _env_flags_validate_type(const char *value,
if (value[1] != '\0')
return -1;
break;
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
case env_flags_vartype_ipaddr:
cur = value;
for (i = 0; i < 4; i++) {
diff --git a/include/configs/stm32mp15_common.h b/include/configs/stm32mp15_common.h
index 9cac31bcf47..9a87b479176 100644
--- a/include/configs/stm32mp15_common.h
+++ b/include/configs/stm32mp15_common.h
@@ -41,7 +41,7 @@
#define BOOT_TARGET_MMC2(func)
#endif
-#ifdef CONFIG_NET
+#ifdef CONFIG_NET_LEGACY
#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
#else
#define BOOT_TARGET_PXE(func)
diff --git a/include/configs/stm32mp23_common.h b/include/configs/stm32mp23_common.h
index 7285886b822..392d779ec16 100644
--- a/include/configs/stm32mp23_common.h
+++ b/include/configs/stm32mp23_common.h
@@ -29,7 +29,7 @@
#ifdef CONFIG_DISTRO_DEFAULTS
/*****************************************************************************/
-#ifdef CONFIG_NET
+#ifdef CONFIG_NET_LEGACY
#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
#else
#define BOOT_TARGET_PXE(func)
diff --git a/include/configs/stm32mp25_common.h b/include/configs/stm32mp25_common.h
index b42316fd8ac..a334b47b555 100644
--- a/include/configs/stm32mp25_common.h
+++ b/include/configs/stm32mp25_common.h
@@ -25,7 +25,7 @@
#ifdef CONFIG_DISTRO_DEFAULTS
/*****************************************************************************/
-#ifdef CONFIG_NET
+#ifdef CONFIG_NET_LEGACY
#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
#else
#define BOOT_TARGET_PXE(func)
diff --git a/include/env_callback.h b/include/env_callback.h
index 918ccb3b14f..1181ab4a157 100644
--- a/include/env_callback.h
+++ b/include/env_callback.h
@@ -32,7 +32,7 @@
#define DNS_CALLBACK
#endif
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
#define NET_CALLBACKS \
"bootfile:bootfile," \
"ipaddr:ipaddr," \
diff --git a/include/env_flags.h b/include/env_flags.h
index 0c48874690f..123fdbcb0ba 100644
--- a/include/env_flags.h
+++ b/include/env_flags.h
@@ -14,7 +14,7 @@ enum env_flags_vartype {
env_flags_vartype_decimal,
env_flags_vartype_hex,
env_flags_vartype_bool,
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
env_flags_vartype_ipaddr,
env_flags_vartype_macaddr,
#endif
@@ -41,7 +41,7 @@ enum env_flags_varaccess {
#define CFG_ENV_FLAGS_LIST_STATIC ""
#endif
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
#ifdef CONFIG_REGEX
#define ETHADDR_WILDCARD "\\d*"
#else
@@ -123,7 +123,7 @@ enum env_flags_varaccess env_flags_parse_varaccess(const char *flags);
*/
enum env_flags_varaccess env_flags_parse_varaccess_from_binflags(int binflags);
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
/*
* Check if a string has the format of an Ethernet MAC address
*/
diff --git a/include/net-common.h b/include/net-common.h
index f293b21bc0b..69b6316c1ec 100644
--- a/include/net-common.h
+++ b/include/net-common.h
@@ -235,7 +235,7 @@ int eth_rx(void); /* Check for received packets */
*/
void reset_phy(void);
-#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
/**
* eth_set_enable_bootdevs() - Enable or disable binding of Ethernet bootdevs
*
@@ -485,7 +485,7 @@ int net_init(void);
/* Called when a network operation fails to know if it should be re-tried */
int net_start_again(void);
-/* NET compatibility */
+/* NET_LEGACY compatibility */
enum proto_t;
int net_loop(enum proto_t protocol);
diff --git a/include/net-legacy.h b/include/net-legacy.h
index d489c2480cd..d3b122c9062 100644
--- a/include/net-legacy.h
+++ b/include/net-legacy.h
@@ -281,7 +281,7 @@ extern struct in_addr net_dns_server2;
#endif
extern char net_nis_domain[32]; /* Our IS domain */
extern char net_hostname[32]; /* Our hostname */
-#ifdef CONFIG_NET
+#ifdef CONFIG_NET_LEGACY
extern char net_root_path[CONFIG_BOOTP_MAX_ROOT_PATH_LEN]; /* Our root path */
#endif
/** END OF BOOTP EXTENTIONS **/
diff --git a/lib/Kconfig b/lib/Kconfig
index 0950b80ede5..77ebc79e1db 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -285,7 +285,7 @@ config PANIC_HANG
config REGEX
bool "Enable regular expression support"
- default y if NET
+ default y if NET_LEGACY
help
If this variable is defined, U-Boot is linked against the
SLRE (Super Light Regular Expression) library, which adds
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index 48c62999787..0b6c2eaac60 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -516,7 +516,7 @@ config EFI_RISCV_BOOT_PROTOCOL
config EFI_IP4_CONFIG2_PROTOCOL
bool "EFI_IP4_CONFIG2_PROTOCOL support"
default y if ARCH_QEMU || SANDBOX
- depends on NET || NET_LWIP
+ depends on NET
help
Provides an implementation of the EFI_IP4_CONFIG2_PROTOCOL, this
protocol can be used to set and get the current ip address and
@@ -609,7 +609,7 @@ config EFI_BOOTMGR
config EFI_HTTP_BOOT
bool "EFI HTTP Boot support"
- depends on NET || NET_LWIP
+ depends on NET
select CMD_NET
select CMD_DHCP
select CMD_DNS
diff --git a/net/Kconfig b/net/Kconfig
index e45ceb25106..e712a0dd2ac 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -2,8 +2,45 @@
# Network configuration
#
+config NO_NET
+ bool "Disable networking"
+ help
+ Transitional variable. Equivalent to setting NET=n.
+
+menuconfig NET
+ bool "Networking"
+ depends on !NO_NET
+ default y
+
if NET
+choice
+ prompt "Networking stack"
+ default NET_LEGACY
+
+config NET_LEGACY
+ bool "Legacy U-Boot networking stack"
+ select NETDEVICES
+ help
+ Include networking support with U-Boot's internal implementation of
+ the TCP/IP protocol stack.
+
+config NET_LWIP
+ bool "Use lwIP for networking stack"
+ select NETDEVICES
+ help
+ Include networking support based on the lwIP (lightweight IP)
+ TCP/IP stack (https://nongnu.org/lwip). This is a replacement for
+ the default U-Boot network stack and applications located in net/
+ and enabled via CONFIG_NET_LEGACY as well as other pieces of code that
+ depend on CONFIG_NET_LEGACY (such as cmd/net.c enabled via CONFIG_CMD_NET).
+ Therefore the two symbols CONFIG_NET_LEGACY and CONFIG_NET_LWIP are mutually
+ exclusive.
+
+endchoice
+
+if NET_LEGACY
+
config ARP_TIMEOUT
int "Milliseconds before trying ARP again"
default 5000
@@ -195,12 +232,10 @@ config IPV6
ip6addr, serverip6. If a u-boot command is capable to parse an IPv6
address and find it, it will force using IPv6 in the network stack.
-endif # if NET
+endif # if NET_LEGACY
source "net/lwip/Kconfig"
-if NET || NET_LWIP
-
config BOOTDEV_ETH
bool "Enable bootdev for ethernet"
depends on BOOTSTD
@@ -228,7 +263,7 @@ config DNS
config WGET
bool "Enable wget"
- select PROT_TCP if NET
+ select PROT_TCP if NET_LEGACY
select PROT_TCP_LWIP if NET_LWIP
help
Selecting this will enable wget, an interface to send HTTP requests
@@ -244,7 +279,7 @@ config TFTP_BLOCKSIZE
almost-MTU block sizes.
You can also activate CONFIG_IP_DEFRAG to set a larger block.
-endif # if NET || NET_LWIP
+endif # if NET
config SYS_RX_ETH_BUFFER
int "Number of receive packet buffers"
diff --git a/net/Makefile b/net/Makefile
index 3a32bc8b0e7..ceac6de6377 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -5,9 +5,9 @@
#ccflags-y += -DDEBUG
-ifeq ($(CONFIG_NET),y)
+ifeq ($(CONFIG_NET_LEGACY),y)
-obj-$(CONFIG_NET) += arp.o
+obj-$(CONFIG_NET_LEGACY) += arp.o
obj-$(CONFIG_CMD_BOOTP) += bootp.o
obj-$(CONFIG_CMD_CDP) += cdp.o
obj-$(CONFIG_DNS) += dns.o
@@ -37,7 +37,7 @@ CFLAGS_eth_common.o += -Wno-format-extra-args
endif
-ifeq ($(filter y,$(CONFIG_NET) $(CONFIG_NET_LWIP)),y)
+ifeq ($(CONFIG_NET),y)
obj-$(CONFIG_DM_DSA) += dsa-uclass.o
obj-$(CONFIG_$(PHASE_)DM_ETH) += eth-uclass.o
obj-$(CONFIG_$(PHASE_)BOOTDEV_ETH) += eth_bootdev.o
diff --git a/test/cmd/Makefile b/test/cmd/Makefile
index 8c9f112782d..5f2815b1bb6 100644
--- a/test/cmd/Makefile
+++ b/test/cmd/Makefile
@@ -39,7 +39,7 @@ obj-$(CONFIG_CMD_PWM) += pwm.o
obj-$(CONFIG_CMD_READ) += rw.o
obj-$(CONFIG_CMD_SETEXPR) += setexpr.o
obj-$(CONFIG_CMD_TEMPERATURE) += temperature.o
-ifdef CONFIG_NET
+ifdef CONFIG_NET_LEGACY
obj-$(CONFIG_CMD_WGET) += wget.o
endif
obj-$(CONFIG_ARM_FFA_TRANSPORT) += armffa.o
diff --git a/test/cmd/bdinfo.c b/test/cmd/bdinfo.c
index c3a3519d16d..7f4f1868c6a 100644
--- a/test/cmd/bdinfo.c
+++ b/test/cmd/bdinfo.c
@@ -172,7 +172,7 @@ static int bdinfo_test_all(struct unit_test_state *uts)
ut_assertok(test_num_l(uts, "reloc off", gd->reloc_off));
ut_assert_nextline("%-12s= %u-bit", "Build", (uint)sizeof(void *) * 8);
- if (IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP))
+ if (IS_ENABLED(CONFIG_NET))
ut_assertok(test_eth(uts));
/*
@@ -314,7 +314,7 @@ static int bdinfo_test_help(struct unit_test_state *uts)
ut_assert_nextlinen("bdinfo -a");
ut_assert_nextlinen(" - print all Board Info structure");
if (CONFIG_IS_ENABLED(GETOPT)) {
- if (IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP)) {
+ if (IS_ENABLED(CONFIG_NET)) {
ut_assert_nextlinen("bdinfo -e");
ut_assert_nextlinen(" - print Board Info related to network");
}
@@ -348,7 +348,7 @@ static int bdinfo_test_eth(struct unit_test_state *uts)
ut_assertok(run_commandf("bdinfo -e"));
if (!CONFIG_IS_ENABLED(GETOPT))
ut_assertok(bdinfo_test_all(uts));
- else if (IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP))
+ else if (IS_ENABLED(CONFIG_NET))
ut_assertok(test_eth(uts));
ut_assert_console_end();
diff --git a/test/dm/eth.c b/test/dm/eth.c
index 1087ae9572d..ed0b57d8861 100644
--- a/test/dm/eth.c
+++ b/test/dm/eth.c
@@ -449,7 +449,7 @@ static int dm_test_net_retry(struct unit_test_state *uts)
}
DM_TEST(dm_test_net_retry, UTF_SCAN_FDT);
-#if CONFIG_IS_ENABLED(NET)
+#if CONFIG_IS_ENABLED(NET_LEGACY)
static int sb_check_arp_reply(struct udevice *dev, void *packet,
unsigned int len)
{
@@ -517,7 +517,7 @@ static int sb_with_async_arp_handler(struct udevice *dev, void *packet,
}
#endif
-#if CONFIG_IS_ENABLED(NET)
+#if CONFIG_IS_ENABLED(NET_LEGACY)
static int dm_test_eth_async_arp_reply(struct unit_test_state *uts)
{
net_ping_ip = string_to_ip("1.1.2.2");
@@ -537,7 +537,7 @@ static int dm_test_eth_async_arp_reply(struct unit_test_state *uts)
DM_TEST(dm_test_eth_async_arp_reply, UTF_SCAN_FDT);
#endif
-#if CONFIG_IS_ENABLED(NET)
+#if CONFIG_IS_ENABLED(NET_LEGACY)
static int sb_check_ping_reply(struct udevice *dev, void *packet,
unsigned int len)
{
diff --git a/test/py/tests/test_efi_fit.py b/test/py/tests/test_efi_fit.py
index 63ee8e6cef2..409cfdfd56f 100644
--- a/test/py/tests/test_efi_fit.py
+++ b/test/py/tests/test_efi_fit.py
@@ -225,7 +225,7 @@ def test_efi_fit_launch(ubman):
has_dhcp = ubman.config.buildconfig.get('config_cmd_dhcp', 'n') == 'y'
if not has_dhcp:
- ubman.log.warning('CONFIG_NET != y: Skipping static network setup')
+ ubman.log.warning('CONFIG_NET_LEGACY != y: Skipping static network setup')
return False
env_vars = ubman.config.env.get('env__net_static_env_vars', None)
diff --git a/test/py/tests/test_efi_loader.py b/test/py/tests/test_efi_loader.py
index dc58c0d4dbd..91f151d09cd 100644
--- a/test/py/tests/test_efi_loader.py
+++ b/test/py/tests/test_efi_loader.py
@@ -98,7 +98,7 @@ def test_efi_setup_dhcp(ubman):
global net_set_up
net_set_up = True
[email protected]('net', 'net_lwip')
def test_efi_setup_static(ubman):
"""Set up the network using a static IP configuration.
diff --git a/test/py/tests/test_fpga.py b/test/py/tests/test_fpga.py
index 299a8653f74..74cd42b910e 100644
--- a/test/py/tests/test_fpga.py
+++ b/test/py/tests/test_fpga.py
@@ -506,7 +506,7 @@ def test_fpga_loadfs(ubman):
@pytest.mark.buildconfigspec('cmd_fpga_load_secure')
@pytest.mark.buildconfigspec('cmd_net')
@pytest.mark.buildconfigspec('cmd_dhcp')
[email protected]('net', 'net_lwip')
def test_fpga_secure_bit_auth(ubman):
test_net.test_net_dhcp(ubman)
@@ -534,7 +534,7 @@ def test_fpga_secure_bit_auth(ubman):
@pytest.mark.buildconfigspec('cmd_fpga_load_secure')
@pytest.mark.buildconfigspec('cmd_net')
@pytest.mark.buildconfigspec('cmd_dhcp')
[email protected]('net', 'net_lwip')
def test_fpga_secure_bit_img_auth_kup(ubman):
test_net.test_net_dhcp(ubman)
diff --git a/test/py/tests/test_net.py b/test/py/tests/test_net.py
index 6ef02e53389..27cdd73fd49 100644
--- a/test/py/tests/test_net.py
+++ b/test/py/tests/test_net.py
@@ -201,7 +201,7 @@ def test_net_dhcp6(ubman):
global net6_set_up
net6_set_up = True
[email protected]('net', 'net_lwip')
def test_net_setup_static(ubman):
"""Set up a static IP configuration.