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)"