diff mbox series

[v2,6/6] doc: uefi: Describe UEFI HTTPs boot

Message ID 20241024112449.1362319-7-ilias.apalodimas@linaro.org
State Superseded
Headers show
Series Enable https for wget | expand

Commit Message

Ilias Apalodimas Oct. 24, 2024, 11:24 a.m. UTC
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

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
---
 doc/develop/uefi/uefi.rst | 45 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 43 insertions(+), 2 deletions(-)

Comments

Jerome Forissier Nov. 6, 2024, 1:53 p.m. UTC | #1
Hi Ilias,

On 10/24/24 12:24, Ilias Apalodimas 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
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> ---
>  doc/develop/uefi/uefi.rst | 45 +++++++++++++++++++++++++++++++++++++--
>  1 file changed, 43 insertions(+), 2 deletions(-)
> 
> diff --git a/doc/develop/uefi/uefi.rst b/doc/develop/uefi/uefi.rst
> index 0760ca91d4fc..e19dcaac8056 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://

The proper spelling is "Mbed TLS" [1]

[1] https://www.trustedfirmware.org/projects/mbed-tls/

> +
> +HTTP(s) Boot can be activated by specifying::
> +
> +    CONFIG_EFI_HTTP_BOOT
> +    CONFIG_NET_LWIP
> +    CONFIG_WGET_HTTPS
> +
> +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
>  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

With the spelling fixed:

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>

Thanks,
diff mbox series

Patch

diff --git a/doc/develop/uefi/uefi.rst b/doc/develop/uefi/uefi.rst
index 0760ca91d4fc..e19dcaac8056 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_WGET_HTTPS
+
+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
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~