Merge tag 'efi-fixes-for-v6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi

Pull EFI fixes from Ard Biesheuvel:
 "A few minor fixes for EFI, one of which fixes the reported boot
  regression when booting x86 kernels using the BIOS based loader built
  into the hypervisor framework on macOS.

   - fix harmless warning in zboot code on 'make clean'

   - add some missing prototypes

   - fix boot regressions triggered by PE/COFF header image minor
     version bump"

* tag 'efi-fixes-for-v6.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
  efi: Bump stub image version for macOS HVF compatibility
  efi: fix missing prototype warnings
  efi/libstub: zboot: Avoid eager evaluation of objcopy flags
This commit is contained in:
Linus Torvalds
2023-06-01 20:43:11 -04:00
7 changed files with 27 additions and 19 deletions

View File

@@ -572,4 +572,10 @@ void cper_print_proc_ia(const char *pfx,
int cper_mem_err_location(struct cper_mem_err_compact *mem, char *msg);
int cper_dimm_err_location(struct cper_mem_err_compact *mem, char *msg);
struct acpi_hest_generic_status;
void cper_estatus_print(const char *pfx,
const struct acpi_hest_generic_status *estatus);
int cper_estatus_check_header(const struct acpi_hest_generic_status *estatus);
int cper_estatus_check(const struct acpi_hest_generic_status *estatus);
#endif

View File

@@ -1338,4 +1338,6 @@ bool efi_config_table_is_usable(const efi_guid_t *guid, unsigned long table)
return xen_efi_config_table_is_usable(guid, table);
}
umode_t efi_attr_is_visible(struct kobject *kobj, struct attribute *attr, int n);
#endif /* _LINUX_EFI_H */

View File

@@ -11,25 +11,26 @@
#include <linux/types.h>
/*
* Linux EFI stub v1.0 adds the following functionality:
* - Loading initrd from the LINUX_EFI_INITRD_MEDIA_GUID device path,
* - Loading/starting the kernel from firmware that targets a different
* machine type, via the entrypoint exposed in the .compat PE/COFF section.
* Starting from version v3.0, the major version field should be interpreted as
* a bit mask of features supported by the kernel's EFI stub:
* - 0x1: initrd loading from the LINUX_EFI_INITRD_MEDIA_GUID device path,
* - 0x2: initrd loading using the initrd= command line option, where the file
* may be specified using device path notation, and is not required to
* reside on the same volume as the loaded kernel image.
*
* The recommended way of loading and starting v1.0 or later kernels is to use
* the LoadImage() and StartImage() EFI boot services, and expose the initrd
* via the LINUX_EFI_INITRD_MEDIA_GUID device path.
*
* Versions older than v1.0 support initrd loading via the image load options
* (using initrd=, limited to the volume from which the kernel itself was
* loaded), or via arch specific means (bootparams, DT, etc).
* Versions older than v1.0 may support initrd loading via the image load
* options (using initrd=, limited to the volume from which the kernel itself
* was loaded), or only via arch specific means (bootparams, DT, etc).
*
* On x86, LoadImage() and StartImage() can be omitted if the EFI handover
* protocol is implemented, which can be inferred from the version,
* handover_offset and xloadflags fields in the bootparams structure.
* The minor version field must remain 0x0.
* (https://lore.kernel.org/all/efd6f2d4-547c-1378-1faa-53c044dbd297@gmail.com/)
*/
#define LINUX_EFISTUB_MAJOR_VERSION 0x1
#define LINUX_EFISTUB_MINOR_VERSION 0x1
#define LINUX_EFISTUB_MAJOR_VERSION 0x3
#define LINUX_EFISTUB_MINOR_VERSION 0x0
/*
* LINUX_PE_MAGIC appears at offset 0x38 into the MS-DOS header of EFI bootable