summaryrefslogtreecommitdiff
path: root/src/boot/efi/vmm.c
Commit message (Collapse)AuthorAgeFilesLines
* boot: Rework GUID handlingJan Janssen2023-01-201-10/+12
| | | | | | | | | | | | | | | | | | This stops using global GUID variables provided by gnu-efi. The globals presumably exist to make EFI calls easier. But these GUIDs are just 128bits, so it's cheap to just put them on the stack when needed. C99 compound literals makes this even easier. This also adds a convenience macro to create GUID pointers and uses it everywhere. Not forcing a GUID definition to be a compound literal makes them easier to use when assigning them to variables: EFI_GUID before = *SOME_CONST_GUID; EFI_GUID after = SOME_GUID; And MAKE_GUID_PTR() makes it more explicit what is happening. It was easy to confuse the old code as a cast: before(&(EFI_GUID) SOME_GUID); after(MAKE_GUID_PTR(SOME));
* boot: Drop use of xpool_print/SPrintJan Janssen2023-01-181-2/+1
|
* boot: Detect hypervisors using SMBIOS infoJan Janssen2023-01-161-0/+156
| | | | This allows skipping secure boot enrollment wait time on other arches.
* efi: add efi_guid_equal() helperLennart Poettering2022-12-141-2/+2
|
* boot: Only do full driver initialization in VMsJan Janssen2022-11-291-0/+4
| | | | | | | | | Doing the reconnect dance on some real firmware creates huge delays on boot. This should not be needed anymore as we now ask the firmware to make console devices and xbootldr partitions available explicitly in a more targeted fashion. Fixes: #25510
* boot: improve support for qemuGerd Hoffmann2022-11-161-0/+130
systemd-boot expects being loaded from ESP and is quite unhappy in case the loaded image device path is something else. When running on qemu this can easily happen though. Case one is direct kernel boot, i.e. loading via 'qemu -kernel systemd-bootx64.efi'. Case two is sd-boot being added to the ovmf firmware image and being loaded from there. This patch detects both cases and goes inspect all file systems known to the firmware, trying to find the ESP. When present the VMMBootOrderNNNN variables are used to inspect the file systems in the given order.