public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [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
                   ` (8 more replies)
  0 siblings, 9 replies; 26+ 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] 26+ messages in thread

end of thread, other threads:[~2026-04-22  2:42 UTC | newest]

Thread overview: 26+ 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 22: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
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
2026-04-22  1:15     ` Simon Glass
2026-04-21 15:47 ` [PATCH 0/6] " Tom Rini
2026-04-21 21:05 ` Peter Robinson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox