audk/ArmPkg/Library
Ard Biesheuvel 6ea34e3a45 ArmPkg: remove cache maintenance by VA operation range size threshold
This removes the range size threshold for virtual address based cache
maintenance instructions that operate on VA ranges to be 'promoted' to
use set/way instructions.

Doing so is unsafe: set/way operations are fundamentally different
from VA operations, and really only suitable for cleaning or invalidating
a cache when turning it on or off.

To quote the ARM ARM (DDI0487A_d G3.4):
"""
Since the set/way instructions are performed only locally, there is no
guarantee of the atomicity of cache maintenance between different PEs,
even if those different PEs are each performing the same cache maintenance
instructions at the same time. Since any cacheable line can be allocated
into the cache at any time, it is possible for [a] cache line to migrate
from an entry in the cache of one PE to the cache of a different PE in a
manner that the cache line avoids being affected by set/way based cache
maintenance. Therefore, ARM strongly discourages the use of set/way
instructions to manage coherency in coherent systems.
"""

Contributed-under: TianoCore Contribution Agreement 1.0
Reviewed-by: Olivier Martin <Olivier.Martin@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17176 6f19259b-4bc3-4df7-8a09-765794883524
2015-04-14 11:54:40 +00:00
..
ArmArchTimerLib ArmPkg: ArmArchTimerLib: conditionally rebase to actual timer frequency 2015-02-02 12:01:48 +00:00
ArmCacheMaintenanceLib ArmPkg: remove cache maintenance by VA operation range size threshold 2015-04-14 11:54:40 +00:00
ArmDisassemblerLib ArmPkg/ArmDisassemblerLib: ARMThumb and AArch64 fixes 2014-09-09 15:57:18 +00:00
ArmDmaLib ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
ArmGenericTimerPhyCounterLib ArmPkg: add ArmGenericTimerCounterLib implementation using physical timer 2014-09-09 16:06:10 +00:00
ArmGenericTimerVirtCounterLib ArmPkg: add ArmGenericTimerCounterLib implementation using virtual timer 2014-09-09 16:07:43 +00:00
ArmHvcLib ArmPkg: Ensured the stack is always quad-word aligned 2014-11-11 00:51:11 +00:00
ArmLib ArmPkg: remove cache maintenance by VA operation range size threshold 2015-04-14 11:54:40 +00:00
ArmPsciResetSystemLib ArmPkg/ArmPsciResetSystemLib: Made the library only using SMC 2014-10-10 11:22:50 +00:00
ArmSmcLib ArmPkg: Ensured the stack is always quad-word aligned 2014-11-11 00:51:11 +00:00
ArmSmcLibNull ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
BaseMemoryLibStm ArmPkg/BaseMemoryLib(Sym|Vstm): Do not post increment returned pointer 2015-04-02 13:51:28 +00:00
BaseMemoryLibVstm ArmPkg/BaseMemoryLib(Sym|Vstm): Do not post increment returned pointer 2015-04-02 13:51:28 +00:00
BdsLib ArmPlatformPkg/Bds: Remove any use of the "Fdt" UEFI variable 2015-02-26 11:02:39 +00:00
CompilerIntrinsicsLib ArmPkg/CompilerIntrinsicesLib: Fixed memmove() and memset() 2014-11-11 00:52:11 +00:00
DebugAgentSymbolsBaseLib ArmPlatformPkg: Increase more ARM address Pcd entries to 64-bit. 2014-11-11 00:43:03 +00:00
DebugPeCoffExtraActionLib ArmPkg: DebugPeCoffExtraActionLib: debugger commands are not errors 2015-03-02 16:19:26 +00:00
DebugUncachedMemoryAllocationLib ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
DefaultExceptionHandlerLib ARM Packages: Replace tabs by spaces for indentation 2014-08-26 10:14:17 +00:00
PeiServicesTablePointerLib ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
RvdPeCoffExtraActionLib ArmPkg/Semihostlib: Rename semi-hosting open option 2014-10-27 10:37:20 +00:00
SemiHostingDebugLib ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
SemiHostingSerialPortLib ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
SemihostLib ArmPkg/SemihostLib: Add library functions 2014-10-27 10:38:18 +00:00
UncachedMemoryAllocationLib ArmPkg/UncachedMemoryAllocationLib: Track uncached memory allocations 2014-10-10 11:24:11 +00:00