On 01.04.25 17:51, Simon Glass wrote:
On Tue, 1 Apr 2025 at 21:38, Heiko Stuebner <[email protected]> wrote:
This reverts commit 1f68057e03206e6597ca8b2be8bb1c49d4bd47d0.
Commit 1f68057e0320 ("net: eth_bootdev_hunt() should not run DHCP")
aims to reduce EFI boot times by disabling the dhcp_run when
checking ethernet bootdevices, by preventing it from running double,
with the reasoning
We need to call eth_bootdev_hunt() when setting up the EFI sub-system to
supply the simple network protocol. We don't need an IP address set up.
That might by true for EFI, but not for everything else, because when
running distro-boot and for example the PXE method in it, nothing will
set up an IP address now.
The removed call was dhcp_run(addr, NULL, true);
We have:
distro_efi_read_bootflow_net():
boot/bootmeth_efi.c:205: ret = dhcp_run(addr, NULL, true);
script_read_bootflow_net():
boot/bootmeth_script.c:132: ret = dhcp_run(addr, fname, true);
extlinux_pxe_read_bootflow() seems to be lacking the call.
So instead of reverting
1f68057e0320 ("net: eth_bootdev_hunt() should not run DHCP")
we should add the missing call in extlinux_pxe_read_bootflow().
Best regards
Heinrich
So for example in my setup of Rockchip boards, no dhcp runs and pxe then
fails with messages like:
Retrieving file: pxelinux.cfg/01-....
Speed: 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/00000000
Speed: 100, full duplex
*** ERROR: `serverip' not set
As the original commit message talks about speed efficiencies for the EFI
side mostly, reverting this should just restore previous functionality
(and in fact does so on my Rockchip boards).
Signed-off-by: Heiko Stuebner <[email protected]>
---
net/eth_bootdev.c | 30 ++++++++++++------------------
1 file changed, 12 insertions(+), 18 deletions(-)
Reviewed-by: Simon Glass <[email protected]>