audk/ArmPkg
Ard Biesheuvel 6650d78558 ArmPkg/ArmDmaLib: remove dependency on UncachedMemoryAllocationLib
Now that ArmDmaLib no longer uses uncached mappings for short-lived
bounce buffers used for streaming DMA, the only place we allocate
uncached memory is in DmaAllocateBuffer (), which is used for static
mappings shared between the host and the device, e.g., for packet
descriptor rings etc.

There is no performance concern around such long lived mappings, and
so we can really do without the overhead of UncachedMemoryAllocationLib,
which is a sizable chunk of poorly maintained code that never actually
releases any memory, and despite the fact that it implements pool based
routines, it always performs page based allocations anyway.

So let's invoke the DXE services directly to manage memory attributes
on allocations, and keep track of the allocations in a linked list so
we can restore the attributes and free the memory properly after use.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2017-08-24 18:18:14 +01:00
..
Drivers ArmPkg: remove ArmCpuLib header and implementations 2017-04-06 14:55:11 +01:00
Filesystem/SemihostFs ArmPkg/SemihostFs: eliminate calls to deprecated string functions 2016-10-28 12:04:04 +01:00
Include ArmPkg: Move IS_DEVICE_PATH_NODE for sharing 2017-08-01 15:57:47 +01:00
Library ArmPkg/ArmDmaLib: remove dependency on UncachedMemoryAllocationLib 2017-08-24 18:18:14 +01:00
ArmPkg.dec ArmPkg: remove unused PcdArmUncachedMemoryMask PCD 2017-02-27 16:18:29 +00:00
ArmPkg.dsc ArmPkg: remove ArmCpuLib header and implementations 2017-04-06 14:55:11 +01:00