diff --git a/changelog.md b/changelog.md index af80d9f..dc92915 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +* Bundle `qboot.rom` in the `qemu-system-x86_64` tarball. qboot is the firmware + for QEMU's `microvm` machine type, and the only one that can boot a PVH kernel + there, which is how a guest skips the boot loader, the PCI bus and ACPI + entirely + ([cross-platform-actions/action#151](https://github.com/cross-platform-actions/action/issues/151)) + ### Removed * Stop bundling the Linaro UEFI firmware for ARM64. `linaro_uefi.fd` is no diff --git a/ci.rb b/ci.rb index 4680e7e..cdbf516 100755 --- a/ci.rb +++ b/ci.rb @@ -77,11 +77,18 @@ def bundle_firmware end class X86_64 < Architecture + # qboot.rom is the firmware for the `microvm` machine type, and the only one + # that can boot a PVH kernel there: QEMU hands the kernel to the firmware + # through fw_cfg rather than entering it itself, and qboot is also what + # leaves an MP table behind for a guest configured without ACPI. Given + # bios-256k.bin instead, such a guest never starts and says nothing at all + # about why. FIRMWARES = %w[ bios-256k.bin efi-e1000.rom efi-virtio.rom kvmvapic.bin + qboot.rom vgabios-stdvga.bin ].freeze diff --git a/test.rb b/test.rb index d3c74e3..6645cd3 100755 --- a/test.rb +++ b/test.rb @@ -62,6 +62,7 @@ def assert_statically_linked(architecture) efi-e1000.rom efi-virtio.rom kvmvapic.bin + qboot.rom vgabios-stdvga.bin uefi.fd ]