Merge patch series "net: migrate NO_NET out of the networking stack choice"

Quentin Schulz <foss+uboot@0leil.net> says:

This migrates the net options away from the main Kconfig to net/Kconfig,
rename the current NET option to NET_LEGACY to really highlight what it
is and hopefully encourage more people to use lwIP, add a new NET
menuconfig (but keep NO_NET as an alias to NET=n for now) which then
allows us to replace all the "if legacy_stack || lwip_stack" checks with
"if net_support" which is easier to read and maintain.

The only doubt I have is wrt SYS_RX_ETH_BUFFER which seems to be needed
for now even when no network is configured? Likely due to
include/net-common.h with PKTBUFSRX?

No change in behavior is intended. Only change in defconfig including
other defconfigs where NO_NET=y or NET is not set, in which case NO_NET
is not set or NET=y should be set in the top defconfig. Similar change
required for config fragments. See commit log in patch adding NET
menuconfig for details.

This was tested based on 70fd0c3bb7c2 ("x86: there is no
CONFIG_UBOOT_ROMSIZE_KB_12288"), from within the GitLab CI container
trini/u-boot-gitlab-ci-runner:noble-20251013-23Jan2026 and set up
similarly as in "build all platforms in a single job" GitLab CI job.

 #!/usr/bin/env bash
 set -o pipefail
 set -eux

 ARGS="-BvelPEWM --reproducible-builds --step 0"
 ./tools/buildman/buildman -o ${O} --force-build $ARGS -CE $*
 ./tools/buildman/buildman -o ${O} $ARGS -Ssd $*

O=../build/u-boot/ ../u-boot.sh -b master^..b4/net-kconfig |& tee ../log.txt

I can't really decipher the log.txt, but there's no line starting with
+ which would be an error according to tools/buildman/builder.py help
text. Additionally, because I started the script with set -e set and
because buildman has an exit code != 0 when it fails to build a board,
and I have the summary printed (which is the second buildman call), I
believe it means all builds passed.

The summary is the following:
   aarch64: (for 537/537 boards) all +0.0 rodata +0.0
            uniphier_v8    : all +1 rodata +1
               u-boot: add: 0/0, grow: 1/0 bytes: 1/0 (1)
                 function                                   old     new   delta
                 data_gz                                  10640   10641      +1
       arm: (for 733/733 boards) all -0.0 rodata -0.0
            uniphier_v7    : all -1 rodata -1
               u-boot: add: 0/0, grow: 0/-1 bytes: 0/-1 (-1)
                 function                                   old     new   delta
                 data_gz                                  11919   11918      -1
            opos6uldev     : all -3 rodata -3
               u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3)
                 function                                   old     new   delta
                 data_gz                                  18778   18775      -3
            uniphier_ld4_sld8: all -3 rodata -3
               u-boot: add: 0/0, grow: 0/-1 bytes: 0/-3 (-3)
                 function                                   old     new   delta
                 data_gz                                  11276   11273      -3
            stemmy         : all -20 rodata -20
               u-boot: add: 0/0, grow: 0/-1 bytes: 0/-20 (-20)
                 function                                   old     new   delta
                 data_gz                                  15783   15763     -20

As far as I could tell this data_gz is an automatically generated array
when CONFIG_CMD_CONFIG is enabled. It is the compressed .config stored
in binary form. Because I'm changing the name of symbols, replacing a
menu with a menuconfig, additional text makes it to .config and the
"# Networking" section in .config disappears.

Here is the diff for the 5 defconfigs listed above, generated with:

for f in build/*-m; do
	diff --unified=0 $f/.config $(dirname $f)/$(basename -a -s '-m' $f)/.config
done

(-m is the build directory for master, and without the suffix, it's the
top commit of this series)

"""
 --- build/opos6uldev-m/.config	2026-04-20 10:53:49.804528526 +0200
 +++ build/opos6uldev/.config	2026-04-20 11:03:37.430242767 +0200
 @@ -970,4 +969,0 @@
 -
 -#
 -# Networking
 -#
 @@ -975,0 +972 @@
 +CONFIG_NET_LEGACY=y
 --- build/stemmy-m/.config	2026-04-20 11:01:33.653698123 +0200
 +++ build/stemmy/.config	2026-04-20 11:04:53.452577311 +0200
 @@ -733,4 +732,0 @@
 -
 -#
 -# Networking
 -#
 @@ -738,2 +733,0 @@
 -# CONFIG_NET is not set
 -# CONFIG_NET_LWIP is not set
 --- build/uniphier_ld4_sld8-m/.config	2026-04-20 11:00:41.605469071 +0200
 +++ build/uniphier_ld4_sld8/.config	2026-04-20 11:04:22.226439899 +0200
 @@ -997,4 +996,0 @@
 -
 -#
 -# Networking
 -#
 @@ -1002,0 +999 @@
 +CONFIG_NET_LEGACY=y
 --- build/uniphier_v7-m/.config	2026-04-20 10:53:04.019307319 +0200
 +++ build/uniphier_v7/.config	2026-04-20 11:03:01.688085486 +0200
 @@ -1004,4 +1003,0 @@
 -
 -#
 -# Networking
 -#
 @@ -1009,0 +1006 @@
 +CONFIG_NET_LEGACY=y
 --- build/uniphier_v8-m/.config	2026-04-20 10:43:05.614441175 +0200
 +++ build/uniphier_v8/.config	2026-04-20 10:41:03.214852130 +0200
 @@ -875,4 +874,0 @@
 -
 -#
 -# Networking
 -#
 @@ -880,0 +877 @@
 +CONFIG_NET_LEGACY=y
"""

This is fine:
- Networking menu doesn't exist anymore so "#\n# Networking\n#\n" won't
  be in .config anymore.
- opos6uldev, uniphier_ld4_sld8, uniphier_v7 and uniphier_v8 all have
  (old) CONFIG_NET enabled, (new) CONFIG_NET will still be set but
  CONFIG_NET_LEGACY also needs to be defined now to reflect the stack
  choice (even if default),
- stemmy has CONFIG_NO_NET set, which means CONFIG_NET and
  CONFIG_NET_LWIP are not reachable anymore hence why they don't need to
  be part of .config,

GitLab CI was run on this series (well, not exactly, but it's only
changes to the git logs that were made):
https://source.denx.de/u-boot/contributors/qschulz/u-boot/-/pipelines/29849

It passes.

Link: https://lore.kernel.org/r/20260420-net-kconfig-v1-0-9900002d8e72@cherry.de
This commit is contained in:
Tom Rini 2026-04-27 11:28:25 -06:00
commit 96c8b9c4ce
60 changed files with 139 additions and 138 deletions

34
Kconfig
View File

@ -803,42 +803,8 @@ source "dts/Kconfig"
source "env/Kconfig"
menu "Networking"
choice
prompt "Networking stack"
default NET
config NO_NET
bool "No networking support"
help
Do not include networking support
config NET
bool "Legacy U-Boot networking stack"
select NETDEVICES
help
Include networking support with U-Boot's internal implementation of
the TCP/IP protocol stack.
config NET_LWIP
bool "Use lwIP for networking stack"
select NETDEVICES
help
Include networking support based on the lwIP (lightweight IP)
TCP/IP stack (https://nongnu.org/lwip). This is a replacement for
the default U-Boot network stack and applications located in net/
and enabled via CONFIG_NET as well as other pieces of code that
depend on CONFIG_NET (such as cmd/net.c enabled via CONFIG_CMD_NET).
Therefore the two symbols CONFIG_NET and CONFIG_NET_LWIP are mutually
exclusive.
endchoice
source "net/Kconfig"
endmenu
source "drivers/Kconfig"
source "fs/Kconfig"

View File

@ -1081,7 +1081,7 @@ libs-$(CONFIG_OF_EMBED) += dts/
libs-y += env/
libs-y += lib/
libs-y += fs/
libs-$(filter y,$(CONFIG_NET) $(CONFIG_NET_LWIP)) += net/
libs-$(CONFIG_NET) += net/
libs-y += disk/
libs-y += drivers/
libs-$(CONFIG_SYS_FSL_DDR) += drivers/ddr/fsl/
@ -1373,7 +1373,7 @@ expect = $(foreach cfg,$(1),y)
# 1: List of options to migrate to (e.g. "CONFIG_DM_MMC CONFIG_BLK")
# 2: Name of component (e.g . "Ethernet drivers")
# 3: Release deadline (e.g. "v202.07")
# 4: Condition to require before checking (e.g. "$(CONFIG_NET)")
# 4: Condition to require before checking (e.g. "$(CONFIG_NET_LEGACY)")
# Note: Script avoids bash construct, hence the strange double 'if'
# (patches welcome!)
define deprecated

View File

@ -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();

View File

@ -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)

View File

@ -30,7 +30,7 @@ static void setup_fec(void)
setbits_le32(&gpr->gpr[1], BIT(22));
}
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
int board_phy_config(struct phy_device *phydev)
{
if (phydev->drv->config)

View File

@ -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)
{

View File

@ -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

View File

@ -4,4 +4,4 @@
obj-y += ddr.o
obj-y += ls1046afrwy.o
obj-$(CONFIG_NET) += eth.o
obj-$(CONFIG_NET_LEGACY) += eth.o

View File

@ -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

View File

@ -26,7 +26,7 @@ static void setup_fec(void)
setbits_le32(&gpr->gpr[1], BIT(22));
}
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
int board_phy_config(struct phy_device *phydev)
{
if (phydev->drv->config)

View File

@ -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);

View File

@ -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

View File

@ -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;

View File

@ -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 */

View File

@ -911,7 +911,7 @@ int board_late_init(void)
#endif
/* CPSW plat */
#if (CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)) && \
#if CONFIG_IS_ENABLED(NET) && \
!CONFIG_IS_ENABLED(OF_CONTROL)
struct cpsw_slave_data slave_data[] = {
{

View File

@ -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)

View File

@ -508,8 +508,7 @@ int board_late_init_xilinx(void)
ret |= env_set_by_index("uuid", id, uuid);
}
if (!(CONFIG_IS_ENABLED(NET) ||
CONFIG_IS_ENABLED(NET_LWIP)))
if (!CONFIG_IS_ENABLED(NET))
continue;
for (i = 0; i < EEPROM_HDR_NO_OF_MAC_ADDR; i++) {

View File

@ -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

View File

@ -1954,7 +1954,7 @@ config CMD_XXD
endmenu
if NET || NET_LWIP
if NET
menuconfig CMD_NET
bool "Network commands"
@ -1962,7 +1962,7 @@ menuconfig CMD_NET
if CMD_NET
if NET
if NET_LEGACY
config CMD_BOOTP
bool "bootp"
@ -2206,12 +2206,12 @@ config CMD_WOL
help
Wait for wake-on-lan Magic Packet
endif # if NET
endif # if NET_LEGACY
config CMD_DHCP
bool "dhcp"
select PROT_DHCP_LWIP if NET_LWIP
select CMD_BOOTP if NET
select CMD_BOOTP if NET_LEGACY
help
Boot image via network using DHCP/TFTP protocol
@ -2267,7 +2267,7 @@ config CMD_PING
config CMD_SNTP
bool "sntp"
select PROT_UDP if NET
select PROT_UDP if NET_LEGACY
select PROT_UDP_LWIP if NET_LWIP
help
Synchronize RTC via network
@ -2337,7 +2337,7 @@ config CMD_PXE
endif # if CMD_NET
endif # NET || NET_LWIP
endif # NET
menu "Misc commands"

View File

@ -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

View File

@ -152,7 +152,7 @@ static int bdinfo_print_all(struct bd_info *bd)
bdinfo_print_num_l("relocaddr", gd->relocaddr);
bdinfo_print_num_l("reloc off", gd->reloc_off);
printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8);
if (IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP))
if (IS_ENABLED(CONFIG_NET))
print_eth();
bdinfo_print_num_l("fdt_blob", (ulong)map_to_sysmem(gd->fdt_blob));
if (IS_ENABLED(CONFIG_VIDEO))
@ -194,8 +194,7 @@ int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
case 'a':
return bdinfo_print_all(bd);
case 'e':
if (!IS_ENABLED(CONFIG_NET) &&
!IS_ENABLED(CONFIG_NET_LWIP))
if (!IS_ENABLED(CONFIG_NET))
return CMD_RET_USAGE;
print_eth();
return CMD_RET_SUCCESS;
@ -221,7 +220,7 @@ U_BOOT_CMD(
" - print all Board Info structure"
#if CONFIG_IS_ENABLED(GETOPT)
"\n"
#if IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP)
#if IS_ENABLED(CONFIG_NET)
"bdinfo -e\n"
" - print Board Info related to network\n"
#endif

View File

@ -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"))

View File

@ -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");

View File

@ -425,7 +425,7 @@ config LOGF_FUNC_PAD
config LOG_SYSLOG
bool "Log output to syslog server"
depends on NET || NET_LWIP
depends on NET
help
Enables a log driver which broadcasts log records via UDP port 514
to syslog servers.

View File

@ -495,7 +495,7 @@ static int initr_boot_led_on(void)
return 0;
}
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
static int initr_net(void)
{
puts("Net: ");
@ -760,7 +760,7 @@ static void initcall_run_r(void)
#if CONFIG_IS_ENABLED(PCI_ENDPOINT)
INITCALL(pci_ep_init);
#endif
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
WATCHDOG_RESET();
INITCALL(initr_net);
#endif

View File

@ -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

View File

@ -5,7 +5,7 @@ CONFIG_ARCH_K3=y
CONFIG_SOC_K3_AM62P5=y
CONFIG_TARGET_AM62P5_R5_EVM=y
CONFIG_DEFAULT_DEVICE_TREE="k3-am62p5-r5-sk"
CONFIG_NET=y
# CONFIG_NO_NET is not set
CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_DMA=y
CONFIG_SPL_ENV_SUPPORT=y

View File

@ -5,7 +5,7 @@ CONFIG_ARCH_K3=y
CONFIG_SOC_K3_J722S=y
CONFIG_TARGET_J722S_R5_EVM=y
CONFIG_DEFAULT_DEVICE_TREE="k3-j722s-r5-evm"
CONFIG_NET=y
# CONFIG_NO_NET is not set
CONFIG_SPL_DRIVERS_MISC=y
CONFIG_SPL_BOARD_INIT=y
CONFIG_SPL_DMA=y

View File

@ -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

View File

@ -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``:

View File

@ -124,12 +124,12 @@ Build
current eth
name of the active network device
Only shown if CONFIG_NET=y or CONFIG_NET_LWIP=y.
Only shown if CONFIG_NET=y.
IP addr
network address, value of the environment variable *ipaddr*
Only shown if CONFIG_NET=y or CONFIG_NET_LWIP=y.
Only shown if CONFIG_NET=y.
fdt_blob
address of U-Boot's own device tree, NULL if none
@ -173,5 +173,4 @@ The bdinfo command is available if CONFIG_CMD_BDI=y.
The options to bdinfo are only available if CONFIG_GETOPT=y.
The ``-e`` option is additionally only available if CONFIG_NET=y or
CONFIG_NET_LWIP=y.
The ``-e`` option is additionally only available if CONFIG_NET=y.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -339,7 +339,7 @@ config ESSEDMA
config ETH_SANDBOX
depends on SANDBOX
depends on NET || NET_LWIP
depends on NET
default y
bool "Sandbox: Mocked Ethernet driver"
help
@ -350,7 +350,7 @@ config ETH_SANDBOX
config ETH_SANDBOX_RAW
depends on SANDBOX
depends on NET
depends on NET_LEGACY
default y
bool "Sandbox: Bridge to Linux Raw Sockets"
help
@ -476,7 +476,7 @@ config FTMAC100
config FTGMAC100
bool "Ftgmac100 Ethernet Support"
select PHYLIB
depends on NET
depends on NET_LEGACY
help
This driver supports the Faraday's FTGMAC100 Gigabit SoC
Ethernet controller that can be found on Aspeed SoCs (which

View File

@ -7,7 +7,7 @@ config MV88E6352_SWITCH
menuconfig PHYLIB
bool "Ethernet PHY (physical media interface) support"
depends on NET || NET_LWIP
depends on NET
help
Enable Ethernet PHY (physical media interface) support.
@ -381,7 +381,7 @@ config PHY_FIXED
config PHY_NCSI
bool "NC-SI based PHY"
depends on NET
depends on NET_LEGACY
endif #PHYLIB

View File

@ -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.

View File

@ -232,7 +232,7 @@ endif # USB_GADGET_DOWNLOAD
config USB_ETHER
bool "USB Ethernet Gadget"
depends on NET || NET_LWIP
depends on NET
default y if ARCH_SUNXI && USB_MUSB_GADGET
help
Creates an Ethernet network device through a USB peripheral

10
env/flags.c vendored
View File

@ -22,7 +22,7 @@
#include <env_internal.h>
#endif
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
#define ENV_FLAGS_NET_VARTYPE_REPS "im"
#else
#define ENV_FLAGS_NET_VARTYPE_REPS ""
@ -57,7 +57,7 @@ static const char * const env_flags_vartype_names[] = {
"decimal",
"hexadecimal",
"boolean",
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
"IP address",
"MAC address",
#endif
@ -211,7 +211,7 @@ static void skip_num(int hex, const char *value, const char **end,
*end = value;
}
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
int eth_validate_ethaddr_str(const char *addr)
{
const char *end;
@ -244,7 +244,7 @@ static int _env_flags_validate_type(const char *value,
enum env_flags_vartype type)
{
const char *end;
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
const char *cur;
int i;
#endif
@ -273,7 +273,7 @@ static int _env_flags_validate_type(const char *value,
if (value[1] != '\0')
return -1;
break;
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
case env_flags_vartype_ipaddr:
cur = value;
for (i = 0; i < 4; i++) {

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -32,7 +32,7 @@
#define DNS_CALLBACK
#endif
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
#define NET_CALLBACKS \
"bootfile:bootfile," \
"ipaddr:ipaddr," \

View File

@ -14,7 +14,7 @@ enum env_flags_vartype {
env_flags_vartype_decimal,
env_flags_vartype_hex,
env_flags_vartype_bool,
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
env_flags_vartype_ipaddr,
env_flags_vartype_macaddr,
#endif
@ -41,7 +41,7 @@ enum env_flags_varaccess {
#define CFG_ENV_FLAGS_LIST_STATIC ""
#endif
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
#ifdef CONFIG_REGEX
#define ETHADDR_WILDCARD "\\d*"
#else
@ -123,7 +123,7 @@ enum env_flags_varaccess env_flags_parse_varaccess(const char *flags);
*/
enum env_flags_varaccess env_flags_parse_varaccess_from_binflags(int binflags);
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
/*
* Check if a string has the format of an Ethernet MAC address
*/

View File

@ -235,7 +235,7 @@ int eth_rx(void); /* Check for received packets */
*/
void reset_phy(void);
#if CONFIG_IS_ENABLED(NET) || CONFIG_IS_ENABLED(NET_LWIP)
#if CONFIG_IS_ENABLED(NET)
/**
* eth_set_enable_bootdevs() - Enable or disable binding of Ethernet bootdevs
*
@ -485,7 +485,7 @@ int net_init(void);
/* Called when a network operation fails to know if it should be re-tried */
int net_start_again(void);
/* NET compatibility */
/* NET_LEGACY compatibility */
enum proto_t;
int net_loop(enum proto_t protocol);

View File

@ -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 **/

View File

@ -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

View File

@ -516,7 +516,7 @@ config EFI_RISCV_BOOT_PROTOCOL
config EFI_IP4_CONFIG2_PROTOCOL
bool "EFI_IP4_CONFIG2_PROTOCOL support"
default y if ARCH_QEMU || SANDBOX
depends on NET || NET_LWIP
depends on NET
help
Provides an implementation of the EFI_IP4_CONFIG2_PROTOCOL, this
protocol can be used to set and get the current ip address and
@ -609,7 +609,7 @@ config EFI_BOOTMGR
config EFI_HTTP_BOOT
bool "EFI HTTP Boot support"
depends on NET || NET_LWIP
depends on NET
select CMD_NET
select CMD_DHCP
select CMD_DNS

View File

@ -2,8 +2,45 @@
# Network configuration
#
config NO_NET
bool "Disable networking"
help
Transitional variable. Equivalent to setting NET=n.
menuconfig NET
bool "Networking"
depends on !NO_NET
default y
if NET
choice
prompt "Networking stack"
default NET_LEGACY
config NET_LEGACY
bool "Legacy U-Boot networking stack"
select NETDEVICES
help
Include networking support with U-Boot's internal implementation of
the TCP/IP protocol stack.
config NET_LWIP
bool "Use lwIP for networking stack"
select NETDEVICES
help
Include networking support based on the lwIP (lightweight IP)
TCP/IP stack (https://nongnu.org/lwip). This is a replacement for
the default U-Boot network stack and applications located in net/
and enabled via CONFIG_NET_LEGACY as well as other pieces of code that
depend on CONFIG_NET_LEGACY (such as cmd/net.c enabled via CONFIG_CMD_NET).
Therefore the two symbols CONFIG_NET_LEGACY and CONFIG_NET_LWIP are mutually
exclusive.
endchoice
if NET_LEGACY
config ARP_TIMEOUT
int "Milliseconds before trying ARP again"
default 5000
@ -195,12 +232,10 @@ config IPV6
ip6addr, serverip6. If a u-boot command is capable to parse an IPv6
address and find it, it will force using IPv6 in the network stack.
endif # if NET
endif # if NET_LEGACY
source "net/lwip/Kconfig"
if NET || NET_LWIP
config BOOTDEV_ETH
bool "Enable bootdev for ethernet"
depends on BOOTSTD
@ -228,7 +263,7 @@ config DNS
config WGET
bool "Enable wget"
select PROT_TCP if NET
select PROT_TCP if NET_LEGACY
select PROT_TCP_LWIP if NET_LWIP
help
Selecting this will enable wget, an interface to send HTTP requests
@ -244,7 +279,7 @@ config TFTP_BLOCKSIZE
almost-MTU block sizes.
You can also activate CONFIG_IP_DEFRAG to set a larger block.
endif # if NET || NET_LWIP
endif # if NET
config SYS_RX_ETH_BUFFER
int "Number of receive packet buffers"

View File

@ -5,9 +5,9 @@
#ccflags-y += -DDEBUG
ifeq ($(CONFIG_NET),y)
ifeq ($(CONFIG_NET_LEGACY),y)
obj-$(CONFIG_NET) += arp.o
obj-$(CONFIG_NET_LEGACY) += arp.o
obj-$(CONFIG_CMD_BOOTP) += bootp.o
obj-$(CONFIG_CMD_CDP) += cdp.o
obj-$(CONFIG_DNS) += dns.o
@ -37,7 +37,7 @@ CFLAGS_eth_common.o += -Wno-format-extra-args
endif
ifeq ($(filter y,$(CONFIG_NET) $(CONFIG_NET_LWIP)),y)
ifeq ($(CONFIG_NET),y)
obj-$(CONFIG_DM_DSA) += dsa-uclass.o
obj-$(CONFIG_$(PHASE_)DM_ETH) += eth-uclass.o
obj-$(CONFIG_$(PHASE_)BOOTDEV_ETH) += eth_bootdev.o

View File

@ -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

View File

@ -172,7 +172,7 @@ static int bdinfo_test_all(struct unit_test_state *uts)
ut_assertok(test_num_l(uts, "reloc off", gd->reloc_off));
ut_assert_nextline("%-12s= %u-bit", "Build", (uint)sizeof(void *) * 8);
if (IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP))
if (IS_ENABLED(CONFIG_NET))
ut_assertok(test_eth(uts));
/*
@ -314,7 +314,7 @@ static int bdinfo_test_help(struct unit_test_state *uts)
ut_assert_nextlinen("bdinfo -a");
ut_assert_nextlinen(" - print all Board Info structure");
if (CONFIG_IS_ENABLED(GETOPT)) {
if (IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP)) {
if (IS_ENABLED(CONFIG_NET)) {
ut_assert_nextlinen("bdinfo -e");
ut_assert_nextlinen(" - print Board Info related to network");
}
@ -348,7 +348,7 @@ static int bdinfo_test_eth(struct unit_test_state *uts)
ut_assertok(run_commandf("bdinfo -e"));
if (!CONFIG_IS_ENABLED(GETOPT))
ut_assertok(bdinfo_test_all(uts));
else if (IS_ENABLED(CONFIG_NET) || IS_ENABLED(CONFIG_NET_LWIP))
else if (IS_ENABLED(CONFIG_NET))
ut_assertok(test_eth(uts));
ut_assert_console_end();

View File

@ -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)
{

View File

@ -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)

View File

@ -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')
def test_efi_setup_static(ubman):
"""Set up the network using a static IP configuration.

View File

@ -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')
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')
def test_fpga_secure_bit_img_auth_kup(ubman):
test_net.test_net_dhcp(ubman)

View File

@ -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')
def test_net_setup_static(ubman):
"""Set up a static IP configuration.