diff --git a/boot/edk2/Config.in b/boot/edk2/Config.in index 150806899f..8e548cfc67 100644 --- a/boot/edk2/Config.in +++ b/boot/edk2/Config.in @@ -1,6 +1,12 @@ +config BR2_TARGET_EDK2_ARCH_SUPPORTS + bool + default y if BR2_aarch64 + default y if BR2_i386 + default y if BR2_x86_64 + config BR2_TARGET_EDK2 bool "EDK2" - depends on BR2_x86_64 || BR2_aarch64 + depends on BR2_TARGET_EDK2_ARCH_SUPPORTS depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 select BR2_PACKAGE_EDK2_PLATFORMS help @@ -13,9 +19,18 @@ if BR2_TARGET_EDK2 choice prompt "Platform" + default BR2_TARGET_EDK2_PLATFORM_OVMF_I386 if BR2_i386 default BR2_TARGET_EDK2_PLATFORM_OVMF_X64 if BR2_x86_64 default BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU if BR2_aarch64 +config BR2_TARGET_EDK2_PLATFORM_OVMF_I386 + bool "i386" + depends on BR2_i386 + help + Platform configuration for a generic i386 target. + This platform will boot from flash address 0x0. + It should therefore be used as the first bootloader. + config BR2_TARGET_EDK2_PLATFORM_OVMF_X64 bool "x86-64" depends on BR2_x86_64 @@ -94,6 +109,7 @@ endchoice config BR2_TARGET_EDK2_FD_NAME string + default "OVMF" if BR2_TARGET_EDK2_PLATFORM_OVMF_I386 default "OVMF" if BR2_TARGET_EDK2_PLATFORM_OVMF_X64 default "QEMU_EFI" if BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU default "QEMU_EFI" if BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL diff --git a/boot/edk2/edk2.mk b/boot/edk2/edk2.mk index fabd0c5b45..ab3cdad464 100644 --- a/boot/edk2/edk2.mk +++ b/boot/edk2/edk2.mk @@ -14,7 +14,9 @@ EDK2_DEPENDENCIES = edk2-platforms host-python3 host-acpica host-util-linux EDK2_INSTALL_TARGET = NO EDK2_INSTALL_IMAGES = YES -ifeq ($(BR2_x86_64),y) +ifeq ($(BR2_i386),y) +EDK2_ARCH = IA32 +else ifeq ($(BR2_x86_64),y) EDK2_ARCH = X64 else ifeq ($(BR2_aarch64),y) EDK2_ARCH = AARCH64 @@ -55,7 +57,13 @@ EDK2_GIT_SUBMODULES = YES EDK2_BUILD_PACKAGES = $(@D)/Build/Buildroot EDK2_PACKAGES_PATH = $(@D):$(EDK2_BUILD_PACKAGES):$(STAGING_DIR)/usr/share/edk2-platforms -ifeq ($(BR2_TARGET_EDK2_PLATFORM_OVMF_X64),y) +ifeq ($(BR2_TARGET_EDK2_PLATFORM_OVMF_I386),y) +EDK2_DEPENDENCIES += host-nasm +EDK2_PACKAGE_NAME = OvmfPkg +EDK2_PLATFORM_NAME = OvmfPkgIa32 +EDK2_BUILD_DIR = OvmfIa32 + +else ifeq ($(BR2_TARGET_EDK2_PLATFORM_OVMF_X64),y) EDK2_DEPENDENCIES += host-nasm EDK2_PACKAGE_NAME = OvmfPkg EDK2_PLATFORM_NAME = OvmfPkgX64