Skip to content

Commit

Permalink
Allow fallback to default loader when encountering errors on network …
Browse files Browse the repository at this point in the history
…boot

Only certain errors trigger fallback to the default loader name.  This change allows fallback when encountering `EFI_TFTP_ERROR` as well.  And ideally would also handle `EFI_HTTP_ERROR` the same way, but that requires updating gnu-efi to a version newer than the shim-15.8 branch.

This fixes the issue reported in #649 that prevents boot on some models of PC.

Signed-off-by: Nathan O'Meara <[email protected]>
  • Loading branch information
nathan-omeara committed Jun 20, 2024
1 parent 0287c6b commit 6fdbc33
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions shim.c
Original file line number Diff line number Diff line change
Expand Up @@ -1258,9 +1258,13 @@ EFI_STATUS init_grub(EFI_HANDLE image_handle)
}

// If the filename is invalid, or the file does not exist,
// just fallback to the default loader.
// just fallback to the default loader. Also fallback to the
// default loader if we get a TFTP error or HTTP error.
if (!use_fb && (efi_status == EFI_INVALID_PARAMETER ||
efi_status == EFI_NOT_FOUND)) {
efi_status == EFI_NOT_FOUND ||
// TODO: Add EFI_HTTP_ERROR when gnu-efi is updated to a version that includes it
// efi_status == EFI_HTTP_ERROR ||
efi_status == EFI_TFTP_ERROR)) {
console_print(
L"start_image() returned %r, falling back to default loader\n",
efi_status);
Expand Down

0 comments on commit 6fdbc33

Please sign in to comment.