From 813ff7b246408d9c4d209036000701bfc8a24f50 Mon Sep 17 00:00:00 2001 From: Darren Hart Date: Wed, 21 Aug 2013 15:38:07 -0700 Subject: [PATCH] Autodetect both x64 and ia32 boot*.efi payloads The EFI specification documents /EFI/BOOT/bootx64.efi for x86_64 machines and /EFI/BOOT/bootia32.efi for ia32 machines. Update the auto detection to allow for both. Add the MACHINE_TYPE_NAME define to the efi/src build so we can use it as the standard suffix for the EFI payloads (ia32 or x64). Signed-off-by: Darren Hart --- Makefile.am | 3 ++- src/efi/gummiboot.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index b610eff..07bf008 100644 --- a/Makefile.am +++ b/Makefile.am @@ -80,7 +80,8 @@ efi_cppflags = \ $(EFI_CPPFLAGS) \ -I$(top_builddir) -include config.h \ -I$(EFI_INCDIR)/efi \ - -I$(EFI_INCDIR)/efi/$(ARCH) + -I$(EFI_INCDIR)/efi/$(ARCH) \ + -DMACHINE_TYPE_NAME=\"$(MACHINE_TYPE_NAME)\" efi_cflags = \ $(EFI_CFLAGS) \ diff --git a/src/efi/gummiboot.c b/src/efi/gummiboot.c index 9f2f31d..123433f 100644 --- a/src/efi/gummiboot.c +++ b/src/efi/gummiboot.c @@ -2197,9 +2197,9 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) { config_entry_add_loader_auto(&config, loaded_image->DeviceHandle, root_dir, loaded_image_path, L"auto-windows", 'w', L"Windows Boot Manager", L"\\EFI\\Microsoft\\Boot\\bootmgfw.efi"); config_entry_add_loader_auto(&config, loaded_image->DeviceHandle, root_dir, loaded_image_path, - L"auto-efi-shell", 's', L"EFI Shell", L"\\shellx64.efi"); + L"auto-efi-shell", 's', L"EFI Shell", L"\\shell" MACHINE_TYPE_NAME ".efi"); config_entry_add_loader_auto(&config, loaded_image->DeviceHandle, root_dir, loaded_image_path, - L"auto-efi-default", '\0', L"EFI Default Loader", L"\\EFI\\BOOT\\BOOTX64.EFI"); + L"auto-efi-default", '\0', L"EFI Default Loader", L"\\EFI\\BOOT\\BOOT" MACHINE_TYPE_NAME ".EFI"); config_entry_add_osx(&config); efivar_set(L"LoaderEntriesAuto", config.entries_auto, FALSE); -- 2.7.4