[Buildroot] [PATCH] boot/edk2: add support to build 32bit edk2 when using x86_64 architecture

Arnout Vandecappelle arnout at mind.be
Fri Oct 15 20:03:13 UTC 2021



On 04/10/2021 15:27, Kory Maincent wrote:
> Add BR2_TARGET_EDK2_PLATFORM_OVMF_I386 for x86_64 architecture.
> Update the management of EDK2_ARCH to follow the edk2 platform type in
> place of BR2 architecture.
> 
> Signed-off-by: Kory Maincent <kory.maincent at bootlin.com>

  Applied to master, thanks.

  Regards,
  Arnout

> ---
>   boot/edk2/Config.in |  2 +-
>   boot/edk2/edk2.mk   | 16 ++++++++--------
>   2 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/boot/edk2/Config.in b/boot/edk2/Config.in
> index 8e548cfc67..df723122ee 100644
> --- a/boot/edk2/Config.in
> +++ b/boot/edk2/Config.in
> @@ -25,7 +25,7 @@ choice
>   
>   config BR2_TARGET_EDK2_PLATFORM_OVMF_I386
>   	bool "i386"
> -	depends on BR2_i386
> +	depends on BR2_i386 || BR2_x86_64
>   	help
>   	  Platform configuration for a generic i386 target.
>   	  This platform will boot from flash address 0x0.
> diff --git a/boot/edk2/edk2.mk b/boot/edk2/edk2.mk
> index ab3cdad464..2b12de53cb 100644
> --- a/boot/edk2/edk2.mk
> +++ b/boot/edk2/edk2.mk
> @@ -14,14 +14,6 @@ EDK2_DEPENDENCIES = edk2-platforms host-python3 host-acpica host-util-linux
>   EDK2_INSTALL_TARGET = NO
>   EDK2_INSTALL_IMAGES = YES
>   
> -ifeq ($(BR2_i386),y)
> -EDK2_ARCH = IA32
> -else ifeq ($(BR2_x86_64),y)
> -EDK2_ARCH = X64
> -else ifeq ($(BR2_aarch64),y)
> -EDK2_ARCH = AARCH64
> -endif
> -
>   ifeq ($(BR2_ENABLE_DEBUG),y)
>   EDK2_BUILD_TYPE = DEBUG
>   else
> @@ -58,33 +50,39 @@ 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_I386),y)
> +EDK2_ARCH = IA32
>   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_ARCH = X64
>   EDK2_DEPENDENCIES += host-nasm
>   EDK2_PACKAGE_NAME = OvmfPkg
>   EDK2_PLATFORM_NAME = OvmfPkgX64
>   EDK2_BUILD_DIR = OvmfX64
>   
>   else ifeq ($(BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU),y)
> +EDK2_ARCH = AARCH64
>   EDK2_PACKAGE_NAME = ArmVirtPkg
>   EDK2_PLATFORM_NAME = ArmVirtQemu
>   EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME)-$(EDK2_ARCH)
>   
>   else ifeq ($(BR2_TARGET_EDK2_PLATFORM_ARM_VIRT_QEMU_KERNEL),y)
> +EDK2_ARCH = AARCH64
>   EDK2_PACKAGE_NAME = ArmVirtPkg
>   EDK2_PLATFORM_NAME = ArmVirtQemuKernel
>   EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME)-$(EDK2_ARCH)
>   
>   else ifeq ($(BR2_TARGET_EDK2_PLATFORM_ARM_VEXPRESS_FVP_AARCH64),y)
> +EDK2_ARCH = AARCH64
>   EDK2_PACKAGE_NAME = Platform/ARM/VExpressPkg
>   EDK2_PLATFORM_NAME = ArmVExpress-FVP-AArch64
>   EDK2_BUILD_DIR = $(EDK2_PLATFORM_NAME)
>   
>   else ifeq ($(BR2_TARGET_EDK2_PLATFORM_SOCIONEXT_DEVELOPERBOX),y)
> +EDK2_ARCH = AARCH64
>   EDK2_DEPENDENCIES += host-dtc arm-trusted-firmware
>   EDK2_PACKAGE_NAME = Platform/Socionext/DeveloperBox
>   EDK2_PLATFORM_NAME = DeveloperBox
> @@ -103,6 +101,7 @@ define EDK2_PRE_BUILD_SOCIONEXT_DEVELOPERBOX
>   endef
>   
>   else ifeq ($(BR2_TARGET_EDK2_PLATFORM_SOLIDRUN_ARMADA80X0MCBIN),y)
> +EDK2_ARCH = AARCH64
>   EDK2_DEPENDENCIES += host-dtc arm-trusted-firmware
>   EDK2_PACKAGE_NAME = Platform/SolidRun/Armada80x0McBin
>   EDK2_PLATFORM_NAME = Armada80x0McBin
> @@ -111,6 +110,7 @@ EDK2_BUILD_ENV += DTC_PREFIX=$(HOST_DIR)/bin/
>   EDK2_BUILD_OPTS += -D INCLUDE_TFTP_COMMAND
>   
>   else ifeq ($(BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA),y)
> +EDK2_ARCH = AARCH64
>   EDK2_DEPENDENCIES += arm-trusted-firmware
>   EDK2_PACKAGE_NAME = Platform/Qemu/SbsaQemu
>   EDK2_PLATFORM_NAME = SbsaQemu
> 


More information about the buildroot mailing list