[Concept,1/6] docker: Install UEFI firmware packages

Message ID 20260220213235.2112347-2-sjg@u-boot.org
State New
Headers
Series test: Add QEMU-based CI for EFI application boards |

Commit Message

Simon Glass Feb. 20, 2026, 9:32 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

Install UEFI firmware packages needed to run EFI application boards
under QEMU in CI:

- ovmf: OVMF 64-bit firmware for efi-x86_app64
- ovmf-ia32: OVMF 32-bit firmware for efi-x86_app32
- qemu-efi-aarch64: AAVMF firmware for efi-arm_app64
- qemu-efi-riscv64: EDK2 RISC-V firmware for efi-riscv_app64

The ovmf-ia32 and qemu-efi-riscv64 packages are installed from Noble
since the Jammy versions are missing or incomplete (Jammy's ovmf-ia32
only provides the secure-boot variant of the firmware, which causes a
boot timeout).

Co-developed-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---

 tools/docker/Dockerfile | 10 ++++++++++
 1 file changed, 10 insertions(+)
  

Patch

diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile
index 90ad3708101..7aa9e0a22bd 100644
--- a/tools/docker/Dockerfile
+++ b/tools/docker/Dockerfile
@@ -118,10 +118,12 @@  RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
 	net-tools \
 	ninja-build \
 	openssl \
+	ovmf \
 	picocom \
 	parted \
 	pkg-config \
 	python-is-python3 \
+	qemu-efi-aarch64 \
 	python2.7 \
 	python3 \
 	python3-dev \
@@ -146,6 +148,14 @@  RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
 	xxd \
 	zip
 
+# Install edk2 packages from Noble (not available or incomplete in Jammy)
+RUN for pkg in ovmf-ia32 qemu-efi-riscv64; do \
+	wget -O /tmp/${pkg}.deb \
+		http://security.ubuntu.com/ubuntu/pool/universe/e/edk2/${pkg}_2024.02-2ubuntu0.7_all.deb && \
+	dpkg-deb -x /tmp/${pkg}.deb / && \
+	rm /tmp/${pkg}.deb; \
+    done
+
 # Make kernels readable for libguestfs tools to work correctly
 RUN chmod +r /boot/vmlinu*