On Fri, 18 Oct 2024 at 08:23, Ilias Apalodimas <ilias.apalodi...@linaro.org> wrote: > > We now can use a combination og lwIP & mbedTLS and download from > https://. Describe the config options needed to enable it as well > as some limitations > > Signed-off-by: Ilias Apalodimas <ilias.apalodi...@linaro.org> > --- > doc/develop/uefi/uefi.rst | 45 +++++++++++++++++++++++++++++++++++++-- > 1 file changed, 43 insertions(+), 2 deletions(-) >
Reviewed-by: Simon Glass <s...@chromium.org> > diff --git a/doc/develop/uefi/uefi.rst b/doc/develop/uefi/uefi.rst > index 0760ca91d4fc..198288a6889f 100644 > --- a/doc/develop/uefi/uefi.rst > +++ b/doc/develop/uefi/uefi.rst > @@ -681,8 +681,8 @@ UEFI variables. Booting according to these variables is > possible via:: > As of U-Boot v2020.10 UEFI variables cannot be set at runtime. The U-Boot > command 'efidebug' can be used to set the variables. > > -UEFI HTTP Boot > -~~~~~~~~~~~~~~ > +UEFI HTTP Boot using the legacy TCP stack > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > HTTP Boot provides the capability for system deployment and configuration > over the network. HTTP Boot can be activated by specifying:: > @@ -715,6 +715,47 @@ We need to preset the "httpserverip" environment > variable to proceed the wget:: > > setenv httpserverip 192.168.1.1 > > +UEFI HTTP(s) Boot using lwIP > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > +Similar to the above U-Boot can do EFI HTTP boot using lwIP. If we combine > this > +with mbedTLS we can also download from https:// > + > +HTTP(s) Boot can be activated by specifying:: > + > + CONFIG_EFI_HTTP_BOOT > + CONFIG_NET_LWIP > + CONFIG_MBEDTLS_LIB_TLS > + > +For QEMU targets there's a Kconfig that supports this by default:: > + > + make qemu_arm64_lwip_defconfig > + > +The commands and functionality are similar to the legacy stack, with the > notable > +exception of not having to define an "httpserverip" if you are trying to > resolve > +an IP. However, lwIP code doesn't yet support redirects:: > + > + => efidebug boot add -u 1 netinst > https://cdimage.debian.org/cdimage/weekly-builds/arm64/iso-cd/debian-testing-arm64-netinst.iso > + => dhcp > + DHCP client bound to address 10.0.2.15 (3 ms) > + => efidebug boot order 1 > + => bootefi bootmgr > + > + HTTP server error 302 > + Loading Boot0001 'netinst' failed > + EFI boot manager: Cannot load any image > + > +If the url you specified isn't a redirect:: > + > + => efidebug boot add -u 1 netinst > https://download.rockylinux.org/pub/rocky/9/isos/aarch64/Rocky-9.4-aarch64-minimal.iso > + => dhcp > + => bootefi bootmgr > + ####################################### > + > +If the downloaded file extension is .iso or .img file, efibootmgr tries to > +mount the image and boot with the default file(e.g. EFI/BOOT/BOOTAA64.EFI). > +If the downloaded file is PE-COFF image, load the downloaded file and > +start it. > + > Executing the built in hello world application > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > -- > 2.45.2 >