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>
#\r
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
\r
#\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
# Networking Requirements\r
NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf\r
\r
[LibraryClasses.common.SEC]\r
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.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
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
\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
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
\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
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf\r
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf\r
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf\r