| 48b29e9e | 29-Sep-2026 |
Krzysztof Galazka <kgalazka@FreeBSD.org> |
loader.efi: Retain standalone network configuration
DHCP initmd discovery used net_configure() to open and configure SNP, then immediately closed the socket and released the protocol. Selecting net0
loader.efi: Retain standalone network configuration
DHCP initmd discovery used net_configure() to open and configure SNP, then immediately closed the socket and released the protocol. Selecting net0 as currdev subsequently required another exclusive SNP attach, which may hang on some EDK II firmware.
Keep the configured socket available for ordinary network consumers so NFS boot can reuse it. Add an explicit deconfiguration operation and invoke it only when an initmd URL requires handing SNP back to the firmware network stack.
Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com>
Reviewed by: imp Assisted by: Github Copilot (GPT-5.6 Sol) Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D59999
show more ...
|
| 9ecc2493 | 26-Sep-2026 |
Warner Losh <imp@FreeBSD.org> |
Restore booting the partition the EFI boot image was loaded from.
BSDRP images are built with "poudriere image -t firmware", which puts gptboot.efi on the ESP instead of loader.efi. gptboot.efi rea
Restore booting the partition the EFI boot image was loaded from.
BSDRP images are built with "poudriere image -t firmware", which puts gptboot.efi on the ESP instead of loader.efi. gptboot.efi reads the GPT bootme attribute, picks the active system partition (BSDRP1 or BSDRP2), chainloads /boot/loader.efi from it and hands loader.efi that partition in LoadedImage->DeviceHandle (stand/efi/boot1/boot1.c:try_boot).
Since ce9bfd78167 ("loader.efi: Refactor try_boot_device_partitions"), find_currdev() no longer tries that device: try_boot_device_partitions() walks the parent disk while explicitly skipping dp->pd_handle, on the assumption that the boot image always comes from an ESP holding no root filesystem. When chainloaded, the partition gptboot.efi selected is therefore the one partition never considered, and loader.efi falls through to the first other UFS partition on the disk - the previous system. Every A/B upgrade silently boots the old slice.
Commit 1c85c5eea09, which introduced try_boot_device_partitions(), did try dp itself before its siblings; the refactor dropped it. Restore it, keeping the sibling walk as the fallback for the normal ESP case.
Fixes: ce9bfd78167 Assisted-by: Claude Code (Fable 5, Opus 5) Sponsored by: Netflix
show more ...
|
| b5f0e7f3 | 24-Sep-2026 |
Warner Losh <imp@FreeBSD.org> |
loader.efi: Be cautious about using GOPs
When we're searching for the EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID (GOPs) to use, skip any whose Mode or Mode->Info pointers are NULL. The spec requires these to
loader.efi: Be cautious about using GOPs
When we're searching for the EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID (GOPs) to use, skip any whose Mode or Mode->Info pointers are NULL. The spec requires these to be non-null, however, some firmwares seem to fail to populate the Info when, for example, a monitor is not present. Work around these bugs by skipping any GOPs with bad pointers.
PR: 288900 Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59830
show more ...
|
| 0ca12047 | 11-Sep-2026 |
Warner Losh <imp@FreeBSD.org> |
loader.efi: Eat the character used to break to OK
When we can't find root, we give the user a chance to drop to the boot loader OK prompt. We should eat the character that's pressed to not interfere
loader.efi: Eat the character used to break to OK
When we can't find root, we give the user a chance to drop to the boot loader OK prompt. We should eat the character that's pressed to not interfere with the interactive session.
Sponsored by: Netflix
show more ...
|
| 6de311d3 | 11-Sep-2026 |
Warner Losh <imp@FreeBSD.org> |
loader.efi: download DHCP initmd specified image
When we haven't downloaded an image via mem{disk,cd} and ipxe, try any image specified by the FreeBSD-specific initmd dhcp option. This allows direct
loader.efi: download DHCP initmd specified image
When we haven't downloaded an image via mem{disk,cd} and ipxe, try any image specified by the FreeBSD-specific initmd dhcp option. This allows direct booting of loader.efi with a detached root ramdisk filesystem.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59433
show more ...
|
| d48e9bff | 11-Sep-2026 |
Warner Losh <imp@FreeBSD.org> |
loader.efi: fetch initmd specified by DHCP
Configure net0, read the DHCP-provided initmd URL, and download it through the file API so directly booted loader.efi can construct its root memory disk.
loader.efi: fetch initmd specified by DHCP
Configure net0, read the DHCP-provided initmd URL, and download it through the file API so directly booted loader.efi can construct its root memory disk.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59432
show more ...
|
| f1163b94 | 11-Sep-2026 |
Warner Losh <imp@FreeBSD.org> |
loader.efi: For ipxe booting, fall back to md when ramdisk fails
Some UEFI firmwares do not contain the RamDisk protocol. When this happens, load the file into a md disk instead. This is less desire
loader.efi: For ipxe booting, fall back to md when ramdisk fails
Some UEFI firmwares do not contain the RamDisk protocol. When this happens, load the file into a md disk instead. This is less desireable than the RamDisk (since that allows better chain-booting options), but sufficient to boot an image as a md device for FreeBSD. While most severs have the RamDisk protocol enabled in their builds, I have two IoT class boards from different manufacturers that do not. Since it works just fine with this fallback, that's preferable.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59421
show more ...
|
| 69d1595d | 11-Sep-2026 |
Warner Losh <imp@FreeBSD.org> |
loader.efi: Move probing the md up to before doing bootmgr
When someone has loaded a ram disk, that's a stronger hint about what to boot than the UEFI boot manager. Prefer it and rework a little the
loader.efi: Move probing the md up to before doing bootmgr
When someone has loaded a ram disk, that's a stronger hint about what to boot than the UEFI boot manager. Prefer it and rework a little the #ifdefs to reduce their number.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59419
show more ...
|
| 7db502d5 | 11-Jul-2026 |
Warner Losh <imp@FreeBSD.org> |
loader: Add xzfs support by defualt to BIOS and EFI loaders
For the BIOS, add xzfs support. This is a tiny increase in the loader size, but allows us to fetch compressed files from any of the filesy
loader: Add xzfs support by defualt to BIOS and EFI loaders
For the BIOS, add xzfs support. This is a tiny increase in the loader size, but allows us to fetch compressed files from any of the filesystems we support, including over the network.
For EFI, also add gzipfs and bzip2fs support we well. The increment for these files is tiny.
Sponsored by: Netflix
show more ...
|