Re: [PATCH 3/6] net: make NET a menuconfig (and downgrade NO_NET to a simple config)

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Apr 20 22:24:48 CEST 2026


Am 20. April 2026 13:36:09 MESZ schrieb Quentin Schulz <foss+uboot at 0leil.net>:
>From: Quentin Schulz <quentin.schulz at 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 at 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
>



More information about the U-Boot mailing list