Hi Heinrich, On Wed, 18 Oct 2023 at 06:55, Heinrich Schuchardt <xypron.g...@gmx.de> wrote: > > On 10/17/23 16:09, Tom Rini wrote: > > On Mon, Oct 16, 2023 at 04:28:13PM -0600, Simon Glass wrote: > > > >> Since efi_device_path.c calls eth_get_dev() and assumes that Ethernet is > >> available, add it as an explicit dependency. > >> > >> Signed-off-by: Simon Glass <s...@chromium.org> > >> --- > >> > >> (no changes since v2) > >> > >> Changes in v2: > >> - Add new patch to update EFI_LOADER to depend on DM_ETH > >> > >> lib/efi_loader/Kconfig | 1 + > >> 1 file changed, 1 insertion(+) > >> > >> diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig > >> index 13cad6342c36..fca4b3eef270 100644 > >> --- a/lib/efi_loader/Kconfig > >> +++ b/lib/efi_loader/Kconfig > >> @@ -11,6 +11,7 @@ config EFI_LOADER > >> # We need EFI_STUB_32BIT to be set on x86_32 with EFI_STUB > >> depends on !EFI_STUB || !X86 || X86_64 || EFI_STUB_32BIT > >> depends on BLK > >> + depends on DM_ETH > >> depends on !EFI_APP > >> default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8 > >> select CHARSET > > > > Does this work for you Heinrich, or do you want to clarify the > > dependencies (and re-organize the code as needed) around networking? > > > > We should be able to boot via EFI on devices without U-Boot network support. > > We already use IS_ENABLED(CONFIG_NETDEVICES) to avoid invoking > eth_get_dev() if there is no network. CONFIG_NETDEVICES=y selects > CONFIG_DM_ETH. > > Why is this not sufficient? > Is there a configuration that does not build?
The point of this series is to disable CMDLINE and fix up what breaks. In this case we have some sort of breakage...perhaps Tom has already found it, but otherwise could you take a look? We should be able to disable NET and LTO in sandbox and still build. But this fails at present[1]. You can try it on -master Regards, Simon [1] sjg@sjg1:~/u$ crosfw sandbox -L cmd: make -j4 'CROSS_COMPILE=' --no-print-directory 'HOSTSTRIP=true' 'QEMU_ARCH=' 'KCONFIG_NOSILENTUPDATE=1' 'O=/tmp/b/sandbox' 'NO_LTO=1' -s 'BUILD_ROM=1' all /usr/bin/ld: lib/efi_loader/efi_device_path.o: in function `efi_dp_from_eth': /home/sjg/c/src/third_party/u-boot/files/lib/efi_loader/efi_device_path.c:985:(.text+0xca4): undefined reference to `eth_get_dev' /usr/bin/ld: /home/sjg/c/src/third_party/u-boot/files/lib/efi_loader/efi_device_path.c:987:(.text+0xca9): undefined reference to `eth_get_dev' /usr/bin/ld: /home/sjg/c/src/third_party/u-boot/files/lib/efi_loader/efi_device_path.c:993:(.text+0xcc9): undefined reference to `eth_get_dev' collect2: error: ld returned 1 exit status make[1]: *** [/home/sjg/c/src/third_party/u-boot/files/Makefile:1765: u-boot] Error 1 make: *** [Makefile:177: sub-make] Error 2 sjg@sjg1:~/u$ crosfw sandbox sjg@sjg1:~/u$ (passes) 'crosfw xx' is just 'buildman --bo xxx' diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c index a92bb896c63e..4e9996a92342 100644 --- a/boot/pxe_utils.c +++ b/boot/pxe_utils.c @@ -48,7 +48,7 @@ int pxe_get_file_size(ulong *sizep) return 0; } - +#if 0 /** * format_mac_pxe() - obtain a MAC address in the PXE format * @@ -82,7 +82,7 @@ int format_mac_pxe(char *outbuf, size_t outbuf_len) return 1; } - +#endif /** * get_relfile() - read a file relative to the PXE file * diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig index 47417cb0391d..57bb6202dbb5 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -349,3 +349,4 @@ CONFIG_TEST_FDTDEC=y CONFIG_UNIT_TEST=y CONFIG_UT_TIME=y CONFIG_UT_DM=y +# CONFIG_NET is not set Regards, Simon