diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2020-02-26 20:43:43 +0100 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2020-03-04 09:26:45 +0000 |
commit | d55cfdc51f93b6622c3780d4cc2ba2769c154a15 (patch) | |
tree | c953daedf7f7a0923521b14747b3fc94afb7a820 /OvmfPkg/OvmfPkgIa32.fdf | |
parent | d8dd54f071cfd60a2dcf5426764a89cd91213420 (diff) | |
download | edk2-d55cfdc51f93b6622c3780d4cc2ba2769c154a15.tar.gz |
OvmfPkg IA32: add support for loading X64 images
This is the UEFI counterpart to my Linux series which generalizes
mixed mode support into a feature that requires very little internal
knowledge about the architecture specifics of booting Linux on the
part of the bootloader or firmware.
Instead, we add a .compat PE/COFF header containing an array of
PE_COMPAT nodes containing <machine type, entrypoint> tuples that
describe alternate entrypoints into the image for different native
machine types, e.g., IA-32 in a 64-bit image so it can be booted
from IA-32 firmware.
This patch implements the PE/COFF emulator protocol to take this new
section into account, so that such images can simply be loaded via
LoadImage/StartImage, e.g., straight from the shell.
This feature is based on the EDK2 specific PE/COFF emulator protocol
that was introduced in commit 57df17fe26cd ("MdeModulePkg/DxeCore:
invoke the emulator protocol for foreign images", 2019-04-14).
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2564
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Laszlo Ersek <lersek@redhat.com>
Diffstat (limited to 'OvmfPkg/OvmfPkgIa32.fdf')
-rw-r--r-- | OvmfPkg/OvmfPkgIa32.fdf | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf index 6c342823d2..f57de4a26f 100644 --- a/OvmfPkg/OvmfPkgIa32.fdf +++ b/OvmfPkg/OvmfPkgIa32.fdf @@ -354,6 +354,10 @@ INF SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf !endif
!endif
+!if $(LOAD_X64_ON_IA32_ENABLE) == TRUE
+INF OvmfPkg/CompatImageLoaderDxe/CompatImageLoaderDxe.inf
+!endif
+
################################################################################
[FV.FVMAIN_COMPACT]
|