audk/ArmPkg/Library
Ard Biesheuvel df8c2668d7 ArmPkg/ArmDmaLib: clean up abuse of device address
In preparation of adding support to ArmDmalib for DMA bus masters whose
view of memory is offset by a constant compared to the CPU's view, clean
up some abuse of the device address.

The device address is not defined in terms of the CPU's address space,
and so it should not be used in CopyMem () or cache maintenance operations
that require a valid mapping. This not only applies to the above use case,
but also to the DebugUncachedMemoryAllocationLib that unmaps the
primary, cached mapping of an allocation, and returns a host address
which is an uncached alias offset by a constant.

Since we should never access the device address from the CPU, there is
no need to record it in the MAPINFO struct. Instead, record the buffer
address in case of double buffering, since we do need to copy the contents
(in case of a bus master write) and free the buffer (in all cases) when
DmaUnmap() is called.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2016-11-30 16:43:08 +00:00
..
ArmArchTimerLib ArmPkg/ArmArchTimerLib: correct typos 2016-04-01 17:19:24 +02:00
ArmCacheMaintenanceLib ArmPkg/ArmLib: don't invalidate entire I-cache on range operation 2016-05-12 13:53:08 +02:00
ArmDisassemblerLib ArmPkg/ArmDisassemblerLib: replace AsciiStrCat() with AsciiStrCatS() 2016-10-25 10:46:40 +02:00
ArmDmaLib ArmPkg/ArmDmaLib: clean up abuse of device address 2016-11-30 16:43:08 +00:00
ArmExceptionLib ArmPkg|EmbeddedPkg: make PcdCpuVectorBaseAddress 64 bits wide 2016-03-25 07:17:53 +01: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
ArmGicArchLib ArmPkg: cache detected revision in ArmGicArchLib 2015-07-28 20:45:10 +00:00
ArmGicArchSecLib ArmPkg: copy ArmGicArchLib to ArmGicArchSecLib 2015-07-28 20:44:58 +00:00
ArmHvcLib ArmPkg/ArmHvcLib: switch to ASM_FUNC() asm macro 2016-08-11 12:29:31 +02:00
ArmLib ArmPkg/ArmBaseLib: clean up directory structure 2016-09-08 16:49:15 +01:00
ArmMmuLib ArmPkg/ArmMmuLib: support page tables in cacheable memory only 2016-11-30 16:12:20 +00:00
ArmPsciResetSystemLib Renamed ArmPlatformPkg/ArmVirtualizationPkg into ArmVirtPkg 2015-05-29 13:50:43 +00:00
ArmSmcLib ArmPkg/ArmSmcLib: switch to ASM_FUNC() asm macro 2016-08-11 12:29:31 +02:00
ArmSmcLibNull ArmPkg/ArmSmcLibNull: move to generic C implementation 2016-08-11 12:29:31 +02:00
ArmSoftFloatLib ArmPkg/ArmSoftFloatLib: disable LTO build for GCC 2016-08-05 16:32:35 +02:00
BdsLib ArmPkg/BdsLib: eliminate calls to deprecated string functions 2016-10-28 12:04:07 +01:00
CompilerIntrinsicsLib ArmPkg/CompilerIntrinsicsLib: use Clang-compatible 'weak' attribute 2016-09-06 15:49:40 +01:00
DebugAgentSymbolsBaseLib ArmPkg: Fix typos in comments 2016-10-19 16:31:22 +01:00
DebugPeCoffExtraActionLib ArmPkg: Rectify file modes 2016-01-30 12:25:59 +00:00
DebugUncachedMemoryAllocationLib ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
DefaultExceptionHandlerLib ArmPkg/DefaultExceptionHandlerLib: replace AsciiStrCat() with AsciiStrCatS() 2016-10-25 10:46:42 +02:00
GccLto ArmPkg: add prebuilt glue binaries for GCC5 LTO support 2016-08-02 10:53:57 +02:00
PeiServicesTablePointerLib ArmPkg/PeiServicesTablePointerLib: add missing MigratePeiServicesTablePointer() 2015-11-25 20:06:41 +00:00
PlatformBootManagerLib ArmPkg/PlatformBootManagerLib: implement new generic version 2016-05-12 13:56:50 +02: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: switch to ASM_FUNC() asm macro 2016-08-11 12:40:52 +02:00
UncachedMemoryAllocationLib ArmPkg/UncachedMemoryAllocationLib: fix warning about uninitialized local var 2015-11-25 19:50:05 +00:00