diff options
Diffstat (limited to 'src/interface/efi/efi_block.c')
| -rw-r--r-- | src/interface/efi/efi_block.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/interface/efi/efi_block.c b/src/interface/efi/efi_block.c index cb73260d5..da9062105 100644 --- a/src/interface/efi/efi_block.c +++ b/src/interface/efi/efi_block.c @@ -57,6 +57,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include <ipxe/efi/efi_path.h> #include <ipxe/efi/efi_null.h> #include <ipxe/efi/efi_block.h> +#include <usr/efiboot.h> /** ACPI table protocol protocol */ static EFI_ACPI_TABLE_PROTOCOL *acpi; @@ -630,7 +631,12 @@ static int efi_block_boot ( unsigned int drive, const char *filename ) { sandev = sandev_find ( drive ); if ( ! sandev ) { DBG ( "EFIBLK cannot find drive %#02x\n", drive ); - rc = -ENODEV; + DBG ( "EFIBLK attempting local boot for drive %#02x, " + "filename=%s\n", drive, filename ); + rc = efi_boot_local( drive, filename ); + if (rc) + rc = -ENODEV; + goto err_sandev_find; } |
