* [PATCH 0/6] net: migrate NO_NET out of the networking stack choice
@ 2026-04-20 11:36 Quentin Schulz
2026-04-20 11:36 ` [PATCH 1/6] move networking menu in net/Kconfig Quentin Schulz
` (6 more replies)
0 siblings, 7 replies; 22+ messages in thread
From: Quentin Schulz @ 2026-04-20 11:36 UTC (permalink / raw)
To: u-boot, uboot-stm32, Paul Barker
Cc: Tom Rini, Jerome Forissier, Heinrich Schuchardt, Marek Vasut,
Ilias Apalodimas, Peng Fan, Udit Kumar, Alvin Šipraga,
Patrick Delaunay, Patrice Chotard, Adam Ford, Manoj Sai,
Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar, Gilles Talis,
Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese, Francesco Dolcini,
Michal Simek, Mattijs Korpershoek, Casey Connolly,
Vignesh Raghavendra, Bryan Brattlof, Vaishnav Achath,
Jayesh Choudhary, Simon Glass, Lukasz Majewski, Marek Vasut,
Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo, Sam Protsenko,
Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
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.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
Quentin Schulz (6):
move networking menu in net/Kconfig
rename NET to NET_LEGACY
net: make NET a menuconfig (and downgrade NO_NET to a simple config)
simplify NET_LEGACY || NET_LWIP condition with NET condition
doc: remove mention to non-existing TPL_NET
boot: remove NO_NET use
Kconfig | 34 ----------------
Makefile | 4 +-
arch/arm/mach-stm32mp/soc.c | 2 +-
board/beacon/imx8mp/imx8mp_beacon.c | 2 +-
board/engicam/imx8mp/icore_mx8mp.c | 2 +-
board/gateworks/venice/venice.c | 4 +-
board/nxp/ls1043ardb/Makefile | 2 +-
board/nxp/ls1046afrwy/Makefile | 2 +-
board/nxp/ls1046ardb/Makefile | 2 +-
.../imx8mp_debix_model_a/imx8mp_debix_model_a.c | 2 +-
board/siemens/iot2050/board.c | 2 +-
board/sophgo/milkv_duo/Makefile | 2 +-
board/sophgo/milkv_duo/board.c | 2 +-
board/theadorable/theadorable.c | 4 +-
board/ti/am335x/board.c | 2 +-
board/toradex/verdin-imx8mp/verdin-imx8mp.c | 2 +-
board/xilinx/common/board.c | 3 +-
boot/Kconfig | 8 ++--
cmd/Kconfig | 12 +++---
cmd/Makefile | 2 +-
cmd/bdinfo.c | 7 ++--
cmd/fastboot.c | 4 +-
cmd/ufetch.c | 2 +-
common/Kconfig | 2 +-
common/board_r.c | 4 +-
common/spl/Kconfig | 5 ++-
configs/am62px_evm_r5_ethboot_defconfig | 2 +-
configs/j722s_evm_r5_ethboot_defconfig | 2 +-
doc/develop/bootstd/overview.rst | 2 +-
doc/develop/pytest/usage.rst | 4 +-
doc/usage/cmd/bdinfo.rst | 7 ++--
doc/usage/cmd/sntp.rst | 2 +-
doc/usage/cmd/wget.rst | 2 +-
doc/usage/spl_boot.rst | 2 +-
drivers/dfu/Kconfig | 2 +-
drivers/fastboot/Kconfig | 4 +-
drivers/fastboot/fb_common.c | 4 +-
drivers/net/Kconfig | 6 +--
drivers/net/phy/Kconfig | 4 +-
drivers/net/sandbox.c | 2 +-
drivers/usb/gadget/Kconfig | 2 +-
env/flags.c | 10 ++---
include/configs/stm32mp15_common.h | 2 +-
include/configs/stm32mp23_common.h | 2 +-
include/configs/stm32mp25_common.h | 2 +-
include/env_callback.h | 2 +-
include/env_flags.h | 6 +--
include/net-common.h | 4 +-
include/net-legacy.h | 2 +-
lib/Kconfig | 2 +-
lib/efi_loader/Kconfig | 4 +-
net/Kconfig | 45 +++++++++++++++++++---
net/Makefile | 6 +--
test/cmd/Makefile | 2 +-
test/cmd/bdinfo.c | 6 +--
test/dm/eth.c | 6 +--
test/py/tests/test_efi_fit.py | 2 +-
test/py/tests/test_efi_loader.py | 2 +-
test/py/tests/test_fpga.py | 4 +-
test/py/tests/test_net.py | 2 +-
60 files changed, 139 insertions(+), 138 deletions(-)
---
base-commit: 70fd0c3bb7c26d42f24d10145dd5f3168ac92eac
change-id: 20251216-net-kconfig-0f63d9de716b
Best regards,
--
Quentin Schulz <quentin.schulz@cherry.de>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 1/6] move networking menu in net/Kconfig
2026-04-20 11:36 [PATCH 0/6] net: migrate NO_NET out of the networking stack choice Quentin Schulz
@ 2026-04-20 11:36 ` Quentin Schulz
2026-04-20 19:40 ` Simon Glass
2026-04-21 5:17 ` Ilias Apalodimas
2026-04-20 11:36 ` [PATCH 2/6] rename NET to NET_LEGACY Quentin Schulz
` (5 subsequent siblings)
6 siblings, 2 replies; 22+ messages in thread
From: Quentin Schulz @ 2026-04-20 11:36 UTC (permalink / raw)
To: u-boot, uboot-stm32, Paul Barker
Cc: Tom Rini, Jerome Forissier, Heinrich Schuchardt, Marek Vasut,
Ilias Apalodimas, Peng Fan, Udit Kumar, Alvin Šipraga,
Patrick Delaunay, Patrice Chotard, Adam Ford, Manoj Sai,
Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar, Gilles Talis,
Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese, Francesco Dolcini,
Michal Simek, Mattijs Korpershoek, Casey Connolly,
Vignesh Raghavendra, Bryan Brattlof, Vaishnav Achath,
Jayesh Choudhary, Simon Glass, Lukasz Majewski, Marek Vasut,
Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo, Sam Protsenko,
Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
In the main Kconfig, there are only two more menus, General Setup and
Expert, in addition to the net menu. Since the part in the main Kconfig
is mostly about selecting the network stack (legacy or lwIP), and that
we already have a net/Kconfig, let's move those to net/Kconfig to have
everything in the same place.
No intended change in behavior.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
Kconfig | 34 ----------------------------------
net/Kconfig | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 34 deletions(-)
diff --git a/Kconfig b/Kconfig
index 7f00e76ba78..1fa31a4f5a8 100644
--- a/Kconfig
+++ b/Kconfig
@@ -791,42 +791,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/net/Kconfig b/net/Kconfig
index e45ceb25106..249c27c115d 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -2,6 +2,38 @@
# Network configuration
#
+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
+
if NET
config ARP_TIMEOUT
@@ -254,3 +286,5 @@ config SYS_RX_ETH_BUFFER
controllers it is recommended to set this value to 8 or even higher,
since all buffers can be full shortly after enabling the interface on
high Ethernet traffic.
+
+endmenu
--
2.53.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 2/6] rename NET to NET_LEGACY
2026-04-20 11:36 [PATCH 0/6] net: migrate NO_NET out of the networking stack choice Quentin Schulz
2026-04-20 11:36 ` [PATCH 1/6] move networking menu in net/Kconfig Quentin Schulz
@ 2026-04-20 11:36 ` Quentin Schulz
2026-04-20 19:42 ` Simon Glass
2026-04-21 5:17 ` Ilias Apalodimas
2026-04-20 11:36 ` [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config) Quentin Schulz
` (4 subsequent siblings)
6 siblings, 2 replies; 22+ messages in thread
From: Quentin Schulz @ 2026-04-20 11:36 UTC (permalink / raw)
To: u-boot, uboot-stm32, Paul Barker
Cc: Tom Rini, Jerome Forissier, Heinrich Schuchardt, Marek Vasut,
Ilias Apalodimas, Peng Fan, Udit Kumar, Alvin Šipraga,
Patrick Delaunay, Patrice Chotard, Adam Ford, Manoj Sai,
Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar, Gilles Talis,
Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese, Francesco Dolcini,
Michal Simek, Mattijs Korpershoek, Casey Connolly,
Vignesh Raghavendra, Bryan Brattlof, Vaishnav Achath,
Jayesh Choudhary, Simon Glass, Lukasz Majewski, Marek Vasut,
Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo, Sam Protsenko,
Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
Highlight that NET really is the legacy networking stack by renaming the
option to NET_LEGACY.
This requires us to add an SPL_NET_LEGACY alias to SPL_NET as otherwise
CONFIG_IS_ENABLED(NET_LEGACY) will not work for SPL.
The "depends on !NET_LWIP" for SPL_NET clearly highlights that it is
using the legacy networking app so this seems fine to do.
This also has the benefit of removing potential confusion on NET being a
specific networking stack instead of "any" network stack.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
Makefile | 4 ++--
arch/arm/mach-stm32mp/soc.c | 2 +-
board/beacon/imx8mp/imx8mp_beacon.c | 2 +-
board/engicam/imx8mp/icore_mx8mp.c | 2 +-
board/gateworks/venice/venice.c | 4 ++--
board/nxp/ls1043ardb/Makefile | 2 +-
board/nxp/ls1046afrwy/Makefile | 2 +-
board/nxp/ls1046ardb/Makefile | 2 +-
.../imx8mp_debix_model_a/imx8mp_debix_model_a.c | 2 +-
board/siemens/iot2050/board.c | 2 +-
board/sophgo/milkv_duo/Makefile | 2 +-
board/sophgo/milkv_duo/board.c | 2 +-
board/theadorable/theadorable.c | 4 ++--
board/ti/am335x/board.c | 2 +-
board/toradex/verdin-imx8mp/verdin-imx8mp.c | 2 +-
board/xilinx/common/board.c | 2 +-
cmd/Kconfig | 12 ++++++------
cmd/Makefile | 2 +-
cmd/bdinfo.c | 6 +++---
cmd/fastboot.c | 4 ++--
cmd/ufetch.c | 2 +-
common/Kconfig | 2 +-
common/board_r.c | 4 ++--
common/spl/Kconfig | 5 ++++-
configs/am62px_evm_r5_ethboot_defconfig | 2 +-
configs/j722s_evm_r5_ethboot_defconfig | 2 +-
doc/develop/bootstd/overview.rst | 2 +-
doc/develop/pytest/usage.rst | 4 ++--
doc/usage/cmd/bdinfo.rst | 6 +++---
doc/usage/cmd/sntp.rst | 2 +-
doc/usage/cmd/wget.rst | 2 +-
drivers/dfu/Kconfig | 2 +-
drivers/fastboot/Kconfig | 4 ++--
drivers/fastboot/fb_common.c | 4 ++--
drivers/net/Kconfig | 6 +++---
drivers/net/phy/Kconfig | 4 ++--
drivers/net/sandbox.c | 2 +-
drivers/usb/gadget/Kconfig | 2 +-
env/flags.c | 10 +++++-----
include/configs/stm32mp15_common.h | 2 +-
include/configs/stm32mp23_common.h | 2 +-
include/configs/stm32mp25_common.h | 2 +-
include/env_callback.h | 2 +-
include/env_flags.h | 6 +++---
include/net-common.h | 4 ++--
include/net-legacy.h | 2 +-
lib/Kconfig | 2 +-
lib/efi_loader/Kconfig | 4 ++--
net/Kconfig | 20 ++++++++++----------
net/Makefile | 6 +++---
test/cmd/Makefile | 2 +-
test/cmd/bdinfo.c | 6 +++---
test/dm/eth.c | 6 +++---
test/py/tests/test_efi_fit.py | 2 +-
test/py/tests/test_efi_loader.py | 2 +-
test/py/tests/test_fpga.py | 4 ++--
test/py/tests/test_net.py | 2 +-
57 files changed, 104 insertions(+), 101 deletions(-)
diff --git a/Makefile b/Makefile
index dfc95d314dd..285a9e2beed 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-$(filter y,$(CONFIG_NET_LEGACY) $(CONFIG_NET_LWIP)) += 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..f01da961235 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
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..cff9383bad4 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
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 <seashell11234455@gmail.com>
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..4b7aa5c8586 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)) && \
!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..b21a1361137 100644
--- a/board/xilinx/common/board.c
+++ b/board/xilinx/common/board.c
@@ -508,7 +508,7 @@ int board_late_init_xilinx(void)
ret |= env_set_by_index("uuid", id, uuid);
}
- if (!(CONFIG_IS_ENABLED(NET) ||
+ if (!(CONFIG_IS_ENABLED(NET_LEGACY) ||
CONFIG_IS_ENABLED(NET_LWIP)))
continue;
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 9b8a13c3446..f19a656146a 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1946,7 +1946,7 @@ config CMD_XXD
endmenu
-if NET || NET_LWIP
+if NET_LEGACY || NET_LWIP
menuconfig CMD_NET
bool "Network commands"
@@ -1954,7 +1954,7 @@ menuconfig CMD_NET
if CMD_NET
-if NET
+if NET_LEGACY
config CMD_BOOTP
bool "bootp"
@@ -2198,12 +2198,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
@@ -2259,7 +2259,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
@@ -2329,7 +2329,7 @@ config CMD_PXE
endif # if CMD_NET
-endif # NET || NET_LWIP
+endif # NET_LEGACY || NET_LWIP
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..39e7bec3885 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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP))
print_eth();
bdinfo_print_num_l("fdt_blob", (ulong)map_to_sysmem(gd->fdt_blob));
if (IS_ENABLED(CONFIG_VIDEO))
@@ -194,7 +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) &&
+ if (!IS_ENABLED(CONFIG_NET_LEGACY) &&
!IS_ENABLED(CONFIG_NET_LWIP))
return CMD_RET_USAGE;
print_eth();
@@ -221,7 +221,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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP)
"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..3c3af0e3647 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_LEGACY || NET_LWIP
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 8cf0e14679c..37e6f51c7a7 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
static int initr_net(void)
{
puts("Net: ");
@@ -756,7 +756,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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
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..8baec9d43ff 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_NET_LEGACY=y
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..e4682edb455 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_NET_LEGACY=y
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..09db9101bd1 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_LEGACY=y or CONFIG_NET_LWIP=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_LEGACY=y or CONFIG_NET_LWIP=y.
fdt_blob
address of U-Boot's own device tree, NULL if none
@@ -173,5 +173,5 @@ 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
+The ``-e`` option is additionally only available if CONFIG_NET_LEGACY=y or
CONFIG_NET_LWIP=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/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..f0288387aed 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_LEGACY || NET_LWIP
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..93f32aea595 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_LEGACY || NET_LWIP
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..d4ffc24c063 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_LEGACY || NET_LWIP
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..45eb9820d9f 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
#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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
"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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
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..f7bb23df569 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
#define NET_CALLBACKS \
"bootfile:bootfile," \
"ipaddr:ipaddr," \
diff --git a/include/env_flags.h b/include/env_flags.h
index 0c48874690f..85721a89cfb 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
#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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
/*
* 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..0cbdf344664 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
/**
* 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 4e6a0c6a1b6..b2ffa2c4ef2 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 b5f81e0ff53..495a85fa869 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -517,7 +517,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_LEGACY || NET_LWIP
help
Provides an implementation of the EFI_IP4_CONFIG2_PROTOCOL, this
protocol can be used to set and get the current ip address and
@@ -599,7 +599,7 @@ config EFI_BOOTMGR
config EFI_HTTP_BOOT
bool "EFI HTTP Boot support"
- depends on NET || NET_LWIP
+ depends on NET_LEGACY || NET_LWIP
select CMD_NET
select CMD_DHCP
select CMD_DNS
diff --git a/net/Kconfig b/net/Kconfig
index 249c27c115d..89d949b5f2c 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -6,14 +6,14 @@ menu "Networking"
choice
prompt "Networking stack"
- default NET
+ default NET_LEGACY
config NO_NET
bool "No networking support"
help
Do not include networking support
-config NET
+config NET_LEGACY
bool "Legacy U-Boot networking stack"
select NETDEVICES
help
@@ -27,14 +27,14 @@ config NET_LWIP
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
+ 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
+if NET_LEGACY
config ARP_TIMEOUT
int "Milliseconds before trying ARP again"
@@ -227,11 +227,11 @@ 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
+if NET_LEGACY || NET_LWIP
config BOOTDEV_ETH
bool "Enable bootdev for ethernet"
@@ -260,7 +260,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
@@ -276,7 +276,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_LEGACY || NET_LWIP
config SYS_RX_ETH_BUFFER
int "Number of receive packet buffers"
diff --git a/net/Makefile b/net/Makefile
index 3a32bc8b0e7..a9323ceb40b 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 ($(filter y,$(CONFIG_NET_LEGACY) $(CONFIG_NET_LWIP)),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..3233a0a6a51 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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP))
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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP)) {
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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP))
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..fc45209a581 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
-@pytest.mark.buildconfigspec('net', 'net_lwip')
+@pytest.mark.buildconfigspec('net_legacy', '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..0ab47c0bde5 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')
-@pytest.mark.buildconfigspec('net', 'net_lwip')
+@pytest.mark.buildconfigspec('net_legacy', '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')
-@pytest.mark.buildconfigspec('net', 'net_lwip')
+@pytest.mark.buildconfigspec('net_legacy', '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..4f899530060 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
-@pytest.mark.buildconfigspec('net', 'net_lwip')
+@pytest.mark.buildconfigspec('net_legacy', 'net_lwip')
def test_net_setup_static(ubman):
"""Set up a static IP configuration.
--
2.53.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config)
2026-04-20 11:36 [PATCH 0/6] net: migrate NO_NET out of the networking stack choice Quentin Schulz
2026-04-20 11:36 ` [PATCH 1/6] move networking menu in net/Kconfig Quentin Schulz
2026-04-20 11:36 ` [PATCH 2/6] rename NET to NET_LEGACY Quentin Schulz
@ 2026-04-20 11:36 ` Quentin Schulz
2026-04-20 19:42 ` Simon Glass
2026-04-20 20:24 ` Heinrich Schuchardt
2026-04-20 11:36 ` [PATCH 4/6] simplify NET_LEGACY || NET_LWIP condition with NET condition Quentin Schulz
` (3 subsequent siblings)
6 siblings, 2 replies; 22+ messages in thread
From: Quentin Schulz @ 2026-04-20 11:36 UTC (permalink / raw)
To: u-boot, uboot-stm32, Paul Barker
Cc: Tom Rini, Jerome Forissier, Heinrich Schuchardt, Marek Vasut,
Ilias Apalodimas, Peng Fan, Udit Kumar, Alvin Šipraga,
Patrick Delaunay, Patrice Chotard, Adam Ford, Manoj Sai,
Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar, Gilles Talis,
Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese, Francesco Dolcini,
Michal Simek, Mattijs Korpershoek, Casey Connolly,
Vignesh Raghavendra, Bryan Brattlof, Vaishnav Achath,
Jayesh Choudhary, Simon Glass, Lukasz Majewski, Marek Vasut,
Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo, Sam Protsenko,
Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
This will allow a bunch of simplifications across the code base.
Disabling NET is the equivalent of today's NO_NET choice. This means
that if NET is enabled, either the legacy or lwIP stack is necessarily
selected, which allows us to simplify if NET_LEGACY || NET_LWIP into
if NET in a later commit.
Config fragments - or defconfigs including other defconfigs - setting
the network stack (NET_LEGACY or NET_LWIP) must also set NET (or unset
NO_NET) if the config they apply to - or the included defconfigs -
unsets NET (or selects NO_NET) as otherwise the NET_LEGACY and NET_LWIP
symbols are unreachable. This is the case for the two defconfig modified
in this commit.
NO_NET is now a convenience symbol which hides NET entirely to avoid
modifying many defconfigs. If one selected NO_NET to disable the
networking stack in the past, this will still work for now. Technically,
we should be using the "transitional" Kconfig attribute but that is only
available since Kconfig from Linux kernel v6.18 and we're on 6.1 right
now.
Note that this moves CONFIG_SYS_RX_ETH_BUFFER from under the Network
menu back into the main menu as it seems like it needs to be defined
even when there's no need for NET support at all and menuconfig option
doesn't work the same way as a menu.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
I'd say we should have everything net-related depends on NET as well,
so that disabling networking support with NET=n is also disabling
anything related (e.g. Ethernet controller and PHY drivers, USB
Ethernet, USB gadget CDC/RNDIS, network CLI commands, etc.).
---
configs/am62px_evm_r5_ethboot_defconfig | 2 +-
configs/j722s_evm_r5_ethboot_defconfig | 2 +-
net/Kconfig | 23 ++++++++++++-----------
3 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/configs/am62px_evm_r5_ethboot_defconfig b/configs/am62px_evm_r5_ethboot_defconfig
index 8baec9d43ff..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_LEGACY=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 e4682edb455..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_LEGACY=y
+# CONFIG_NO_NET is not set
CONFIG_SPL_DRIVERS_MISC=y
CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_DMA=y
diff --git a/net/Kconfig b/net/Kconfig
index 89d949b5f2c..e712a0dd2ac 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -2,17 +2,22 @@
# Network configuration
#
-menu "Networking"
+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 NO_NET
- bool "No networking support"
- help
- Do not include networking support
-
config NET_LEGACY
bool "Legacy U-Boot networking stack"
select NETDEVICES
@@ -231,8 +236,6 @@ endif # if NET_LEGACY
source "net/lwip/Kconfig"
-if NET_LEGACY || NET_LWIP
-
config BOOTDEV_ETH
bool "Enable bootdev for ethernet"
depends on BOOTSTD
@@ -276,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_LEGACY || NET_LWIP
+endif # if NET
config SYS_RX_ETH_BUFFER
int "Number of receive packet buffers"
@@ -286,5 +289,3 @@ config SYS_RX_ETH_BUFFER
controllers it is recommended to set this value to 8 or even higher,
since all buffers can be full shortly after enabling the interface on
high Ethernet traffic.
-
-endmenu
--
2.53.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 4/6] simplify NET_LEGACY || NET_LWIP condition with NET condition
2026-04-20 11:36 [PATCH 0/6] net: migrate NO_NET out of the networking stack choice Quentin Schulz
` (2 preceding siblings ...)
2026-04-20 11:36 ` [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config) Quentin Schulz
@ 2026-04-20 11:36 ` Quentin Schulz
2026-04-20 19:42 ` Simon Glass
2026-04-20 11:36 ` [PATCH 5/6] doc: remove mention to non-existing TPL_NET Quentin Schulz
` (2 subsequent siblings)
6 siblings, 1 reply; 22+ messages in thread
From: Quentin Schulz @ 2026-04-20 11:36 UTC (permalink / raw)
To: u-boot, uboot-stm32, Paul Barker
Cc: Tom Rini, Jerome Forissier, Heinrich Schuchardt, Marek Vasut,
Ilias Apalodimas, Peng Fan, Udit Kumar, Alvin Šipraga,
Patrick Delaunay, Patrice Chotard, Adam Ford, Manoj Sai,
Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar, Gilles Talis,
Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese, Francesco Dolcini,
Michal Simek, Mattijs Korpershoek, Casey Connolly,
Vignesh Raghavendra, Bryan Brattlof, Vaishnav Achath,
Jayesh Choudhary, Simon Glass, Lukasz Majewski, Marek Vasut,
Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo, Sam Protsenko,
Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
Since the move to make NET a menuconfig and NO_NET a synonym of NET=n,
when NET is enabled, NET_LEGACY || NET_LWIP is necessarily true, so
let's simplify the various checks across the codebase.
SPL_NET_LWIP doesn't exist but SPL_NET_LEGACY is an alias for SPL_NET so
the proper symbol is still defined in SPL whenever needed.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
Makefile | 2 +-
board/engicam/imx8mp/icore_mx8mp.c | 2 +-
board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c | 2 +-
board/ti/am335x/board.c | 2 +-
board/xilinx/common/board.c | 3 +--
cmd/Kconfig | 4 ++--
cmd/bdinfo.c | 7 +++----
common/Kconfig | 2 +-
common/board_r.c | 4 ++--
doc/usage/cmd/bdinfo.rst | 7 +++----
drivers/net/Kconfig | 2 +-
drivers/net/phy/Kconfig | 2 +-
drivers/usb/gadget/Kconfig | 2 +-
env/flags.c | 10 +++++-----
include/env_callback.h | 2 +-
include/env_flags.h | 6 +++---
include/net-common.h | 2 +-
lib/efi_loader/Kconfig | 4 ++--
net/Makefile | 2 +-
test/cmd/bdinfo.c | 6 +++---
test/py/tests/test_efi_loader.py | 2 +-
test/py/tests/test_fpga.py | 4 ++--
test/py/tests/test_net.py | 2 +-
23 files changed, 39 insertions(+), 42 deletions(-)
diff --git a/Makefile b/Makefile
index 285a9e2beed..32d82c0697a 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_LEGACY) $(CONFIG_NET_LWIP)) += net/
+libs-$(CONFIG_NET) += net/
libs-y += disk/
libs-y += drivers/
libs-$(CONFIG_SYS_FSL_DDR) += drivers/ddr/fsl/
diff --git a/board/engicam/imx8mp/icore_mx8mp.c b/board/engicam/imx8mp/icore_mx8mp.c
index f01da961235..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_LEGACY) || 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/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c b/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c
index cff9383bad4..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_LEGACY) || 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/ti/am335x/board.c b/board/ti/am335x/board.c
index 4b7aa5c8586..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_LEGACY) || 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/xilinx/common/board.c b/board/xilinx/common/board.c
index b21a1361137..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_LEGACY) ||
- 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/cmd/Kconfig b/cmd/Kconfig
index f19a656146a..64f70b22e26 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1946,7 +1946,7 @@ config CMD_XXD
endmenu
-if NET_LEGACY || NET_LWIP
+if NET
menuconfig CMD_NET
bool "Network commands"
@@ -2329,7 +2329,7 @@ config CMD_PXE
endif # if CMD_NET
-endif # NET_LEGACY || NET_LWIP
+endif # NET
menu "Misc commands"
diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
index 39e7bec3885..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_LEGACY) || 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_LEGACY) &&
- !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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP)
+#if IS_ENABLED(CONFIG_NET)
"bdinfo -e\n"
" - print Board Info related to network\n"
#endif
diff --git a/common/Kconfig b/common/Kconfig
index 3c3af0e3647..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_LEGACY || 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 37e6f51c7a7..45942910829 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
static int initr_net(void)
{
puts("Net: ");
@@ -756,7 +756,7 @@ static void initcall_run_r(void)
#if CONFIG_IS_ENABLED(PCI_ENDPOINT)
INITCALL(pci_ep_init);
#endif
-#if CONFIG_IS_ENABLED(NET_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
WATCHDOG_RESET();
INITCALL(initr_net);
#endif
diff --git a/doc/usage/cmd/bdinfo.rst b/doc/usage/cmd/bdinfo.rst
index 09db9101bd1..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_LEGACY=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_LEGACY=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_LEGACY=y or
-CONFIG_NET_LWIP=y.
+The ``-e`` option is additionally only available if CONFIG_NET=y.
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index f0288387aed..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_LEGACY || NET_LWIP
+ depends on NET
default y
bool "Sandbox: Mocked Ethernet driver"
help
diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index 93f32aea595..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_LEGACY || NET_LWIP
+ depends on NET
help
Enable Ethernet PHY (physical media interface) support.
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index d4ffc24c063..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_LEGACY || 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 45eb9820d9f..f1966bc91b4 100644
--- a/env/flags.c
+++ b/env/flags.c
@@ -22,7 +22,7 @@
#include <env_internal.h>
#endif
-#if CONFIG_IS_ENABLED(NET_LEGACY) || 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_LEGACY) || 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_LEGACY) || 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_LEGACY) || 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_LEGACY) || 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/env_callback.h b/include/env_callback.h
index f7bb23df569..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_LEGACY) || 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 85721a89cfb..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_LEGACY) || 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_LEGACY) || 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_LEGACY) || 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 0cbdf344664..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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
+#if CONFIG_IS_ENABLED(NET)
/**
* eth_set_enable_bootdevs() - Enable or disable binding of Ethernet bootdevs
*
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index 495a85fa869..3279fc88354 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -517,7 +517,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_LEGACY || 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
@@ -599,7 +599,7 @@ config EFI_BOOTMGR
config EFI_HTTP_BOOT
bool "EFI HTTP Boot support"
- depends on NET_LEGACY || NET_LWIP
+ depends on NET
select CMD_NET
select CMD_DHCP
select CMD_DNS
diff --git a/net/Makefile b/net/Makefile
index a9323ceb40b..ceac6de6377 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -37,7 +37,7 @@ CFLAGS_eth_common.o += -Wno-format-extra-args
endif
-ifeq ($(filter y,$(CONFIG_NET_LEGACY) $(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/bdinfo.c b/test/cmd/bdinfo.c
index 3233a0a6a51..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_LEGACY) || 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_LEGACY) || 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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP))
+ else if (IS_ENABLED(CONFIG_NET))
ut_assertok(test_eth(uts));
ut_assert_console_end();
diff --git a/test/py/tests/test_efi_loader.py b/test/py/tests/test_efi_loader.py
index fc45209a581..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
-@pytest.mark.buildconfigspec('net_legacy', 'net_lwip')
+@pytest.mark.buildconfigspec('net')
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 0ab47c0bde5..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')
-@pytest.mark.buildconfigspec('net_legacy', 'net_lwip')
+@pytest.mark.buildconfigspec('net')
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')
-@pytest.mark.buildconfigspec('net_legacy', 'net_lwip')
+@pytest.mark.buildconfigspec('net')
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 4f899530060..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
-@pytest.mark.buildconfigspec('net_legacy', 'net_lwip')
+@pytest.mark.buildconfigspec('net')
def test_net_setup_static(ubman):
"""Set up a static IP configuration.
--
2.53.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 5/6] doc: remove mention to non-existing TPL_NET
2026-04-20 11:36 [PATCH 0/6] net: migrate NO_NET out of the networking stack choice Quentin Schulz
` (3 preceding siblings ...)
2026-04-20 11:36 ` [PATCH 4/6] simplify NET_LEGACY || NET_LWIP condition with NET condition Quentin Schulz
@ 2026-04-20 11:36 ` Quentin Schulz
2026-04-20 19:42 ` Simon Glass
2026-04-20 11:36 ` [PATCH 6/6] boot: remove NO_NET use Quentin Schulz
2026-04-20 19:51 ` [0/6] net: migrate NO_NET out of the networking stack choice Simon Glass
6 siblings, 1 reply; 22+ messages in thread
From: Quentin Schulz @ 2026-04-20 11:36 UTC (permalink / raw)
To: u-boot, uboot-stm32, Paul Barker
Cc: Tom Rini, Jerome Forissier, Heinrich Schuchardt, Marek Vasut,
Ilias Apalodimas, Peng Fan, Udit Kumar, Alvin Šipraga,
Patrick Delaunay, Patrice Chotard, Adam Ford, Manoj Sai,
Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar, Gilles Talis,
Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese, Francesco Dolcini,
Michal Simek, Mattijs Korpershoek, Casey Connolly,
Vignesh Raghavendra, Bryan Brattlof, Vaishnav Achath,
Jayesh Choudhary, Simon Glass, Lukasz Majewski, Marek Vasut,
Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo, Sam Protsenko,
Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
TPL_NET symbol never existed in the first place, so let's remove this
misleading piece of documentation.
Fixes: 143c9a7e9d68 ("doc: describe TPL/VPL/SPL boot")
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
doc/usage/spl_boot.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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
--
2.53.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH 6/6] boot: remove NO_NET use
2026-04-20 11:36 [PATCH 0/6] net: migrate NO_NET out of the networking stack choice Quentin Schulz
` (4 preceding siblings ...)
2026-04-20 11:36 ` [PATCH 5/6] doc: remove mention to non-existing TPL_NET Quentin Schulz
@ 2026-04-20 11:36 ` Quentin Schulz
2026-04-20 19:43 ` Simon Glass
2026-04-21 5:16 ` Ilias Apalodimas
2026-04-20 19:51 ` [0/6] net: migrate NO_NET out of the networking stack choice Simon Glass
6 siblings, 2 replies; 22+ messages in thread
From: Quentin Schulz @ 2026-04-20 11:36 UTC (permalink / raw)
To: u-boot, uboot-stm32, Paul Barker
Cc: Tom Rini, Jerome Forissier, Heinrich Schuchardt, Marek Vasut,
Ilias Apalodimas, Peng Fan, Udit Kumar, Alvin Šipraga,
Patrick Delaunay, Patrice Chotard, Adam Ford, Manoj Sai,
Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar, Gilles Talis,
Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese, Francesco Dolcini,
Michal Simek, Mattijs Korpershoek, Casey Connolly,
Vignesh Raghavendra, Bryan Brattlof, Vaishnav Achath,
Jayesh Choudhary, Simon Glass, Lukasz Majewski, Marek Vasut,
Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo, Sam Protsenko,
Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
NO_NET is now a transitional symbol which may eventually be removed. Its
meaning is the opposite of the new meaning of NET (that is, any
networking stack).
Update the symbol dependency by using NET instead of !NO_NET.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
boot/Kconfig | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
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
--
2.53.0
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH 1/6] move networking menu in net/Kconfig
2026-04-20 11:36 ` [PATCH 1/6] move networking menu in net/Kconfig Quentin Schulz
@ 2026-04-20 19:40 ` Simon Glass
2026-04-21 5:17 ` Ilias Apalodimas
1 sibling, 0 replies; 22+ messages in thread
From: Simon Glass @ 2026-04-20 19:40 UTC (permalink / raw)
To: foss+uboot
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Ilias Apalodimas, Peng Fan,
Udit Kumar, Alvin Šipraga, Patrick Delaunay, Patrice Chotard,
Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu,
Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu,
Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary, Simon Glass,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang, Quentin Schulz
On 2026-04-20T11:36:06, Quentin Schulz <foss+uboot@0leil.net> wrote:
> move networking menu in net/Kconfig
>
> In the main Kconfig, there are only two more menus, General Setup and
> Expert, in addition to the net menu. Since the part in the main Kconfig
> is mostly about selecting the network stack (legacy or lwIP), and that
> we already have a net/Kconfig, let's move those to net/Kconfig to have
> everything in the same place.
>
> No intended change in behavior.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>
> Kconfig | 34 ----------------------------------
> net/Kconfig | 34 ++++++++++++++++++++++++++++++++++
> 2 files changed, 34 insertions(+), 34 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/6] rename NET to NET_LEGACY
2026-04-20 11:36 ` [PATCH 2/6] rename NET to NET_LEGACY Quentin Schulz
@ 2026-04-20 19:42 ` Simon Glass
2026-04-21 10:16 ` Quentin Schulz
2026-04-21 5:17 ` Ilias Apalodimas
1 sibling, 1 reply; 22+ messages in thread
From: Simon Glass @ 2026-04-20 19:42 UTC (permalink / raw)
To: foss+uboot
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Ilias Apalodimas, Peng Fan,
Udit Kumar, Alvin Šipraga, Patrick Delaunay, Patrice Chotard,
Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu,
Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu,
Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary, Simon Glass,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang, Quentin Schulz
Hi Quentin,
On 2026-04-20T11:36:06, Quentin Schulz <foss+uboot@0leil.net> wrote:
> rename NET to NET_LEGACY
>
> Highlight that NET really is the legacy networking stack by renaming the
> option to NET_LEGACY.
>
> This requires us to add an SPL_NET_LEGACY alias to SPL_NET as otherwise
> CONFIG_IS_ENABLED(NET_LEGACY) will not work for SPL.
>
> The "depends on !NET_LWIP" for SPL_NET clearly highlights that it is
> using the legacy networking app so this seems fine to do.
>
> This also has the benefit of removing potential confusion on NET being a
> specific networking stack instead of 'any' network stack.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> diff --git 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
> -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
Shouldn't this be left alone? Or perhaps restored in patch 4?
BOOTSTD_DEFAULTS selects BOOT_DEFAULTS which enables network commands
conditionally on !NO_NET, meaning any network stack.
> diff --git a/cmd/ufetch.c b/cmd/ufetch.c
> @@ -159,7 +159,7 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc,
> - if (IS_ENABLED(CONFIG_NET))
> + if (IS_ENABLED(CONFIG_NET_LEGACY))
> printf('Net');
Similar question here.
> diff --git a/board/siemens/iot2050/board.c b/board/siemens/iot2050/board.c
> @@ -232,7 +232,7 @@ void set_board_info_env(void)
> - if (IS_ENABLED(CONFIG_NET)) {
> + if (IS_ENABLED(CONFIG_NET_LEGACY)) {
and here
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config)
2026-04-20 11:36 ` [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config) Quentin Schulz
@ 2026-04-20 19:42 ` Simon Glass
2026-04-20 20:24 ` Heinrich Schuchardt
1 sibling, 0 replies; 22+ messages in thread
From: Simon Glass @ 2026-04-20 19:42 UTC (permalink / raw)
To: foss+uboot
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Ilias Apalodimas, Peng Fan,
Udit Kumar, Alvin Šipraga, Patrick Delaunay, Patrice Chotard,
Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu,
Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu,
Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary, Simon Glass,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang, Quentin Schulz
On 2026-04-20T11:36:06, Quentin Schulz <foss+uboot@0leil.net> wrote:
> net: make NET a menuconfig (and downgrade NO_NET to a simple config)
>
> This will allow a bunch of simplifications across the code base.
> Disabling NET is the equivalent of today's NO_NET choice. This means
> that if NET is enabled, either the legacy or lwIP stack is necessarily
> selected, which allows us to simplify if NET_LEGACY || NET_LWIP into
> if NET in a later commit.
>
> Config fragments - or defconfigs including other defconfigs - setting
> the network stack (NET_LEGACY or NET_LWIP) must also set NET (or unset
> NO_NET) if the config they apply to - or the included defconfigs -
> unsets NET (or selects NO_NET) as otherwise the NET_LEGACY and NET_LWIP
> symbols are unreachable. This is the case for the two defconfig modified
> in this commit.
>
> NO_NET is now a convenience symbol which hides NET entirely to avoid
> modifying many defconfigs. If one selected NO_NET to disable the
> networking stack in the past, this will still work for now. Technically,
> we should be using the 'transitional' Kconfig attribute but that is only
> available since Kconfig from Linux kernel v6.18 and we're on 6.1 right
> now.
>
> Note that this moves CONFIG_SYS_RX_ETH_BUFFER from under the Network
> menu back into the main menu as it seems like it needs to be defined
> even when there's no need for NET support at all and menuconfig option
> doesn't work the same way as a menu.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>
> configs/am62px_evm_r5_ethboot_defconfig | 2 +-
> configs/j722s_evm_r5_ethboot_defconfig | 2 +-
> net/Kconfig | 23 ++++++++++++-----------
> 3 files changed, 14 insertions(+), 13 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 4/6] simplify NET_LEGACY || NET_LWIP condition with NET condition
2026-04-20 11:36 ` [PATCH 4/6] simplify NET_LEGACY || NET_LWIP condition with NET condition Quentin Schulz
@ 2026-04-20 19:42 ` Simon Glass
0 siblings, 0 replies; 22+ messages in thread
From: Simon Glass @ 2026-04-20 19:42 UTC (permalink / raw)
To: foss+uboot
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Ilias Apalodimas, Peng Fan,
Udit Kumar, Alvin Šipraga, Patrick Delaunay, Patrice Chotard,
Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu,
Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu,
Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary, Simon Glass,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang, Quentin Schulz
On 2026-04-20T11:36:06, Quentin Schulz <foss+uboot@0leil.net> wrote:
> simplify NET_LEGACY || NET_LWIP condition with NET condition
>
> Since the move to make NET a menuconfig and NO_NET a synonym of NET=n,
> when NET is enabled, NET_LEGACY || NET_LWIP is necessarily true, so
> let's simplify the various checks across the codebase.
>
> SPL_NET_LWIP doesn't exist but SPL_NET_LEGACY is an alias for SPL_NET so
> the proper symbol is still defined in SPL whenever needed.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>
> Makefile | 2 +-
> board/engicam/imx8mp/icore_mx8mp.c | 2 +-
> board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c | 2 +-
> board/ti/am335x/board.c | 2 +-
> board/xilinx/common/board.c | 3 +--
> cmd/Kconfig | 4 ++--
> cmd/bdinfo.c | 7 +++----
> common/Kconfig | 2 +-
> common/board_r.c | 4 ++--
> doc/usage/cmd/bdinfo.rst | 7 +++----
> drivers/net/Kconfig | 2 +-
> drivers/net/phy/Kconfig | 2 +-
> drivers/usb/gadget/Kconfig | 2 +-
> env/flags.c | 10 +++++-----
> include/env_callback.h | 2 +-
> include/env_flags.h | 6 +++---
> include/net-common.h | 2 +-
> lib/efi_loader/Kconfig | 4 ++--
> net/Makefile | 2 +-
> test/cmd/bdinfo.c | 6 +++---
> test/py/tests/test_efi_loader.py | 2 +-
> test/py/tests/test_fpga.py | 4 ++--
> test/py/tests/test_net.py | 2 +-
> 23 files changed, 39 insertions(+), 42 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 5/6] doc: remove mention to non-existing TPL_NET
2026-04-20 11:36 ` [PATCH 5/6] doc: remove mention to non-existing TPL_NET Quentin Schulz
@ 2026-04-20 19:42 ` Simon Glass
0 siblings, 0 replies; 22+ messages in thread
From: Simon Glass @ 2026-04-20 19:42 UTC (permalink / raw)
To: foss+uboot
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Ilias Apalodimas, Peng Fan,
Udit Kumar, Alvin Šipraga, Patrick Delaunay, Patrice Chotard,
Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu,
Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu,
Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary, Simon Glass,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang, Quentin Schulz
On 2026-04-20T11:36:06, Quentin Schulz <foss+uboot@0leil.net> wrote:
> doc: remove mention to non-existing TPL_NET
>
> TPL_NET symbol never existed in the first place, so let's remove this
> misleading piece of documentation.
>
> Fixes: 143c9a7e9d68 ("doc: describe TPL/VPL/SPL boot")
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>
> doc/usage/spl_boot.rst | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 6/6] boot: remove NO_NET use
2026-04-20 11:36 ` [PATCH 6/6] boot: remove NO_NET use Quentin Schulz
@ 2026-04-20 19:43 ` Simon Glass
2026-04-21 5:16 ` Ilias Apalodimas
1 sibling, 0 replies; 22+ messages in thread
From: Simon Glass @ 2026-04-20 19:43 UTC (permalink / raw)
To: foss+uboot
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Ilias Apalodimas, Peng Fan,
Udit Kumar, Alvin Šipraga, Patrick Delaunay, Patrice Chotard,
Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu,
Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu,
Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary, Simon Glass,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang, Quentin Schulz
On 2026-04-20T11:36:06, Quentin Schulz <foss+uboot@0leil.net> wrote:
> boot: remove NO_NET use
>
> NO_NET is now a transitional symbol which may eventually be removed. Its
> meaning is the opposite of the new meaning of NET (that is, any
> networking stack).
>
> Update the symbol dependency by using NET instead of !NO_NET.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>
> boot/Kconfig | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
Reviewed-by: Simon Glass <sjg@chromium.org>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [0/6] net: migrate NO_NET out of the networking stack choice
2026-04-20 11:36 [PATCH 0/6] net: migrate NO_NET out of the networking stack choice Quentin Schulz
` (5 preceding siblings ...)
2026-04-20 11:36 ` [PATCH 6/6] boot: remove NO_NET use Quentin Schulz
@ 2026-04-20 19:51 ` Simon Glass
2026-04-21 11:06 ` Quentin Schulz
6 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2026-04-20 19:51 UTC (permalink / raw)
To: foss+uboot; +Cc: u-boot
Hi Quentin,
On 2026-04-20T11:36:06, Quentin Schulz <foss+uboot@0leil.net> wrote:
> This series introduces a new NET umbrella symbol with NET_LEGACY and NET_LWIP underneath.
Thanks for this cleanup!
Re SYS_RX_ETH_BUFFER, how about moving the extern for net_rx_packets[]
to net-legacy.h ? (is it used with lwip?)
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config)
2026-04-20 11:36 ` [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config) Quentin Schulz
2026-04-20 19:42 ` Simon Glass
@ 2026-04-20 20:24 ` Heinrich Schuchardt
2026-04-21 8:37 ` Quentin Schulz
1 sibling, 1 reply; 22+ messages in thread
From: Heinrich Schuchardt @ 2026-04-20 20:24 UTC (permalink / raw)
To: Quentin Schulz, u-boot, uboot-stm32, Paul Barker
Cc: Tom Rini, Jerome Forissier, Marek Vasut, Ilias Apalodimas,
Peng Fan, Udit Kumar, Alvin Šipraga, Patrick Delaunay,
Patrice Chotard, Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey,
Mingkai Hu, Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka,
Kongyang Liu, Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary, Simon Glass,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang, Quentin Schulz
Am 20. April 2026 13:36:09 MESZ schrieb Quentin Schulz <foss+uboot@0leil.net>:
>From: Quentin Schulz <quentin.schulz@cherry.de>
>
>This will allow a bunch of simplifications across the code base.
>Disabling NET is the equivalent of today's NO_NET choice. This means
>that if NET is enabled, either the legacy or lwIP stack is necessarily
>selected, which allows us to simplify if NET_LEGACY || NET_LWIP into
>if NET in a later commit.
>
>Config fragments - or defconfigs including other defconfigs - setting
>the network stack (NET_LEGACY or NET_LWIP) must also set NET (or unset
>NO_NET) if the config they apply to - or the included defconfigs -
>unsets NET (or selects NO_NET) as otherwise the NET_LEGACY and NET_LWIP
>symbols are unreachable. This is the case for the two defconfig modified
>in this commit.
>
>NO_NET is now a convenience symbol which hides NET entirely to avoid
>modifying many defconfigs. If one selected NO_NET to disable the
>networking stack in the past, this will still work for now. Technically,
>we should be using the "transitional" Kconfig attribute but that is only
>available since Kconfig from Linux kernel v6.18 and we're on 6.1 right
>now.
>
>Note that this moves CONFIG_SYS_RX_ETH_BUFFER from under the Network
>menu back into the main menu as it seems like it needs to be defined
>even when there's no need for NET support at all and menuconfig option
>doesn't work the same way as a menu.
>
>Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>---
>
>I'd say we should have everything net-related depends on NET as well,
>so that disabling networking support with NET=n is also disabling
>anything related (e.g. Ethernet controller and PHY drivers, USB
>Ethernet, USB gadget CDC/RNDIS, network CLI commands, etc.).
>---
> configs/am62px_evm_r5_ethboot_defconfig | 2 +-
> configs/j722s_evm_r5_ethboot_defconfig | 2 +-
> net/Kconfig | 23 ++++++++++++-----------
> 3 files changed, 14 insertions(+), 13 deletions(-)
>
>diff --git a/configs/am62px_evm_r5_ethboot_defconfig b/configs/am62px_evm_r5_ethboot_defconfig
>index 8baec9d43ff..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_LEGACY=y
>+# CONFIG_NO_NET is not set
Does this imply that NET_LEGACY is the default? Choosing LEGACY as default would not be plausible to me. We should use LWIP as default. Then every new board will use it, hopefully.
Best regards
Heinrich
> 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 e4682edb455..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_LEGACY=y
>+# CONFIG_NO_NET is not set
> CONFIG_SPL_DRIVERS_MISC=y
> CONFIG_SPL_BOARD_INIT=y
> CONFIG_SPL_DMA=y
>diff --git a/net/Kconfig b/net/Kconfig
>index 89d949b5f2c..e712a0dd2ac 100644
>--- a/net/Kconfig
>+++ b/net/Kconfig
>@@ -2,17 +2,22 @@
> # Network configuration
> #
>
>-menu "Networking"
>+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 NO_NET
>- bool "No networking support"
>- help
>- Do not include networking support
>-
> config NET_LEGACY
> bool "Legacy U-Boot networking stack"
> select NETDEVICES
>@@ -231,8 +236,6 @@ endif # if NET_LEGACY
>
> source "net/lwip/Kconfig"
>
>-if NET_LEGACY || NET_LWIP
>-
> config BOOTDEV_ETH
> bool "Enable bootdev for ethernet"
> depends on BOOTSTD
>@@ -276,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_LEGACY || NET_LWIP
>+endif # if NET
>
> config SYS_RX_ETH_BUFFER
> int "Number of receive packet buffers"
>@@ -286,5 +289,3 @@ config SYS_RX_ETH_BUFFER
> controllers it is recommended to set this value to 8 or even higher,
> since all buffers can be full shortly after enabling the interface on
> high Ethernet traffic.
>-
>-endmenu
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 6/6] boot: remove NO_NET use
2026-04-20 11:36 ` [PATCH 6/6] boot: remove NO_NET use Quentin Schulz
2026-04-20 19:43 ` Simon Glass
@ 2026-04-21 5:16 ` Ilias Apalodimas
1 sibling, 0 replies; 22+ messages in thread
From: Ilias Apalodimas @ 2026-04-21 5:16 UTC (permalink / raw)
To: Quentin Schulz
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Peng Fan, Udit Kumar,
Alvin Šipraga, Patrick Delaunay, Patrice Chotard, Adam Ford,
Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar,
Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese,
Francesco Dolcini, Michal Simek, Mattijs Korpershoek,
Casey Connolly, Vignesh Raghavendra, Bryan Brattlof,
Vaishnav Achath, Jayesh Choudhary, Simon Glass, Lukasz Majewski,
Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo,
Sam Protsenko, Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
On Mon, 20 Apr 2026 at 14:37, Quentin Schulz <foss+uboot@0leil.net> wrote:
>
> From: Quentin Schulz <quentin.schulz@cherry.de>
>
> NO_NET is now a transitional symbol which may eventually be removed. Its
> meaning is the opposite of the new meaning of NET (that is, any
> networking stack).
>
> Update the symbol dependency by using NET instead of !NO_NET.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> ---
> boot/Kconfig | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> 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
>
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 1/6] move networking menu in net/Kconfig
2026-04-20 11:36 ` [PATCH 1/6] move networking menu in net/Kconfig Quentin Schulz
2026-04-20 19:40 ` Simon Glass
@ 2026-04-21 5:17 ` Ilias Apalodimas
1 sibling, 0 replies; 22+ messages in thread
From: Ilias Apalodimas @ 2026-04-21 5:17 UTC (permalink / raw)
To: Quentin Schulz
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Peng Fan, Udit Kumar,
Alvin Šipraga, Patrick Delaunay, Patrice Chotard, Adam Ford,
Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar,
Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese,
Francesco Dolcini, Michal Simek, Mattijs Korpershoek,
Casey Connolly, Vignesh Raghavendra, Bryan Brattlof,
Vaishnav Achath, Jayesh Choudhary, Simon Glass, Lukasz Majewski,
Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo,
Sam Protsenko, Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
On Mon, 20 Apr 2026 at 14:36, Quentin Schulz <foss+uboot@0leil.net> wrote:
>
> From: Quentin Schulz <quentin.schulz@cherry.de>
>
> In the main Kconfig, there are only two more menus, General Setup and
> Expert, in addition to the net menu. Since the part in the main Kconfig
> is mostly about selecting the network stack (legacy or lwIP), and that
> we already have a net/Kconfig, let's move those to net/Kconfig to have
> everything in the same place.
>
> No intended change in behavior.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> ---
> Kconfig | 34 ----------------------------------
> net/Kconfig | 34 ++++++++++++++++++++++++++++++++++
> 2 files changed, 34 insertions(+), 34 deletions(-)
>
> diff --git a/Kconfig b/Kconfig
> index 7f00e76ba78..1fa31a4f5a8 100644
> --- a/Kconfig
> +++ b/Kconfig
> @@ -791,42 +791,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/net/Kconfig b/net/Kconfig
> index e45ceb25106..249c27c115d 100644
> --- a/net/Kconfig
> +++ b/net/Kconfig
> @@ -2,6 +2,38 @@
> # Network configuration
> #
>
> +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
> +
> if NET
>
> config ARP_TIMEOUT
> @@ -254,3 +286,5 @@ config SYS_RX_ETH_BUFFER
> controllers it is recommended to set this value to 8 or even higher,
> since all buffers can be full shortly after enabling the interface on
> high Ethernet traffic.
> +
> +endmenu
>
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/6] rename NET to NET_LEGACY
2026-04-20 11:36 ` [PATCH 2/6] rename NET to NET_LEGACY Quentin Schulz
2026-04-20 19:42 ` Simon Glass
@ 2026-04-21 5:17 ` Ilias Apalodimas
1 sibling, 0 replies; 22+ messages in thread
From: Ilias Apalodimas @ 2026-04-21 5:17 UTC (permalink / raw)
To: Quentin Schulz
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Peng Fan, Udit Kumar,
Alvin Šipraga, Patrick Delaunay, Patrice Chotard, Adam Ford,
Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu, Pramod Kumar,
Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu, Stefan Roese,
Francesco Dolcini, Michal Simek, Mattijs Korpershoek,
Casey Connolly, Vignesh Raghavendra, Bryan Brattlof,
Vaishnav Achath, Jayesh Choudhary, Simon Glass, Lukasz Majewski,
Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam, Alice Guo,
Sam Protsenko, Martyn Welch, Maarten Brock, Kory Maincent,
Markus Schneider-Pargmann (TI.com), Padmarao Begari,
Matthias Brugger, Mikhail Kshevetskiy, Heiko Schocher,
Andrew Goodbody, Peter Robinson, Brian Sune, Julien Stephan,
Dinesh Maniyam, Ben Dooks, Tien Fong Chee, Leo Yu-Chi Liang,
Weijie Gao, Anshul Dalal, Neil Armstrong, Andre Przywara,
Andrew Davis, Hrushikesh Salunke, Alexey Charkov, Dario Binacchi,
Ye Li, Andreas Dannenberg, Chintan Vankar, Martin Schwan,
Benjamin Hahn, David Lechner, Ariel D'Alessandro,
Dmitrii Merkurev, Christian Marangi, Robert Marko, Beiyan Yun,
Lucien.Jheng, Romain Gantois, Siddharth Vadapalli, Kever Yang,
Jonas Karlman, George Chan, Balaji Selvanathan, Benjamin ROBIN,
Max Merchel, Sean Edmond, Christoph Niedermaier, Shantur Rathore,
Ying-Chun Liu (PaulLiu), Adriano Cordova, Sky Huang,
Quentin Schulz
Thanks for doing this Quentin
On Mon, 20 Apr 2026 at 14:36, Quentin Schulz <foss+uboot@0leil.net> wrote:
>
> From: Quentin Schulz <quentin.schulz@cherry.de>
>
> Highlight that NET really is the legacy networking stack by renaming the
> option to NET_LEGACY.
+1
>
> This requires us to add an SPL_NET_LEGACY alias to SPL_NET as otherwise
> CONFIG_IS_ENABLED(NET_LEGACY) will not work for SPL.
>
> The "depends on !NET_LWIP" for SPL_NET clearly highlights that it is
> using the legacy networking app so this seems fine to do.
>
> This also has the benefit of removing potential confusion on NET being a
> specific networking stack instead of "any" network stack.
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> ---
> Makefile | 4 ++--
> arch/arm/mach-stm32mp/soc.c | 2 +-
> board/beacon/imx8mp/imx8mp_beacon.c | 2 +-
> board/engicam/imx8mp/icore_mx8mp.c | 2 +-
> board/gateworks/venice/venice.c | 4 ++--
> board/nxp/ls1043ardb/Makefile | 2 +-
> board/nxp/ls1046afrwy/Makefile | 2 +-
> board/nxp/ls1046ardb/Makefile | 2 +-
> .../imx8mp_debix_model_a/imx8mp_debix_model_a.c | 2 +-
> board/siemens/iot2050/board.c | 2 +-
> board/sophgo/milkv_duo/Makefile | 2 +-
> board/sophgo/milkv_duo/board.c | 2 +-
> board/theadorable/theadorable.c | 4 ++--
> board/ti/am335x/board.c | 2 +-
> board/toradex/verdin-imx8mp/verdin-imx8mp.c | 2 +-
> board/xilinx/common/board.c | 2 +-
> cmd/Kconfig | 12 ++++++------
> cmd/Makefile | 2 +-
> cmd/bdinfo.c | 6 +++---
> cmd/fastboot.c | 4 ++--
> cmd/ufetch.c | 2 +-
> common/Kconfig | 2 +-
> common/board_r.c | 4 ++--
> common/spl/Kconfig | 5 ++++-
> configs/am62px_evm_r5_ethboot_defconfig | 2 +-
> configs/j722s_evm_r5_ethboot_defconfig | 2 +-
> doc/develop/bootstd/overview.rst | 2 +-
> doc/develop/pytest/usage.rst | 4 ++--
> doc/usage/cmd/bdinfo.rst | 6 +++---
> doc/usage/cmd/sntp.rst | 2 +-
> doc/usage/cmd/wget.rst | 2 +-
> drivers/dfu/Kconfig | 2 +-
> drivers/fastboot/Kconfig | 4 ++--
> drivers/fastboot/fb_common.c | 4 ++--
> drivers/net/Kconfig | 6 +++---
> drivers/net/phy/Kconfig | 4 ++--
> drivers/net/sandbox.c | 2 +-
> drivers/usb/gadget/Kconfig | 2 +-
> env/flags.c | 10 +++++-----
> include/configs/stm32mp15_common.h | 2 +-
> include/configs/stm32mp23_common.h | 2 +-
> include/configs/stm32mp25_common.h | 2 +-
> include/env_callback.h | 2 +-
> include/env_flags.h | 6 +++---
> include/net-common.h | 4 ++--
> include/net-legacy.h | 2 +-
> lib/Kconfig | 2 +-
> lib/efi_loader/Kconfig | 4 ++--
> net/Kconfig | 20 ++++++++++----------
> net/Makefile | 6 +++---
> test/cmd/Makefile | 2 +-
> test/cmd/bdinfo.c | 6 +++---
> test/dm/eth.c | 6 +++---
> test/py/tests/test_efi_fit.py | 2 +-
> test/py/tests/test_efi_loader.py | 2 +-
> test/py/tests/test_fpga.py | 4 ++--
> test/py/tests/test_net.py | 2 +-
> 57 files changed, 104 insertions(+), 101 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index dfc95d314dd..285a9e2beed 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-$(filter y,$(CONFIG_NET_LEGACY) $(CONFIG_NET_LWIP)) += 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..f01da961235 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> 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..cff9383bad4 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> 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 <seashell11234455@gmail.com>
>
> 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..4b7aa5c8586 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)) && \
> !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..b21a1361137 100644
> --- a/board/xilinx/common/board.c
> +++ b/board/xilinx/common/board.c
> @@ -508,7 +508,7 @@ int board_late_init_xilinx(void)
> ret |= env_set_by_index("uuid", id, uuid);
> }
>
> - if (!(CONFIG_IS_ENABLED(NET) ||
> + if (!(CONFIG_IS_ENABLED(NET_LEGACY) ||
> CONFIG_IS_ENABLED(NET_LWIP)))
> continue;
>
> diff --git a/cmd/Kconfig b/cmd/Kconfig
> index 9b8a13c3446..f19a656146a 100644
> --- a/cmd/Kconfig
> +++ b/cmd/Kconfig
> @@ -1946,7 +1946,7 @@ config CMD_XXD
>
> endmenu
>
> -if NET || NET_LWIP
> +if NET_LEGACY || NET_LWIP
>
> menuconfig CMD_NET
> bool "Network commands"
> @@ -1954,7 +1954,7 @@ menuconfig CMD_NET
>
> if CMD_NET
>
> -if NET
> +if NET_LEGACY
>
> config CMD_BOOTP
> bool "bootp"
> @@ -2198,12 +2198,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
>
> @@ -2259,7 +2259,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
> @@ -2329,7 +2329,7 @@ config CMD_PXE
>
> endif # if CMD_NET
>
> -endif # NET || NET_LWIP
> +endif # NET_LEGACY || NET_LWIP
>
> 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..39e7bec3885 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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP))
> print_eth();
> bdinfo_print_num_l("fdt_blob", (ulong)map_to_sysmem(gd->fdt_blob));
> if (IS_ENABLED(CONFIG_VIDEO))
> @@ -194,7 +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) &&
> + if (!IS_ENABLED(CONFIG_NET_LEGACY) &&
> !IS_ENABLED(CONFIG_NET_LWIP))
> return CMD_RET_USAGE;
> print_eth();
> @@ -221,7 +221,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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP)
> "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..3c3af0e3647 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_LEGACY || NET_LWIP
> 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 8cf0e14679c..37e6f51c7a7 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> static int initr_net(void)
> {
> puts("Net: ");
> @@ -756,7 +756,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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> 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..8baec9d43ff 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_NET_LEGACY=y
> 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..e4682edb455 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_NET_LEGACY=y
> 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..09db9101bd1 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_LEGACY=y or CONFIG_NET_LWIP=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_LEGACY=y or CONFIG_NET_LWIP=y.
>
> fdt_blob
> address of U-Boot's own device tree, NULL if none
> @@ -173,5 +173,5 @@ 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
> +The ``-e`` option is additionally only available if CONFIG_NET_LEGACY=y or
> CONFIG_NET_LWIP=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/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..f0288387aed 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_LEGACY || NET_LWIP
> 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..93f32aea595 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_LEGACY || NET_LWIP
> 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..d4ffc24c063 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_LEGACY || NET_LWIP
> 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..45eb9820d9f 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> #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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> "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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> 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..f7bb23df569 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> #define NET_CALLBACKS \
> "bootfile:bootfile," \
> "ipaddr:ipaddr," \
> diff --git a/include/env_flags.h b/include/env_flags.h
> index 0c48874690f..85721a89cfb 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> #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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> /*
> * 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..0cbdf344664 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_LEGACY) || CONFIG_IS_ENABLED(NET_LWIP)
> /**
> * 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 4e6a0c6a1b6..b2ffa2c4ef2 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 b5f81e0ff53..495a85fa869 100644
> --- a/lib/efi_loader/Kconfig
> +++ b/lib/efi_loader/Kconfig
> @@ -517,7 +517,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_LEGACY || NET_LWIP
> help
> Provides an implementation of the EFI_IP4_CONFIG2_PROTOCOL, this
> protocol can be used to set and get the current ip address and
> @@ -599,7 +599,7 @@ config EFI_BOOTMGR
>
> config EFI_HTTP_BOOT
> bool "EFI HTTP Boot support"
> - depends on NET || NET_LWIP
> + depends on NET_LEGACY || NET_LWIP
> select CMD_NET
> select CMD_DHCP
> select CMD_DNS
> diff --git a/net/Kconfig b/net/Kconfig
> index 249c27c115d..89d949b5f2c 100644
> --- a/net/Kconfig
> +++ b/net/Kconfig
> @@ -6,14 +6,14 @@ menu "Networking"
>
> choice
> prompt "Networking stack"
> - default NET
> + default NET_LEGACY
>
> config NO_NET
> bool "No networking support"
> help
> Do not include networking support
>
> -config NET
> +config NET_LEGACY
> bool "Legacy U-Boot networking stack"
> select NETDEVICES
> help
> @@ -27,14 +27,14 @@ config NET_LWIP
> 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
> + 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
> +if NET_LEGACY
>
> config ARP_TIMEOUT
> int "Milliseconds before trying ARP again"
> @@ -227,11 +227,11 @@ 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
> +if NET_LEGACY || NET_LWIP
>
> config BOOTDEV_ETH
> bool "Enable bootdev for ethernet"
> @@ -260,7 +260,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
> @@ -276,7 +276,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_LEGACY || NET_LWIP
>
> config SYS_RX_ETH_BUFFER
> int "Number of receive packet buffers"
> diff --git a/net/Makefile b/net/Makefile
> index 3a32bc8b0e7..a9323ceb40b 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 ($(filter y,$(CONFIG_NET_LEGACY) $(CONFIG_NET_LWIP)),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..3233a0a6a51 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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP))
> 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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP)) {
> 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_LEGACY) || IS_ENABLED(CONFIG_NET_LWIP))
> 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..fc45209a581 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
>
> -@pytest.mark.buildconfigspec('net', 'net_lwip')
> +@pytest.mark.buildconfigspec('net_legacy', '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..0ab47c0bde5 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')
> -@pytest.mark.buildconfigspec('net', 'net_lwip')
> +@pytest.mark.buildconfigspec('net_legacy', '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')
> -@pytest.mark.buildconfigspec('net', 'net_lwip')
> +@pytest.mark.buildconfigspec('net_legacy', '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..4f899530060 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
>
> -@pytest.mark.buildconfigspec('net', 'net_lwip')
> +@pytest.mark.buildconfigspec('net_legacy', 'net_lwip')
> def test_net_setup_static(ubman):
> """Set up a static IP configuration.
>
>
> --
> 2.53.0
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config)
2026-04-20 20:24 ` Heinrich Schuchardt
@ 2026-04-21 8:37 ` Quentin Schulz
2026-04-21 10:31 ` Heinrich Schuchardt
0 siblings, 1 reply; 22+ messages in thread
From: Quentin Schulz @ 2026-04-21 8:37 UTC (permalink / raw)
To: Heinrich Schuchardt, Quentin Schulz, u-boot, uboot-stm32,
Paul Barker
Cc: Tom Rini, Jerome Forissier, Marek Vasut, Ilias Apalodimas,
Peng Fan, Udit Kumar, Alvin Šipraga, Patrick Delaunay,
Patrice Chotard, Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey,
Mingkai Hu, Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka,
Kongyang Liu, Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary, Simon Glass,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang
Hi Heinrich,
On 4/20/26 10:24 PM, Heinrich Schuchardt wrote:
> Am 20. April 2026 13:36:09 MESZ schrieb Quentin Schulz <foss+uboot@0leil.net>:
>> From: Quentin Schulz <quentin.schulz@cherry.de>
>>
>> This will allow a bunch of simplifications across the code base.
>> Disabling NET is the equivalent of today's NO_NET choice. This means
>> that if NET is enabled, either the legacy or lwIP stack is necessarily
>> selected, which allows us to simplify if NET_LEGACY || NET_LWIP into
>> if NET in a later commit.
>>
>> Config fragments - or defconfigs including other defconfigs - setting
>> the network stack (NET_LEGACY or NET_LWIP) must also set NET (or unset
>> NO_NET) if the config they apply to - or the included defconfigs -
>> unsets NET (or selects NO_NET) as otherwise the NET_LEGACY and NET_LWIP
>> symbols are unreachable. This is the case for the two defconfig modified
>> in this commit.
>>
>> NO_NET is now a convenience symbol which hides NET entirely to avoid
>> modifying many defconfigs. If one selected NO_NET to disable the
>> networking stack in the past, this will still work for now. Technically,
>> we should be using the "transitional" Kconfig attribute but that is only
>> available since Kconfig from Linux kernel v6.18 and we're on 6.1 right
>> now.
>>
>> Note that this moves CONFIG_SYS_RX_ETH_BUFFER from under the Network
>> menu back into the main menu as it seems like it needs to be defined
>> even when there's no need for NET support at all and menuconfig option
>> doesn't work the same way as a menu.
>>
>> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>> ---
>>
>> I'd say we should have everything net-related depends on NET as well,
>> so that disabling networking support with NET=n is also disabling
>> anything related (e.g. Ethernet controller and PHY drivers, USB
>> Ethernet, USB gadget CDC/RNDIS, network CLI commands, etc.).
>> ---
>> configs/am62px_evm_r5_ethboot_defconfig | 2 +-
>> configs/j722s_evm_r5_ethboot_defconfig | 2 +-
>> net/Kconfig | 23 ++++++++++++-----------
>> 3 files changed, 14 insertions(+), 13 deletions(-)
>>
>> diff --git a/configs/am62px_evm_r5_ethboot_defconfig b/configs/am62px_evm_r5_ethboot_defconfig
>> index 8baec9d43ff..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_LEGACY=y
>> +# CONFIG_NO_NET is not set
>
> Does this imply that NET_LEGACY is the default? Choosing LEGACY as default would not be plausible to me. We should use LWIP as default. Then every new board will use it, hopefully.
>
(below, "current" means the value in master branch, so before this
series is applied).
(current) CONFIG_NET is the default already, see
https://source.denx.de/u-boot/u-boot/-/blob/master/Kconfig#L794-L824.
This series does not aim to change anything but the name of the symbols.
Yes, we could make NET_LWIP the new default stack, but not in this
series. Also, we have an issue that if you enable SPL_NET you need the
legacy stack, even in proper (according to
https://source.denx.de/u-boot/u-boot/-/blob/master/common/spl/Kconfig#L1152-L1154).
So we would need to tackle this first (we don't necessarily need to
support lwIP in SPL, just that the choice in SPL shouldn't impact the
choice in proper).
If you're asking about this defconfig specifically, it's simply because
it is not a typical defconfig. It includes
configs/am62px_evm_r5_defconfig which sets CONFIG_NO_NET=y. Because
NO_NET used to (before this series) be a choice with (current) NET and
NET_LWIP, am62px_evm_r5_ethboot_defconfig needed to override it with
another choice, namely (current) NET. Because NET_LEGACY is
automatically selected when NO_NET is unset (due to NET default y), we
only need to unset NO_NET in configs/am62px_evm_r5_ethboot_defconfig to
restore the current state of enabling the legacy stack (current NET, now
NET_LEGACY). This is not changing anything, just moving things around.
Does this answer your question?
Cheers,
Quentin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/6] rename NET to NET_LEGACY
2026-04-20 19:42 ` Simon Glass
@ 2026-04-21 10:16 ` Quentin Schulz
0 siblings, 0 replies; 22+ messages in thread
From: Quentin Schulz @ 2026-04-21 10:16 UTC (permalink / raw)
To: Simon Glass, foss+uboot
Cc: u-boot, uboot-stm32, Paul Barker, Tom Rini, Jerome Forissier,
Heinrich Schuchardt, Marek Vasut, Ilias Apalodimas, Peng Fan,
Udit Kumar, Alvin Šipraga, Patrick Delaunay, Patrice Chotard,
Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey, Mingkai Hu,
Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka, Kongyang Liu,
Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang
Hi Simon,
On 4/20/26 9:42 PM, Simon Glass wrote:
> Hi Quentin,
>
> On 2026-04-20T11:36:06, Quentin Schulz <foss+uboot@0leil.net> wrote:
>> rename NET to NET_LEGACY
>>
>> Highlight that NET really is the legacy networking stack by renaming the
>> option to NET_LEGACY.
>>
>> This requires us to add an SPL_NET_LEGACY alias to SPL_NET as otherwise
>> CONFIG_IS_ENABLED(NET_LEGACY) will not work for SPL.
>>
>> The "depends on !NET_LWIP" for SPL_NET clearly highlights that it is
>> using the legacy networking app so this seems fine to do.
>>
>> This also has the benefit of removing potential confusion on NET being a
>> specific networking stack instead of 'any' network stack.
>>
>> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>
>> diff --git 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
>> -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
>
> Shouldn't this be left alone? Or perhaps restored in patch 4?
>
> BOOTSTD_DEFAULTS selects BOOT_DEFAULTS which enables network commands
> conditionally on !NO_NET, meaning any network stack.
>
This patch series is about renaming stuff, not fixing stuff (though you
can see some trivial "fixes" in patch 5 and 6).
I agree with you that this needs to be switched to (new) CONFIG_NET.
I'll try to not forget adding it to a v2 (as a separate patch) if
there's a need for one, or send a follow-up patch.
>> diff --git a/cmd/ufetch.c b/cmd/ufetch.c
>> @@ -159,7 +159,7 @@ static int do_ufetch(struct cmd_tbl *cmdtp, int flag, int argc,
>> - if (IS_ENABLED(CONFIG_NET))
>> + if (IS_ENABLED(CONFIG_NET_LEGACY))
>> printf('Net');
>
> Similar question here.
>
See above.
>> diff --git a/board/siemens/iot2050/board.c b/board/siemens/iot2050/board.c
>> @@ -232,7 +232,7 @@ void set_board_info_env(void)
>> - if (IS_ENABLED(CONFIG_NET)) {
>> + if (IS_ENABLED(CONFIG_NET_LEGACY)) {
>
> and here
>
See above. This one seems ok, but I am not really planning to modify
individual boards that I cannot test. This change would mean in a way
that CONFIG_NET_LWIP has been tested with that board, which possibly
isn't the case and I cannot guarantee that either.
Cheers,
Quentin
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config)
2026-04-21 8:37 ` Quentin Schulz
@ 2026-04-21 10:31 ` Heinrich Schuchardt
0 siblings, 0 replies; 22+ messages in thread
From: Heinrich Schuchardt @ 2026-04-21 10:31 UTC (permalink / raw)
To: Quentin Schulz, Quentin Schulz, u-boot, uboot-stm32, Paul Barker
Cc: Tom Rini, Jerome Forissier, Marek Vasut, Ilias Apalodimas,
Peng Fan, Udit Kumar, Alvin Šipraga, Patrick Delaunay,
Patrice Chotard, Adam Ford, Manoj Sai, Matteo Lisi, Tim Harvey,
Mingkai Hu, Pramod Kumar, Gilles Talis, Le Jin, Jan Kiszka,
Kongyang Liu, Stefan Roese, Francesco Dolcini, Michal Simek,
Mattijs Korpershoek, Casey Connolly, Vignesh Raghavendra,
Bryan Brattlof, Vaishnav Achath, Jayesh Choudhary, Simon Glass,
Lukasz Majewski, Marek Vasut, Sughosh Ganu, Yao Zi, Fabio Estevam,
Alice Guo, Sam Protsenko, Martyn Welch, Maarten Brock,
Kory Maincent, Markus Schneider-Pargmann (TI.com),
Padmarao Begari, Matthias Brugger, Mikhail Kshevetskiy,
Heiko Schocher, Andrew Goodbody, Peter Robinson, Brian Sune,
Julien Stephan, Dinesh Maniyam, Ben Dooks, Tien Fong Chee,
Leo Yu-Chi Liang, Weijie Gao, Anshul Dalal, Neil Armstrong,
Andre Przywara, Andrew Davis, Hrushikesh Salunke, Alexey Charkov,
Dario Binacchi, Ye Li, Andreas Dannenberg, Chintan Vankar,
Martin Schwan, Benjamin Hahn, David Lechner,
Ariel D'Alessandro, Dmitrii Merkurev, Christian Marangi,
Robert Marko, Beiyan Yun, Lucien.Jheng, Romain Gantois,
Siddharth Vadapalli, Kever Yang, Jonas Karlman, George Chan,
Balaji Selvanathan, Benjamin ROBIN, Max Merchel, Sean Edmond,
Christoph Niedermaier, Shantur Rathore, Ying-Chun Liu (PaulLiu),
Adriano Cordova, Sky Huang
Am 21. April 2026 10:37:54 MESZ schrieb Quentin Schulz <quentin.schulz@cherry.de>:
>Hi Heinrich,
>
>On 4/20/26 10:24 PM, Heinrich Schuchardt wrote:
>> Am 20. April 2026 13:36:09 MESZ schrieb Quentin Schulz <foss+uboot@0leil.net>:
>>> From: Quentin Schulz <quentin.schulz@cherry.de>
>>>
>>> This will allow a bunch of simplifications across the code base.
>>> Disabling NET is the equivalent of today's NO_NET choice. This means
>>> that if NET is enabled, either the legacy or lwIP stack is necessarily
>>> selected, which allows us to simplify if NET_LEGACY || NET_LWIP into
>>> if NET in a later commit.
>>>
>>> Config fragments - or defconfigs including other defconfigs - setting
>>> the network stack (NET_LEGACY or NET_LWIP) must also set NET (or unset
>>> NO_NET) if the config they apply to - or the included defconfigs -
>>> unsets NET (or selects NO_NET) as otherwise the NET_LEGACY and NET_LWIP
>>> symbols are unreachable. This is the case for the two defconfig modified
>>> in this commit.
>>>
>>> NO_NET is now a convenience symbol which hides NET entirely to avoid
>>> modifying many defconfigs. If one selected NO_NET to disable the
>>> networking stack in the past, this will still work for now. Technically,
>>> we should be using the "transitional" Kconfig attribute but that is only
>>> available since Kconfig from Linux kernel v6.18 and we're on 6.1 right
>>> now.
>>>
>>> Note that this moves CONFIG_SYS_RX_ETH_BUFFER from under the Network
>>> menu back into the main menu as it seems like it needs to be defined
>>> even when there's no need for NET support at all and menuconfig option
>>> doesn't work the same way as a menu.
>>>
>>> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>>> ---
>>>
>>> I'd say we should have everything net-related depends on NET as well,
>>> so that disabling networking support with NET=n is also disabling
>>> anything related (e.g. Ethernet controller and PHY drivers, USB
>>> Ethernet, USB gadget CDC/RNDIS, network CLI commands, etc.).
>>> ---
>>> configs/am62px_evm_r5_ethboot_defconfig | 2 +-
>>> configs/j722s_evm_r5_ethboot_defconfig | 2 +-
>>> net/Kconfig | 23 ++++++++++++-----------
>>> 3 files changed, 14 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/configs/am62px_evm_r5_ethboot_defconfig b/configs/am62px_evm_r5_ethboot_defconfig
>>> index 8baec9d43ff..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_LEGACY=y
>>> +# CONFIG_NO_NET is not set
>>
>> Does this imply that NET_LEGACY is the default? Choosing LEGACY as default would not be plausible to me. We should use LWIP as default. Then every new board will use it, hopefully.
>>
>
>(below, "current" means the value in master branch, so before this series is applied).
>
>(current) CONFIG_NET is the default already, see https://source.denx.de/u-boot/u-boot/-/blob/master/Kconfig#L794-L824. This series does not aim to change anything but the name of the symbols. Yes, we could make NET_LWIP the new default stack, but not in this series. Also, we have an issue that if you enable SPL_NET you need the legacy stack, even in proper (according to https://source.denx.de/u-boot/u-boot/-/blob/master/common/spl/Kconfig#L1152-L1154). So we would need to tackle this first (we don't necessarily need to support lwIP in SPL, just that the choice in SPL shouldn't impact the choice in proper).
>
>If you're asking about this defconfig specifically, it's simply because it is not a typical defconfig. It includes configs/am62px_evm_r5_defconfig which sets CONFIG_NO_NET=y. Because NO_NET used to (before this series) be a choice with (current) NET and NET_LWIP, am62px_evm_r5_ethboot_defconfig needed to override it with another choice, namely (current) NET. Because NET_LEGACY is automatically selected when NO_NET is unset (due to NET default y), we only need to unset NO_NET in configs/am62px_evm_r5_ethboot_defconfig to restore the current state of enabling the legacy stack (current NET, now NET_LEGACY). This is not changing anything, just moving things around.
>
>Does this answer your question?
>
>Cheers,
>Quentin
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [0/6] net: migrate NO_NET out of the networking stack choice
2026-04-20 19:51 ` [0/6] net: migrate NO_NET out of the networking stack choice Simon Glass
@ 2026-04-21 11:06 ` Quentin Schulz
0 siblings, 0 replies; 22+ messages in thread
From: Quentin Schulz @ 2026-04-21 11:06 UTC (permalink / raw)
To: Simon Glass, foss+uboot; +Cc: u-boot
Hi Simon,
On 4/20/26 9:51 PM, Simon Glass wrote:
> Hi Quentin,
>
> On 2026-04-20T11:36:06, Quentin Schulz <foss+uboot@0leil.net> wrote:
>
>> This series introduces a new NET umbrella symbol with NET_LEGACY and NET_LWIP underneath.
>
> Thanks for this cleanup!
>
> Re SYS_RX_ETH_BUFFER, how about moving the extern for net_rx_packets[]
> to net-legacy.h ? (is it used with lwip?)
>
That's not the only thing making use of SYS_RX_ETH_BUFFER.
- drivers/net/fsl_enetc.h uses it as value for ENETC_BD_CNT which is
used in drivers/net/fsl_enetc.c,
- drivers/net/rtl8169.c uses it (if defined, otherwise defaults to 4) to
create a static buffer, see NUM_RX_DESC,
- include/net-common.h sets PKTBUFSRX to it, this in turn is used in
*many* places, including many network (assumed Ethernet controller)
drivers, net/lwip/net-lwip.c, net/net-common.c (with net_rx_packets
array, used all over the place), net/net.c, and net/tcp.c.
So seems to be used for both NET_LEGACY and NET_LWIP.
Simply guarding the "#include <net-common.h>" with
CONFIG_IS_ENABLED(NET) won't do as many files currently expect some
functions/macros/constants from that header to be defined.
Another option is to ifdef PKTBUFSRX contant and net_rx_packets array in
include/net-common.h. But it's used in arch/sandbox/include/asm/eth.h
and drivers/dma/ti/k3-udma.c which aren't clearly dpeending on NET being
set. All defconfigs enabling CONFIG_TI_K3_NAVSS_UDMA do not modify the
default CONFIG_SYS_RX_ETH_BUFFER which is 4 (according to
./tools/qconfig.py -l -f CONFIG_TI_K3_NAVSS_UDMA
'~CONFIG_SYS_RX_ETH_BUFFER=4') so it should be fine for this driver not
to have PKTBUFSRX defined (as UDMA_RX_DESC_NUM will then default to 4).
According to ./tools/qconfig.py -l -f CONFIG_SANDBOX CONFIG_NO_NET, all
sandbox defconfigs have network enabled so maybe
arch/sandbox/include/asm/eth.h is not an issue either (or rather, for
later :) ).
With
diff --git a/include/net-common.h b/include/net-common.h
index 69b6316c1ec..0c260873c2c 100644
--- a/include/net-common.h
+++ b/include/net-common.h
@@ -20,7 +20,9 @@
* alignment in memory.
*
*/
+#if CONFIG_IS_ENABLED(NET)
#define PKTBUFSRX CONFIG_SYS_RX_ETH_BUFFER
+#endif
#define PKTALIGN ARCH_DMA_MINALIGN
/* IPv4 addresses are always 32 bits in size */
@@ -132,7 +134,9 @@ static inline void net_set_state(enum net_loop_state
state)
}
extern int net_restart_wrap; /* Tried all network devices */
+#if CONFIG_IS_ENABLED(NET)
extern uchar *net_rx_packets[PKTBUFSRX]; /* Receive packets */
+#endif
extern const u8 net_bcast_ethaddr[ARP_HLEN]; /* Ethernet broadcast
address */
extern struct in_addr net_ip; /* Our IP addr (0 = unknown) */
/* Indicates whether the pxe path prefix / config file was specified
in dhcp option */
diff --git a/net/Kconfig b/net/Kconfig
index e712a0dd2ac..deab340f26b 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -279,8 +279,6 @@ config TFTP_BLOCKSIZE
almost-MTU block sizes.
You can also activate CONFIG_IP_DEFRAG to set a larger block.
-endif # if NET
-
config SYS_RX_ETH_BUFFER
int "Number of receive packet buffers"
default 4
@@ -289,3 +287,6 @@ config SYS_RX_ETH_BUFFER
controllers it is recommended to set this value to 8 or even
higher,
since all buffers can be full shortly after enabling the
interface on
high Ethernet traffic.
+
+endif # if NET
+
And building sandbox_defconfig with CONFIG_NO_NET=y, the build finishes
without any issue. So maybe that's the way forward? I think this would
be better as a separate series though, what do you think?
Cheers,
Quentin
^ permalink raw reply related [flat|nested] 22+ messages in thread
end of thread, other threads:[~2026-04-21 12:38 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-20 11:36 [PATCH 0/6] net: migrate NO_NET out of the networking stack choice Quentin Schulz
2026-04-20 11:36 ` [PATCH 1/6] move networking menu in net/Kconfig Quentin Schulz
2026-04-20 19:40 ` Simon Glass
2026-04-21 5:17 ` Ilias Apalodimas
2026-04-20 11:36 ` [PATCH 2/6] rename NET to NET_LEGACY Quentin Schulz
2026-04-20 19:42 ` Simon Glass
2026-04-21 10:16 ` Quentin Schulz
2026-04-21 5:17 ` Ilias Apalodimas
2026-04-20 11:36 ` [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config) Quentin Schulz
2026-04-20 19:42 ` Simon Glass
2026-04-20 20:24 ` Heinrich Schuchardt
2026-04-21 8:37 ` Quentin Schulz
2026-04-21 10:31 ` Heinrich Schuchardt
2026-04-20 11:36 ` [PATCH 4/6] simplify NET_LEGACY || NET_LWIP condition with NET condition Quentin Schulz
2026-04-20 19:42 ` Simon Glass
2026-04-20 11:36 ` [PATCH 5/6] doc: remove mention to non-existing TPL_NET Quentin Schulz
2026-04-20 19:42 ` Simon Glass
2026-04-20 11:36 ` [PATCH 6/6] boot: remove NO_NET use Quentin Schulz
2026-04-20 19:43 ` Simon Glass
2026-04-21 5:16 ` Ilias Apalodimas
2026-04-20 19:51 ` [0/6] net: migrate NO_NET out of the networking stack choice Simon Glass
2026-04-21 11:06 ` Quentin Schulz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox