i386/relocator: Add grub_relocator64_efi relocator
authorDaniel Kiper <daniel.kiper@oracle.com>
Fri, 17 Jul 2015 17:43:42 +0000 (19:43 +0200)
committerDaniel Kiper <daniel.kiper@oracle.com>
Thu, 27 Oct 2016 13:53:43 +0000 (15:53 +0200)
commit9862b241212b25ee23f60f5bcc4277d2289eaaf9
treef6d2cd9dfd2bf0a8bd997789e8ac916897f03f85
parente563928ba42ad400abd8d329a879a632abddcd0c
i386/relocator: Add grub_relocator64_efi relocator

Add grub_relocator64_efi relocator. It will be used on EFI 64-bit platforms
when multiboot2 compatible image requests MULTIBOOT_TAG_TYPE_EFI_BS. Relocator
will set lower parts of %rax and %rbx accordingly to multiboot2 specification.
On the other hand processor mode, just before jumping into loaded image, will
be set accordingly to Unified Extensible Firmware Interface Specification,
Version 2.4 Errata B, section 2.3.4, x64 Platforms, boot services. This way
loaded image will be able to use EFI boot services without any issues.

Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
grub-core/Makefile.core.def
grub-core/lib/i386/relocator64.S
grub-core/lib/x86_64/efi/relocator.c [new file with mode: 0644]
grub-core/loader/multiboot.c
grub-core/loader/multiboot_mbi2.c
include/grub/i386/multiboot.h
include/grub/i386/relocator.h
include/multiboot2.h