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

Reply via email to