ArmVirtPkg: move all platforms to MdePkg/ BaseMemoryLib implementations
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 13 Sep 2016 15:36:23 +0000 (16:36 +0100)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 21 Sep 2016 07:44:06 +0000 (08:44 +0100)
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>
ArmVirtPkg/ArmVirt.dsc.inc

index 6c6a52b5e6fb69b84f54d61053629b140ddf3503..c624b3cdbecd3d5b2361278a56ae2855301dc900 100644 (file)
@@ -67,9 +67,8 @@
   #\r
   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
 \r
-  # 1/123 faster than Stm or Vstm version\r
-  #BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
-  BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf\r
+  # use the accelerated BaseMemoryLibOptDxe by default, overrides for SEC/PEI below\r
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf\r
 \r
   # Networking Requirements\r
   NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf\r
 \r
 [LibraryClasses.common.SEC]\r
   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
 \r
   DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf\r
   DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf\r
 \r
 [LibraryClasses.common.PEI_CORE]\r
   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf\r
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r
 \r
 [LibraryClasses.common.PEIM]\r
   PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf\r
+  BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
   HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
   PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
   MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r