ArmVirtPkg: move all platforms to MdePkg/ BaseMemoryLib implementations

The BaseMemoryLibStm implementation under ArmPkg/ is being deprecated,
in favor of the generic versions under MdePkg, now that ARM and AARCH64
support has been added to both the generic C version (BaseMemoryLib) and
the accelerated version (BaseMemoryLibOptDxe). The latter uses unaligned
accesses and special cache maintenance instructions, and can therefore
not be used when the MMU is off.

So move to BaseMemoryLibOptDxe for the DXE phase and later, and to the
generic BaseMemoryLib before that.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc
index 6c6a52b..c624b3c 100644
--- a/ArmVirtPkg/ArmVirt.dsc.inc
+++ b/ArmVirtPkg/ArmVirt.dsc.inc
@@ -67,9 +67,8 @@
   #

   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf

 

-  # 1/123 faster than Stm or Vstm version

-  #BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf

-  BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf

+  # use the accelerated BaseMemoryLibOptDxe by default, overrides for SEC/PEI below

+  BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf

 

   # Networking Requirements

   NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf

@@ -154,6 +153,7 @@
 

 [LibraryClasses.common.SEC]

   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf

+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf

 

   DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf

   DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf

@@ -165,6 +165,7 @@
 

 [LibraryClasses.common.PEI_CORE]

   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf

+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf

   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf

   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf

   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf

@@ -181,6 +182,7 @@
 

 [LibraryClasses.common.PEIM]

   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf

+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf

   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf

   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf

   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf