From: Quentin Schulz <[email protected]>

When SPL_NET is included, scripts/Makefile.xpl includes net/. However,
in this directory, the Makefile only compiles things if CONFIG_NET or
CONFIG_NET_LWIP is defined (it doesn't use $(PHASE_)). Therefore, at
least one networking stack needs to be enabled for SPL_NET=y to do
anything meaningful.

In certain cases (e.g. am62px_evm_r5_ethboot_defconfig + NO_NET=y via
menuconfig), it is possible to fail the build with undefined references
(since include/net-common.h does check with CONFIG_IS_ENABLED(NET) which
would be true for SPL_NET, but the implementation wouldn't be compiled).

Fix this oversight by making sure a network stack (and the legacy one)
is available when selecting SPL_NET.

Fixes: 8cb330355bd5 ("net: introduce alternative implementation as net/lwip/")
Reviewed-by: Jerome Forissier <[email protected]>
Signed-off-by: Quentin Schulz <[email protected]>
---
I'm wondering if this is the proper fix... Maybe we should migrate
net/Makefile to use $(PHASE_) there instead? This would allow SPL_NET
(haven't checked the whole codebase, maybe we still have CONFIG_NET
checks instead of IS_ENABLED(NET) where we shouldn't) to build without
any network stack in proper (meaning that SPL_NET is selecting the
legacy networking stack for SPL only), and maybe even that would allow
us to have legacy stack in SPL and lwip stack in proper? This seems like
a much bigger task than this simple patch here.
---
Changes in v2:
- Added Rb from Jerome,
- Reworded commit log,
- Added question on whether this is the proper fix now that I spent a
  bit more time looking at it,
- Rebased on top of master,
- Link to v1: 
https://patch.msgid.link/[email protected]
---
 common/spl/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 4f4119f5806..c7db88345b4 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -1153,7 +1153,7 @@ config SPL_DM_SPI_FLASH
 
 config SPL_NET
        bool "Support networking"
-       depends on !NET_LWIP
+       depends on NET
        select SPL_USE_TINY_PRINTF_POINTER_SUPPORT if SPL_USE_TINY_PRINTF
        help
          Enable support for network devices (such as Ethernet) in SPL.

---
base-commit: 141be72e2a9d43aa4e3d1a6a6e0ab8f9eb8784c6
change-id: 20251218-spl_net-deps-62072f51243a

Best regards,
-- 
Quentin Schulz <[email protected]>

Reply via email to