The PropertiesTable feature is poorly named, since the feature this PCD controls is only a single bit in its MemoryProtectionAttribute member, called EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA.
This feature causes breakage on legacy OSes that assume that each memory region in the UEFI memory map is completely independent, which is no longer the case with this feature enabled. For this reason, the UEFI spec now recommends not to use this feature, and use the MemoryAttributes table instead. For this reason, support for the feature will not be implemented in arm64 or ARM Linux, and enabling it here is pointless. So set PcdPropertiesTableEnable to FALSE. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org> --- ArmVirtPkg/ArmVirtQemu.dsc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc index e2641fd2c289..7ff1bd4074a8 100644 --- a/ArmVirtPkg/ArmVirtQemu.dsc +++ b/ArmVirtPkg/ArmVirtQemu.dsc @@ -162,6 +162,18 @@ [PcdsFixedAtBuild.common] # gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16 + # The PropertiesTable feature is poorly named, since the feature this PCD + # controls is only a single bit in its MemoryProtectionAttribute member, + # called EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA. + # + # This feature causes breakage on legacy OSes that assume that each memory + # region in the UEFI memory map is completely independent, which is no longer + # the case with this feature enabled. For this reason, the UEFI spec now + # recommends not to use this feature, and use the MemoryAttributes table + # instead. For this reason, support for the feature will not be implemented in + # arm64 or ARM Linux, and enabling it here is pointless. + gEfiMdeModulePkgTokenSpaceGuid.PcdPropertiesTableEnable|FALSE + [PcdsFixedAtBuild.AARCH64] gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE -- 2.5.0 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel