Преглед на файлове

arm/uefi-secureboot: Add uefi http boot support

Enable network boot via HTTP protocol. Many embedded and server-class
systems use network boot for booting. Enabling network boot on devices
allows:

- Shipping devices without OS images. When we power up the device, the
  firmware can connect to the Internet and download and install suitable
  boot images for this specific device. Administrators can centrally
  manage the boot images and configuration files on a network server.
  This centralization streamlines the management of boot options and
  ensures consistency across all devices.

- This is particularly useful in enterprise environments. On mass
  deployments, there is a need to install the operating system on
  multiple devices simultaneously.

- Ability to maintain a completely diskless system if needed 

The plain HTTP protocol lacks encryption. It's intended to be used on
local networks. Secure http protocol support is under review. 

Signed-off-by: Javier Tia <javier.tia@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Javier Tia преди 8 месеца
родител
ревизия
a93bdc8e4e

+ 1 - 1
ci/uefi-secureboot.yml

@@ -23,7 +23,7 @@ local_conf_header:
     WKS_FILE = "efi-disk.wks.in"
     KERNEL_IMAGETYPE = "Image"
 
-    MACHINE_FEATURES:append = " efi uefi-secureboot"
+    MACHINE_FEATURES:append = " efi uefi-secureboot uefi-http-boot"
 
     EFI_PROVIDER = "systemd-boot"
 

+ 3 - 0
meta-arm/recipes-bsp/u-boot/u-boot-uefi-http-boot.inc

@@ -0,0 +1,3 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += "file://uefi-http-boot.cfg"

+ 2 - 0
meta-arm/recipes-bsp/u-boot/u-boot-uefi-secureboot.inc

@@ -4,6 +4,8 @@ SRC_URI += "file://uefi-secureboot.cfg"
 
 inherit sbsign
 
+require ${@bb.utils.contains('MACHINE_FEATURES', 'uefi-http-boot', 'u-boot-uefi-http-boot.inc', '', d)}
+
 DEPENDS += 'python3-pyopenssl-native'
 
 do_compile:prepend() {

+ 6 - 0
meta-arm/recipes-bsp/u-boot/u-boot/uefi-http-boot.cfg

@@ -0,0 +1,6 @@
+CONFIG_PROT_TCP=y
+CONFIG_PROT_TCP_SACK=y
+CONFIG_CMD_WGET=y
+CONFIG_CMD_DNS=y
+CONFIG_BLKMAP=y
+CONFIG_EFI_HTTP_BOOT=y