From 52bb666c3442904d74bd6dcb5eb66c3275b475e6 Mon Sep 17 00:00:00 2001 From: Savva Mitrofanov <savvamtr@gmail.com> Date: Wed, 5 Apr 2023 14:47:44 +0600 Subject: [PATCH] ArmVirtPkg/ArmVirtQemu: Disable PcdPrePiProduceMemoryTypeInformationHob for ARM The PcdPrePiProduceMemoryTypeInformationHob on ARM breaks Linux efistub boot. The efistub for arm32 uncompresses Linux kernel into memory ranges which occupied by DXE-phase drivers which leads to 'permission denied'-error during page write. So as a temporary solution we use PcdPrePiProduceMemoryTypeInformationHob only for AARCH64 Signed-off-by: Savva Mitrofanov <savvamtr@gmail.com> --- ArmVirtPkg/ArmVirt.dsc.inc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc index 027fc74ae7..2e1ec48923 100644 --- a/ArmVirtPkg/ArmVirt.dsc.inc +++ b/ArmVirtPkg/ArmVirt.dsc.inc @@ -278,14 +278,22 @@ [PcdsFeatureFlag.common] gEfiMdeModulePkgTokenSpaceGuid.PcdHiiOsRuntimeSupport|FALSE - gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE - [PcdsFeatureFlag.AARCH64] # # Activate AcpiSdtProtocol # gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE + # + # FIXME: The PcdPrePiProduceMemoryTypeInformationHob on ARM breaks Linux efistub boot. + # The efistub for arm32 uncompresses Linux kernel into memory ranges which occupied + # by DXE-phase drivers which leads to 'permission denied'-error during page write. + # + # So as a temporary solution we use PcdPrePiProduceMemoryTypeInformationHob + # only for AARCH64 + # + gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE + [PcdsFixedAtBuild.common] !ifdef $(FIRMWARE_VER) gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)"