diff --git a/src/boot/efi/pe.c b/src/boot/efi/pe.c index f1f947b183..68f50aec41 100644 --- a/src/boot/efi/pe.c +++ b/src/boot/efi/pe.c @@ -30,6 +30,7 @@ struct DosFileHeader { #define PE_HEADER_MACHINE_I386 0x014c #define PE_HEADER_MACHINE_X64 0x8664 +#define PE_HEADER_MACHINE_ARM64 0xaa64 struct PeFileHeader { UINT16 Machine; UINT16 NumberOfSections; @@ -75,6 +76,7 @@ EFI_STATUS pe_memory_locate_sections(CHAR8 *base, CHAR8 **sections, UINTN *addrs /* PE32+ Subsystem type */ if (pe->FileHeader.Machine != PE_HEADER_MACHINE_X64 && + pe->FileHeader.Machine != PE_HEADER_MACHINE_ARM64 && pe->FileHeader.Machine != PE_HEADER_MACHINE_I386) return EFI_LOAD_ERROR;