From: Matthew Garrett Date: Sun, 4 Mar 2012 00:10:55 +0000 (+0100) Subject: Avoid EFI boot services when loading Linux. X-Git-Tag: 2.00~437 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aff05d45f98983129729d50c78ddc2fa180198d7;p=thirdparty%2Fgrub.git Avoid EFI boot services when loading Linux. * grub-core/lib/i386/relocator.c (grub_relocator32_boot): New argument avoid_efi_bootservices. All users updated. * grub-core/lib/relocator.c (grub_relocator_alloc_chunk_align): New argument avoid_efi_bootservices. All users updated. Use grub_efi_mmap_iterate on EFI, grub_mmap_iterate if available. * grub-core/loader/i386/linux.c (allocate_pages): New arguments align, min_align, relocatable, prefered_address. All users updated. Allocate avoiding boot services if kernel is relocatable. (grub_cmd_linux): Check if kernel is relocatable. * grub-core/mmap/efi/mmap.c (grub_machine_mmap_iterate): Move most to .. (grub_efi_mmap_iterate): ... here. New argument avoid_efi_boot_services. Skip GRUB_EFI_BOOT_SERVICES_DATA and GRUB_EFI_BOOT_SERVICES_CODE if avoid_efi_boot_services. (grub_machine_mmap_iterate): Wrap grub_efi_mmap_iterate. * include/grub/i386/linux.h (linux_kernel_header): Update to 2.10. (linux_kernel_params): Likewise. Also-By: Vladimir Serbinenko --- aff05d45f98983129729d50c78ddc2fa180198d7 diff --cc ChangeLog index d4a34fc1d,ffb568afb..8a7f5088e --- a/ChangeLog +++ b/ChangeLog @@@ -1,23 -1,3 +1,45 @@@ ++2012-03-03 Matthew Garrett ++2012-03-03 Vladimir Serbinenko ++ ++ Avoid EFI boot services when loading Linux. ++ ++ * grub-core/lib/i386/relocator.c (grub_relocator32_boot): New argument ++ avoid_efi_bootservices. All users updated. ++ * grub-core/lib/relocator.c (grub_relocator_alloc_chunk_align): New ++ argument avoid_efi_bootservices. All users updated. ++ Use grub_efi_mmap_iterate on EFI, grub_mmap_iterate if available. ++ * grub-core/loader/i386/linux.c (allocate_pages): New arguments ++ align, min_align, relocatable, prefered_address. All users updated. ++ Allocate avoiding boot services if kernel is relocatable. ++ (grub_cmd_linux): Check if kernel is relocatable. ++ * grub-core/mmap/efi/mmap.c (grub_machine_mmap_iterate): Move most to .. ++ (grub_efi_mmap_iterate): ... here. New argument avoid_efi_boot_services. ++ Skip GRUB_EFI_BOOT_SERVICES_DATA and GRUB_EFI_BOOT_SERVICES_CODE if ++ avoid_efi_boot_services. ++ (grub_machine_mmap_iterate): Wrap grub_efi_mmap_iterate. ++ * include/grub/i386/linux.h (linux_kernel_header): Update to 2.10. ++ (linux_kernel_params): Likewise. ++ +2012-03-03 Matthew Garrett +2012-03-03 Vladimir Serbinenko + + Use EDID on EFI. + + * grub-core/kern/efi/efi.c (grub_efi_get_variable): New argument + datasize_out. + * grub-core/video/efi_gop.c (check_protocol): Check that GOP has usable + modes. Set gop_handle. + (grub_video_gop_get_edid): New function. + (grub_gop_get_preferred_mode): Likewise. + (grub_video_gop_setup): Use grub_gop_get_preferred_mode. + (grub_video_efi_gop_adapter): Set .get_edid. + * include/grub/efi/edid.h: New file. + * include/grub/efi/efi.h (grub_efi_get_variable): Update proto. + +2012-03-03 Vladimir Serbinenko + + * util/grub-install.in: Load efivars unconditionally. + 2012-03-03 Vladimir Serbinenko * po/Rules-piglatin: Change suffix from .po-update-en to