From 766e481adb2091e45a016159cc97d72898606036 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Mon, 12 Jul 2021 19:35:51 +0100 Subject: [PATCH] payloads/external/tianocore: Add build argument for 4G Decode Add Kconfig option TIANOCORE_ABOVE_4G_DECODE to pass build option to edk2 to enable or disable "Above 4G Decode". Disabling allows certain Linux distributions to boot such as Qubes, Zorin and Proxmox. Requires commit `2f6d4cbcc7fa49462e607baed7626524ccd59ad3` that is present in the `uefipayload_202107` branch of MrChromebox's edk2 repository. Signed-off-by: Sean Rhodes Change-Id: Ia3b1d15196c0ec611431af29031682fea626d19d Reviewed-on: https://review.coreboot.org/c/coreboot/+/56223 Tested-by: build bot (Jenkins) Reviewed-by: Matt DeVillier --- payloads/external/Makefile.inc | 1 + payloads/external/tianocore/Kconfig | 11 +++++++++++ payloads/external/tianocore/Makefile | 8 +++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc index f977079907..113dfbea4d 100644 --- a/payloads/external/Makefile.inc +++ b/payloads/external/Makefile.inc @@ -147,6 +147,7 @@ payloads/external/tianocore/tianocore/Build/UEFIPAYLOAD.fd tianocore: $(DOTCONFI CONFIG_TIANOCORE_UEFIPAYLOAD=$(CONFIG_TIANOCORE_UEFIPAYLOAD) \ CONFIG_TIANOCORE_UPSTREAM=$(CONFIG_TIANOCORE_UPSTREAM) \ CONFIG_MMCONF_BASE_ADDRESS=$(CONFIG_MMCONF_BASE_ADDRESS) \ + CONFIG_TIANOCORE_ABOVE_4G_MEMORY=$(CONFIG_TIANOCORE_ABOVE_4G_MEMORY) \ CONFIG_TIANOCORE_BOOT_TIMEOUT=$(CONFIG_TIANOCORE_BOOT_TIMEOUT) \ CONFIG_TIANOCORE_CBMEM_LOGGING=$(CONFIG_TIANOCORE_CBMEM_LOGGING) \ GCC_CC_x86_32=$(GCC_CC_x86_32) \ diff --git a/payloads/external/tianocore/Kconfig b/payloads/external/tianocore/Kconfig index cb3ff5dca5..5349f25c09 100644 --- a/payloads/external/tianocore/Kconfig +++ b/payloads/external/tianocore/Kconfig @@ -82,6 +82,17 @@ config TIANOCORE_BOOTSPLASH_FILE If an absolute path is not given, the path will assumed to be relative to the coreboot root directory. +config TIANOCORE_ABOVE_4G_MEMORY + bool "Enable above 4G memory" + default n + help + Select this option to enable Above 4G Decode. This will allow the + payload to use all of the memory, rather than an maximum of 4G. + + Disabling this option, which will reserve memory above 4G, is + useful for bootloaders that are not fully 64-bit aware such as + Qubes R4.0.4 bootloader. + endif config TIANOCORE_BOOT_TIMEOUT diff --git a/payloads/external/tianocore/Makefile b/payloads/external/tianocore/Makefile index ef3aacfb7a..4fda8b805b 100644 --- a/payloads/external/tianocore/Makefile +++ b/payloads/external/tianocore/Makefile @@ -33,9 +33,15 @@ ifeq ($(CONFIG_TIANOCORE_CBMEM_LOGGING),y) CBMEM=-D USE_CBMEM_FOR_CONSOLE=TRUE endif +ifeq ($(CONFIG_TIANOCORE_ABOVE_4G_MEMORY),y) +4G=-D ABOVE_4G_MEMORY=TRUE +else +4G=-D ABOVE_4G_MEMORY=FALSE +endif + TIMEOUT=-D PLATFORM_BOOT_TIMEOUT=$(CONFIG_TIANOCORE_BOOT_TIMEOUT) -BUILD_STR=-q -a IA32 -a X64 -p UefiPayloadPkg/UefiPayloadPkg.dsc -t COREBOOT -b $(BUILD_TYPE) $(TIMEOUT) $(build_flavor) $(CBMEM) +BUILD_STR=-q -a IA32 -a X64 -p UefiPayloadPkg/UefiPayloadPkg.dsc -t COREBOOT -b $(BUILD_TYPE) $(TIMEOUT) $(build_flavor) $(CBMEM) $(4G) all: clean build